Helping build adaptive Compose everywhere!
It's still a bit awkward to test Activity recreation, but the workaround is a lot easier now:
issuetracker.google.com/271226817#co...
It's still a bit awkward to test Activity recreation, but the workaround is a lot easier now:
issuetracker.google.com/271226817#co...
Asking for someone who did something silly: github.com/alexvanyo/co...
Asking for someone who did something silly: github.com/alexvanyo/co...
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...
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...
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.
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.
developer.android.com/studio/previ...
developer.android.com/studio/previ...
The slides for my talk are available here: alex.vanyo.dev/talks/configurationchanges
The slides for my talk are available here: alex.vanyo.dev/talks/configurationchanges
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
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
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.
Quote tweet this.
Let’s build the Android wisdom tree 🌱
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.
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
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
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.
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.
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.
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.
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
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
#JetpackCompose
#JetpackCompose
goo.gle/tas-mar25
goo.gle/tas-mar25
And coming in Compose 1.8, don't miss the new DeviceConfigurationOverride.WindowInsets for testing insets!
www.youtube.com/watch?v=Y9GW...
And coming in Compose 1.8, don't miss the new DeviceConfigurationOverride.WindowInsets for testing insets!
For more details:
android-developers.googleblog.com/2025/01/orie...
For more details:
android-developers.googleblog.com/2025/01/orie...
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)
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)
See you in '25 and happy holidays 🎄
medium.com/androiddevel...
See you in '25 and happy holidays 🎄
medium.com/androiddevel...
"android.graphics.@NonNull Insets safeInsets"
"android.graphics.@NonNull Insets safeInsets"