Sign in

Alex Vanyo

@vanyo.dev
623 followers 104 following 126 posts

Android Software Engineer Helping build adaptive Compose everywhere!

PostsRepliesMedia
Reposted by Alex Vanyo
Rebecca Franks @riggaroo.dev · 13/08/2026
Jetpack Compose 1.12 has been released! So many new goodies to look at: 🌅 Mesh Gradient support - along with support inside Android Studio for editing ✌🏻 Interactive Two-Stage Transitions 💬 Many text features such as editable text formatting android-developers.googleblog.com/2026/08/jetp...
android-developers.googleblog.com
What's new in the Jetpack Compose August '26 release
News and insights on the Android platform, developer tools, and events.
0206
Reposted by Alex Vanyo
Rebecca Franks @riggaroo.dev · 16/01/2026
👀 Want to see a preview of what's coming up in #JetpackCompose? We heard you that debugging shared elements is tricky. In 1.11.0-alpha03, a new composable LookaheadAnimationVisualDebugging was added. Wrap your SharedTransitionLayout to add visual cues to track down those hard to debug issues. 🐛⤵️
14112
Alex Vanyo @vanyo.dev · 13/12/2025
I've converted my side project to Navigation 3 (or at least, a similar close fork of Navigation 3), which you can try out on the web here! alex.vanyo.dev/composelife Two more complex scene ideas I've been playing around with: A SceneStrategy wrapping another SceneStrategy, and derived entry lists.
160
Reposted by Alex Vanyo
Code with the Italians @codewiththeitalians.it · 12/12/2025
Navigation 3 is here, and yes — it changes things 😅 Alex Vanyo & Don Turner break down what’s new, what’s better, and what not to do. Watch the VOD → youtu.be/I9Ws2Lxv0dw
youtu.be
- YouTube
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
031
Alex Vanyo @vanyo.dev · 10/12/2025
Navigation 3 sets the stage for navigating with scenes! Be sure to tune in to @codewiththeitalians.it at cwti.link/twitch now to see @donaldturner.bsky.social and myself experiment with Navigation 3!
062
Reposted by Alex Vanyo
Don Turner @donaldturner.bsky.social · 03/12/2025
Every day this week we're publishing content to help you get started with Nav3. android-developers.googleblog.com/2025/12/lear.... Got questions? Post them using #AskAndroid and we'll answer them live at 9am PST on Friday here: www.youtube.com/live/JsugLEM....
android-developers.googleblog.com
Learn about our newest Jetpack Navigation library with the Nav3 Spotlight Week
News and insights on the Android platform, developer tools, and events.
082
Alex Vanyo @vanyo.dev · 14/11/2025
A small change that flew under the radar for me for #JetpackCompose: calling setContent in a test more than once doesn't crash now! It's still a bit awkward to test Activity recreation, but the workaround is a lot easier now: issuetracker.google.com/271226817#co...
060
Reposted by Alex Vanyo
Don Turner @donaldturner.bsky.social · 01/11/2025
My talk on Navigation 3 from #dcldn25 is live (very impressive publishing from the droidcon team!). www.youtube.com/watch?v=j1Oi...
youtube.com
Navigating the future with Jetpack Navigation 3 - Don Turner | droidcon London 2025
YouTube video by droidcon & fluttercon
02713
Alex Vanyo @vanyo.dev · 14/08/2025
Anyone have a lint rule that warns against doing with(dispatchers.IO) because you almost certainly wanted withContext(dispatchers.IO) instead? Asking for someone who did something silly: github.com/alexvanyo/co...
190
Alex Vanyo @vanyo.dev · 30/07/2025
The recording from my talk on how to handle configuration changes in Compose at #dcnyc25 is out! Hopefully this helps explain what android:configChanges is responsible for in #AndroidDev and why it's important to know what promises you make when setting it. www.youtube.com/watch?v=K5-9...
youtube.com
Handling configuration changes in Compose - Alex Vanyo | droidcon New York 2025
YouTube video by droidcon & fluttercon
0193
Alex Vanyo @vanyo.dev · 16/07/2025
A response to the section on "How Can I Determine the Size and Position of Descendants of Peers?" Using onGloballyPositioned (or onSizeChanged, or similar modifiers) like this is a quick way to get yourself into trouble with layouts that take multiple frames to resolve that can flash or look janky.
120
Reposted by Alex Vanyo
Rebecca Franks @riggaroo.dev · 07/07/2025
Did you know... Android Studio has introduced resizable previews for Compose previews? Allowing you to test your layouts across the spectrum of device sizes easily inside Android Studio. 💻 developer.android.com/studio/previ...
1488
Alex Vanyo @vanyo.dev · 01/07/2025
It was great to see both familiar faces and new ones at #dcnyc25 last week - especially to see how everyone's figuring out what #AndroidDev will look like with the new tools are moving at a blistering speed. The slides for my talk are available here: alex.vanyo.dev/talks/configurationchanges
1120
Alex Vanyo @vanyo.dev · 20/06/2025
I'm excited to be speaking at #DroidconNYC next Thursday, hope to see you there! I'll be covering how to handle configuration changes in Compose, and specifically trying to answer the question of what you should put in android:configChanges and - probably more importantly - why. #AndroidDev
0255
Alex Vanyo @vanyo.dev · 29/05/2025
Thinking about configuration changes isn't optional. Imagine a website trying to prevent the browser window from being resized or breaking when it does. Android apps can't disable configuration changes and need to react to them correctly without losing state using the tools available.
1193
Alex Vanyo @vanyo.dev · 21/05/2025
Hopefully you have a bunch of ideas to improve your apps from the first day of #GoogleIO Day 2 starts soon, be sure to tune in to learn about what's new in developer tools and my favorite topic, why and how to build adaptive! #AndroidDev
0110
Alex Vanyo @vanyo.dev · 21/05/2025
Scenes! If there's only one concept to call out for Navigation 3, it's scenes. The abstraction layer allows showing multiple panes at a time, and in different ways. It's the integration hook that integrates Navigation3 with ListDetailPaneScaffold in a flexible, satisfying way.
2172
Alex Vanyo @vanyo.dev · 04/05/2025
runComposeUiTest has a nice change in #JetpackCompose 1.9.0-alpha01 - the test body block now suspends! So you no longer have to do a nested runComposeUiTest { runTest { /* suspending test code */ } }, which could be funky since runComposeUiTest had an internal runTest before that wasn't exposed.
0121
Alex Vanyo @vanyo.dev · 28/04/2025
A small but extremely useful foundational API added in #JetpackCompose 1.8: LocalWindowInfo.current.containerSize It's the best way to get the size of the window, which should form the basis for any breakpoint logic for top-level layouts like window size classes. #AndroidDev
3294
Alex Vanyo @vanyo.dev · 10/04/2025
Days since forgetting a call to "key" in a loop and causing a hard to diagnose bug: 0 #JetpackCompose
080
Reposted by Alex Vanyo
Jolanda Verhoef @lojanda.bsky.social · 27/03/2025
🚀 Big news for Android devs using Jetpack Compose! Media3 just dropped version 1.6.0, and it includes a brand new artifact: media3-ui-compose! Finally, seamless and customizable video playback directly in your Compose apps. 🎬 #AndroidDev #JetpackCompose #Media3
24918
Reposted by Alex Vanyo
Simona Milanovic @anomiss.bsky.social · 13/03/2025
We had so much fun filming #TheAndroidShow in Barcelona, at #MobileWorldCongress last week, we can't wait to share it with you! 🥳 Tune in TODAY 🚀 to watch the livestream: goo.gle/tas-mar25
youtube.com
Set your reminder: #TheAndroidShow is live *here* on March 13!
YouTube video by Android Developers
0131
Reposted by Alex Vanyo
Ben Trengrove @bentrengrove.dev · 01/03/2025
So the idea is with strong skipping, === is an extremely fast check. Imagine you have a lazy list and an array with a couple of hundred items, 3 on screen. Depending on the cost of equals, it's faster to let that higher level recomposition happen with ===.
171
Alex Vanyo @vanyo.dev · 31/01/2025
UI that isn't tested is UI that can break. There are Compose techniques for each part of testing - quick verification when iterating, and automating both visual tests and behavior tests. And coming in Compose 1.8, don't miss the new DeviceConfigurationOverride.WindowInsets for testing insets!
0265
Reposted by Alex Vanyo
Simona Milanovic @anomiss.bsky.social · 30/01/2025
A 🧵 announcement: With the Jetpack Compose 1.8. beta01 release, you may notice that a significant number of APIs that were previously experimental, have been graduated to stable.
15119
Alex Vanyo @vanyo.dev · 23/01/2025
Android 16 will have some big changes around restricting orientation and aspect ratio by respecting the user's preferred orientation in more cases. Apps can no longer rely on assuming they have a specific aspect ratio to render in. For more details: android-developers.googleblog.com/2025/01/orie...
13111
Alex Vanyo @vanyo.dev · 29/12/2024
After figuring out how to make the coordinates work, it's so satisfying to use a live-updating drag and drop that previews where the dropped content will go.
2120
Alex Vanyo @vanyo.dev · 29/12/2024
Days since confusing myself with different frames of references and coordinate systems in Compose: 0
140
Alex Vanyo @vanyo.dev · 26/12/2024
In-between traveling and holiday get-togethers, I finished up Advent of Code for the first time! And since I haven't done it before, now I have 9 years of past puzzles to work through (and without the pressure to start them at the exact time they open)
060
Reposted by Alex Vanyo
Simona Milanovic @anomiss.bsky.social · 24/12/2024
📽️🎞️ Aaand that's a wrap on our "Compose Tips for Delightful UI" YouTube series for this year 🥳 here's a quick summary of everything we've covered in '24! See you in '25 and happy holidays 🎄 medium.com/androiddevel...
medium.com
Compose Tips for Delightful UI — ’24 wrap up
An overview of Season 1 of our brand new YouTube series, “Compose Tips for Delightful UI”, covering best practices to improve your UI.
0328
Alex Vanyo @vanyo.dev · 20/12/2024
Editing some Java source, and this is the correct syntax for an annotation on a parameter with a fully qualified class name!? What? "android.graphics.@NonNull Insets safeInsets"
120
Alex Vanyo @vanyo.dev · 15/12/2024
Today was a git cleaning day. I found local git branches I had that don't have an upstream, and then tried to figure out what I was doing and why. Mostly random experiments or old intermediate WIP that I didn't clean up, but there were also some neat things I completely forgot I started!
060
Alex Vanyo @vanyo.dev · 08/12/2024
#AdventOfCode day 8: I am very glad I had IntOffset available this time!
130
Alex Vanyo @vanyo.dev · 06/12/2024
#AdventOfCode day 6: I miss IntOffset. I should import those nice dimensional helper classes in Compose for the rest of the days...
290
Alex Vanyo @vanyo.dev · 27/11/2024
Frustrating experience but funny once I realized what was happening: I copied a line of code in a browser, switched desktops to Android Studio, and pasted... but it pasted an old thing! Copy and paste in AS to test... that works fine. Go back to browser, copy, paste in AS, and it still doesn't work.
110
Alex Vanyo @vanyo.dev · 20/11/2024
Annoyed with merge conflicts when updating versions in libs.versions.toml? If you add a "#libraryName" above each version entry, you can avoid the merge conflicts caused by adjacent lines being updated independently since each simple version bump will have an unchanged line in-between another.
A libs.versions.toml file with library name tags for each version
280
Reposted by Alex Vanyo
Jose Alcérreca @josealcerreca.bsky.social · 19/11/2024
In case you're wondering what's new with the Preview Screenshot Testing tool, some updates announced at Droidcon London! THREAD! You'll like #3.😁
2195
Alex Vanyo @vanyo.dev · 17/11/2024
Here's a fun #AndroidDev architecture design problem: Implement a slider that edits state that is stored on disk. I think working through this task can reveal a lot of insight for why building great UI around asynchronous tasks can inherently be tricky and how tradeoffs are necessary.
3447
Reposted by Alex Vanyo
Saket Narayan @saket.me · 14/11/2024
Probably a weird flex, but telephoto can now adjust its restored zoom & pan to account for screen size changes and rotations. Plus it's compatible with Coil 3 now: github.com/saket/teleph...
2385
Alex Vanyo @vanyo.dev · 02/11/2024
Something a bit hidden in the changes for the latest 4.14-beta-1 Robolectric release: there's a new RobolectricTestParameterInjector runner that works with github.com/google/TestP...! It's built on the latest 1.18 release of TPI which exposed a couple methods needed for the integration #androiddev
280