I Watched 14 Hours of Google I/O Videos So That You Don't Have To
Apart from all the AI/Gemini stuff, what is actually interesting & important to Android Developers in this year's Google I/O? This talks aims to tell you exactly what you need to know and nothing more than that.
a “Chip” Composable, what would they do • Naming, Parameters & their ordering, what to expose and what not to, testability, etc. • Not just “this is what you need to do”, actually explain why • If you bike shed a lot with your team • If you haven’t done much with Compose 6
a “Chip” Composable, what would they do • Naming, Parameters & their ordering, what to expose and what not to, testability, etc. • Not just “this is what you need to do”, actually explain why • If you bike shed a lot with your team • If you haven’t done much with Compose ! 6
A few info about upcoming performance improvements • How to use perfetto to debug where the jank comes from • How to use custom traces, how to mark class as “@Immutable” to avoid recomposition • Great for people who started running into Compose issue • “Practical performance problem solving in Jetpack Compose” 9
A few info about upcoming performance improvements • How to use perfetto to debug where the jank comes from • How to use custom traces, how to mark class as “@Immutable” to avoid recomposition • Great for people who started running into Compose issue • “Practical performance problem solving in Jetpack Compose” " 9
• Compact (Phone), Medium (Un-foldable / vertical tablet), Expanded (horizontal tablet) • NavigationSuiteScaffold, which automatically switch between • Bottom navigation bar • Navigation Rail (i.e. on the left) • Think about “Panes” instead of “Screens” • ListDetailPaneScaffold • SupportingPaneScaffold 11
• Compact (Phone), Medium (Un-foldable / vertical tablet), Expanded (horizontal tablet) • NavigationSuiteScaffold, which automatically switch between • Bottom navigation bar • Navigation Rail (i.e. on the left) • Think about “Panes” instead of “Screens” • ListDetailPaneScaffold • SupportingPaneScaffold • Check if your apps can/should use those libraries directly • And if not, how to DIY the adaptive-ness to your design 14
• Compact (Phone), Medium (Un-foldable / vertical tablet), Expanded (horizontal tablet) • NavigationSuiteScaffold, which automatically switch between • Bottom navigation bar • Navigation Rail (i.e. on the left) • Think about “Panes” instead of “Screens” • ListDetailPaneScaffold • SupportingPaneScaffold • Check if your apps can/should use those libraries directly • And if not, how to DIY the adaptive-ness to your design " 14
show ads & campaigns • A lot more places to show app/content recommendations for apps & GAMES • A lot more ways for people to pay • A lot more ways to target those user to open your app (and hopefully pay) • You can charge 999.99 USD now* • Play SDK Console open to all • Play console got more QoL improvements, like a “Discard release” button • Deep link Patching: update deep link without deployment & adoption of new version? • Remember that Play Billing Library v5 is deprecating this year • Migrate or you will NOT be able to update your app by August 16
show ads & campaigns • A lot more places to show app/content recommendations for apps & GAMES • A lot more ways for people to pay • A lot more ways to target those user to open your app (and hopefully pay) • You can charge 999.99 USD now* • Play SDK Console open to all • Play console got more QoL improvements, like a “Discard release” button • Deep link Patching: update deep link without deployment & adoption of new version? • Remember that Play Billing Library v5 is deprecating this year • Migrate or you will NOT be able to update your app by August " 16
Compose, but for Wear OS (androidx.glance) • “Canonical widget layouts”: templates for people to use: List, Grid, Text, etc • Technical Details of how to get it setup, cause there are a few XMLs • How to make sure your widget matches users * a e s t h e t i c * • You can now add custom error RemoteView • There is an API for testing 18
Compose, but for Wear OS (androidx.glance) • “Canonical widget layouts”: templates for people to use: List, Grid, Text, etc • Technical Details of how to get it setup, cause there are a few XMLs • How to make sure your widget matches users * a e s t h e t i c * • You can now add custom error RemoteView • There is an API for testing 18 "
Compose View Finder in alpha • 1.4 beta with better Kotlin APIs • How to get the best compatible feature set • Media3 libraries • More stable • More performantaster • Easier to maintain 20
Compose View Finder in alpha • 1.4 beta with better Kotlin APIs • How to get the best compatible feature set • Media3 libraries • More stable • More performantaster • Easier to maintain " 20
for hearing aids, braille input • More Sound Notifications • Project Relate for people with atypical speech • Lookout Find Mode to find stuff via computer vision • New APIs & tools • Better and more precise/accurate API for Talkback • Traversal API to gives you more control • Auto-generated content description for images • Accessibility scan (now support Compose) & new UI Check Mode 22
for hearing aids, braille input • More Sound Notifications • Project Relate for people with atypical speech • Lookout Find Mode to find stuff via computer vision • New APIs & tools • Better and more precise/accurate API for Talkback • Traversal API to gives you more control • Auto-generated content description for images • Accessibility scan (now support Compose) & new UI Check Mode " 22
the library • How to get API key & how to keep a secret • How to put markers (pins) where you want to put them • How to bridge to non-compose Google Maps functions 24
the library • How to get API key & how to keep a secret • How to put markers (pins) where you want to put them • How to bridge to non-compose Google Maps functions " 24
? specific APIs ? Foreground Service? • Use Perfetto to debug who is causing all the extra power drain • Pixel 6 or newer • Watch out for “dangerous” APIs like wake lock 26
? specific APIs ? Foreground Service? • Use Perfetto to debug who is causing all the extra power drain • Pixel 6 or newer • Watch out for “dangerous” APIs like wake lock " 26
Google Cast coming to first Rivian, soon other cars • More emulators, e.g. ones with insane wide screen • Play with it via Pixel Tablet • More categories of apps will be open • 3 Tiers of Cars app • Car Differentiated: Tailor to car • Care Optimised: Good for centre screen • (New): Car Ready: Just tablet apps 33
Google Cast coming to first Rivian, soon other cars • More emulators, e.g. ones with insane wide screen • Play with it via Pixel Tablet • More categories of apps will be open • 3 Tiers of Cars app • Car Differentiated: Tailor to car • Care Optimised: Good for centre screen • (New): Car Ready: Just tablet apps # 33
will be fully killed by 2025 June • Storage: Health Connect • Recording API: Record distance, steps, and Calories • Health Connect’s new features • Wear OS gets new metrics for you to request • Better tooling: sensor panel in Android Studio 35
will be fully killed by 2025 June • Storage: Health Connect • Recording API: Record distance, steps, and Calories • Health Connect’s new features • Wear OS gets new metrics for you to request • Better tooling: sensor panel in Android Studio # 35
for different OS (incl. Windows), form factor, performance, etc • Make sure you account for any possible screen sizes & aspect ratio • Android 15 will make app edge-to-edge by default • Utilise newer GPU features like Ray Tracing • Use Frame Pacing Library (a.k.a. Swappy) to see what might be slowing things down • Vulkan > OpenGL 37
for different OS (incl. Windows), form factor, performance, etc • Make sure you account for any possible screen sizes & aspect ratio • Android 15 will make app edge-to-edge by default • Utilise newer GPU features like Ray Tracing • Use Frame Pacing Library (a.k.a. Swappy) to see what might be slowing things down • Vulkan > OpenGL 37 #
JIT compiling • Measure App Startup with Macro Benchmark • Rendering Performance from Macro Benchmark • Time To Fully Display (TTFD) • Power Consumption from Macro Benchmark • Leak Canary will be coming to Android Studio 39
JIT compiling • Measure App Startup with Macro Benchmark • Rendering Performance from Macro Benchmark • Time To Fully Display (TTFD) • Power Consumption from Macro Benchmark • Leak Canary will be coming to Android Studio # 39
can launch URL side-by-side with 2 lines change • Stylus handwriting to TextField 1.7 / EditText • Also easier to access low latency ink • Notes role: allow your note-taking app to open from lock screen w/o unlocking • Think about keyboard shortcuts, focus state, and hover state 41
can launch URL side-by-side with 2 lines change • Stylus handwriting to TextField 1.7 / EditText • Also easier to access low latency ink • Notes role: allow your note-taking app to open from lock screen w/o unlocking • Think about keyboard shortcuts, focus state, and hover state # 41
CLI • e.g. let you know which domain your app is contacting • e.g. let you know which SDK you have include and why that might be dangerous • Later will also have a IDE plugin to give you inline feedback locally • Android (Jave & Kotlin) & iOS (Swift) 46
CLI • e.g. let you know which domain your app is contacting • e.g. let you know which SDK you have include and why that might be dangerous • Later will also have a IDE plugin to give you inline feedback locally • Android (Jave & Kotlin) & iOS (Swift) $ 46
if it’s the first time an app is seen in the world • Screen Share a single app only & notification & OTP will be hidden • Most Notification listener services won’t get OTP notifications • Remote lock your device & Private space to keep your data private • You need to explain why you need access to ALL media, and will soon be a policy on Play • Play Integrity API is faster and you should use it • Min TargetSdk 24 for Android 15 • More restrictions on Intent to reduce abuse • More restrictions on background activity 54
if it’s the first time an app is seen in the world • Screen Share a single app only & notification & OTP will be hidden • Most Notification listener services won’t get OTP notifications • Remote lock your device & Private space to keep your data private • You need to explain why you need access to ALL media, and will soon be a policy on Play • Play Integrity API is faster and you should use it • Min TargetSdk 24 for Android 15 • More restrictions on Intent to reduce abuse • More restrictions on background activity $ 54
your store listing to each users • Gemin Gemini Gemin Gemini Gemin Gemini • Tax, Compliance, and more • Orders API in early access, to programatically see orders in real time • Play Billing Lab • Discard release button 56
your store listing to each users • Gemin Gemini Gemin Gemini Gemin Gemini • Tax, Compliance, and more • Orders API in early access, to programatically see orders in real time • Play Billing Lab • Discard release button $ 56
Gemini Gemini Gemini Gemini Gemini • AICore gives you access to Gemini Nano • Kotlin Multiplatform to share business logic • Adaptive Adaptive Adaptive • Firebase new logo • Cloud SQL in Firebase Data Connect 63
Gemini Gemini Gemini Gemini Gemini • AICore gives you access to Gemini Nano • Kotlin Multiplatform to share business logic • Adaptive Adaptive Adaptive • Firebase new logo • Cloud SQL in Firebase Data Connect & 63