Alexandre Moureaux's Avatar

Alexandre Moureaux

@almouro.bsky.social

Love talking about #performance in #AndroidDev #ReactNative #Flutter Created https://flashlight.dev πŸ”¦ Also Christian ✝️, guinea pig lover 🐹, medieval history enthusiast 🏰

889 Followers  |  66 Following  |  16 Posts  |  Joined: 28.10.2024
Posts Following

Posts by Alexandre Moureaux (@almouro.bsky.social)

It was a pleasure and a great honor to be on the React Native Radio podcast and talk about performance!! πŸš€β™₯️

Thanks for having me 😊 @infinite.red are amazing hosts!

22.04.2025 11:44 β€” πŸ‘ 8    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Live coding : crΓ©ons un outil de mesure de perf pour Android - Alexandre Moureaux
YouTube video by GDG Paris Android User Group Live coding : crΓ©ons un outil de mesure de perf pour Android - Alexandre Moureaux

Les vidΓ©os du meetup de Janvier avec @almouro.bsky.social et @bapness.bsky.social sont disponibles !

Bon visionnage ! 🍿
www.youtube.com/watch?v=T13e...
www.youtube.com/watch?v=_bn7...

28.01.2025 08:20 β€” πŸ‘ 6    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0
React Native Connection 2025: Call for Papers React Native Connection is the first French conference entirely dedicated to the community of React Native developers.We're back in April 2025 for a f...

Who needs an excuse to come to the most beautiful city in the world? β™₯οΈπŸ‡«πŸ‡·πŸ₯

Only one week left to submit your #ReactNative talk to @reactnativeconnect.bsky.social ! 😱

sessionize.com/react-native...

09.01.2025 12:48 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It's an old version of a "box" from french provider Orange

To be honest, I was surprised the app was still running knowing how bad the device was πŸ˜…

03.12.2024 14:55 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It's a challenge πŸ˜…
I find it quite fun actually, but it's tough nonetheless

03.12.2024 14:54 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
TV device runs a calculation in 482s, 26x slower than a Samsung A10s

TV device runs a calculation in 482s, 26x slower than a Samsung A10s

Investigating #performance issues on TV is wild πŸ˜…

🀯 One of the TV devices we're targeting for a #ReactNative app is
~20x slower than a Samsung A10s (already low-end)
~400x slower than iPhone 15

πŸ“ˆ It's a web-based TV, so we can use the A10s and apply 20x slowdown in Chrome to get similar perf πŸ₯²

03.12.2024 12:59 β€” πŸ‘ 14    πŸ” 0    πŸ’¬ 3    πŸ“Œ 0

When you optimize, you can easily use it to compare perf before and after the fix!

flashlight test --bundleId xyz.blueskyweb.app --testCommand "adb shell input swipe 500 1200 500 200 50" --iterationCount 1 --duration 5000 --record --skipRestart

flashlight report before.json after.json

19.11.2024 09:44 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

... UI/render thread would be even higher with a video playing (there was none in my test)

FlashList does make it much easier to optimize but indeed it adds recycling. Maybe the new list by @jayz.us would be an easier React-idiomatic option 🀞

My full flashlight command if anyone is curious:

19.11.2024 09:44 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... we still keep 11 screens of posts in the hierarchy πŸ€”

No time to dig more atm, but I'd venture the large number of elements displayed by the list is responsible for the impact on JS thread, and in turn on the UI thread as well (and so on FPS).
Should be checkable in the React DevTools 🀞

UI/ ...

19.11.2024 09:44 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

A quick flashlight test on a A10S with one quick scroll shows:

- HEAVY JS usage
to the point where the list goes blank quickly (after a post from @tazsingh.com πŸ˜…)
- high UI thread usage as well, causing FPS drops

FlatList are notoriously difficult to optimize, I see a windowSize={11}, meaning...

19.11.2024 09:44 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Unrelated but I got this screen when I tried to reply πŸ˜… @bsky.app
Reply did go through though it would seem

(Using pixel 8 Android 14)

14.11.2024 14:35 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It gives a bit more details related to the frame times on the native side

High frame time would correlate to high UI thread and render thread CPU usage on Flashlight and also lower FPS

It doesn't give details on UI thread work outside of the frame rendering times though

14.11.2024 14:33 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I see thanks! πŸ™

Would it be possible to have native screens on Android as well? How complex do you think that would be to add in?

08.11.2024 11:18 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Fantastic job! πŸ‘πŸ‘

One of my biggest annoyances with big RN apps is:
Clicking on tabs is slow after the first time you go to a tab. Because React mounts the whole tab for the first time and blocks JS

Since the tabs are native now, does this mean we can have super fast performance as well? πŸ₯Ή

08.11.2024 09:56 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Excited to say I'll be giving a performance workshop next week at @rnlconf.bsky.social ! πŸ”₯πŸš€

We'll improve performance of a dummy app, learning how to use:

πŸ”¦Flashlight
βš›οΈ React DevTools
πŸ“ˆ JS profiler
πŸ€– Android Studio

And more!

07.11.2024 14:42 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 0    πŸ“Œ 1

Haha Mr Performance, I like that name!
Danke schΓΆn Herr Kwast! β™₯️

07.11.2024 14:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Hello Bluesky πŸ¦‹! First post here!

So instead of saying something somewhat meaningful about mobile apps performance,
I'll just mention that funnily enough, this image is the first thing that pops when I google <my username> + BlueSky πŸ˜…

I am now a Portuguese medieval castelo 🏰

06.11.2024 17:18 β€” πŸ‘ 13    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0