Hirbod
banner
hirbod.dev
Hirbod
@hirbod.dev
SWE @expo.dev 𝝠

⚡️ hirbod.dev
🐙 https://github.com/hirbod
✖️ https://x.com/hirbod_dev
I had a lot of moments reconsidering life choices or just raising alpacas instead of migrating, but it’s finally done. New architecture, @expo.dev SDK 53 (RN 0.79.1), and the fastest React Native app we’ve ever built (and I’ve ever seen!). Thanks to all contributors. Amazing achievement.
April 29, 2025 at 4:02 AM
Imagine, that change made our app the snappiest and fastest react native app I've ever seen. The fucking FPS counter is finally going up, not down when tapping a button. :D
April 29, 2025 at 1:37 AM
Am I taking it too far with @swmansion.com CSS animations? It’s so fun. I am definitely pushing the limits with this example. I love REA v4. Such an amazing beta release. Mark my words: pretty sure this example will run at 60fps soon!

Gist: gist.github.com/hirbod/48e45...
January 25, 2025 at 3:15 PM
Runs on @expo.dev custom dev client and @swmansion.com Reanimated v4 CSS Animations. Was 5 min initial work and a few minutes to understand sync measurement with Fabric :D

If you want to play with it: gist.github.com/hirbod/dc161...

The future is React Native.
January 25, 2025 at 12:47 AM
I’m actually really proud so far. I know I could just use FFProbe or MediaInfoLib (WASM), but my aim was to get to the bottom of this using TS only - and it just worked™.

MP4, MOV, MKV, WEBM - basically every video, audio, and ISO/IEC 23091-2:2021 mapping is supported.
January 6, 2025 at 1:49 AM
I've reached feature parity across all containers. My media parser now extracts all fields and has much better performance using BitReader, DataView, and caching. I might explore streaming instead of loading the entire file into memory for parsing. 🧵
January 6, 2025 at 1:49 AM
The effort it took me to come this far is indescribable.
My JS parser is almost on par (at least for the most common codecs) with FFProbe. Almost all fields are now resolved. WebM/Matroska is missing color and HDR detection. Once that's done, I’ll consider AVI/TS.
January 3, 2025 at 9:10 PM
My media parser processes 29 videos (2.41 GB) in ~1 second, extracting key metadata without <video />. It’s not 100% accurate yet for all fields, but it’s blazing fast, and I’m working to make it the fastest in the world!
December 31, 2024 at 3:44 PM
react-native-volume-manager is much more than a volume listener. Plays super nice with @expo.dev expo-video (not expo-av) and let you enable and disable the audio session and category, informs the OS in a way so your music can resume automatically, too. (AppState, useLayoutEffect etc)
December 15, 2024 at 4:50 PM
Discovered a bug with @expo.dev router and react-native-screens after upgrading to SDK52 (not seen with react-navigation v7). Navigating from a screen with a header to one without, containing a ScrollView, causes a layout shift when interacting with the view.

github.com/expo/expo/is...
December 5, 2024 at 1:54 AM