There were a lot of deliberate decisions behind the approach we took for adding compile time type safety to Navigation Compose including using existing compiler plugins instead of writing our own, minimizing 'infectious' Navigation dependencies, and more.
Navigation Compose 🤝 Type Safety
Add compile time type safety to your Navigation Compose screens by using the Kotlin Serialization based APIs available in Navigation 2.8.0-alpha08. →
The fragments of today are not the fragments of even a year ago, much less those of 5+ years ago. This week, the *documentation* for fragments has been effectively rewritten from scratch bringing it up to speed with the best practices of 2020.
The new Database Inspector in Android Studio 4.1 Canary 5 is 💯
I'm particularly fond of the built in support for Room, which gives you an icon right next to each Query in your DAO to run the query in the Database Inspector (with support for parameters!)
If you like stable Jetpack releases, today's your day! WorkManager, Navigation, Fragment, Activity, Lifecycle, Lifecycle ViewModel SavedState, SQLite, and Transition all hit stable in their respective releases.
Guess what bug just got marked as fixed? Multiple back stacks (for both Fragments, Navigation with Fragments, and Navigation Compose)!
See our update on the issue tracker:
My team at Google is hiring in London! We're looking for mid-level Android developers who want to work in the 'UI Architecture' layer of Jetpack i.e., Paging, Fragments, Lifecycle, Activity, Navigation and SavedState as we focus on Jetpack Compose and KMP
Today, official integration between the Navigation component and Jetpack Compose was released as androidx.navigation:navigation-compose:1.0.0-alpha01
Check out the newly available guide with code examples:
Stable AndroidX releases are the best releases and today brings a ton of stable release: Navigation 2.1, AppCompat 1.1, Preference 1.1, Fragment 1.1, Activity 1.0, Lifecycle 2.1, Core 1.1, Media 1.1, MediaRouter 1.1, Media2 1.0, and more:
Graduation day for many AndroidX libraries!
- Activity, Fragment, AppCompat, CoordinatorLayout, and Preferences went to beta!
- Core, Loader, and VersionedParcelable are now release candidates
- Annotation and Collection's latest releases are now stable
Today's Jetpack release has Benchmark and ViewPager2 hit 1.0.0 stable! In addition, RecyclerView 1.1.0, ExifInterface 1.1.0, and Room 2.2.2 are also available on the stable channel!
The Android KTX page () got an update today, covering even more of the Kotlin extensions available. Also check out the new page that lists every Kotlin extension function, property, and top level function across AndroidX+Play Core:
Ayyyeee 50,000 followers what up! Let's get rid of some!
Fuck Donald Trump
Fuck Mike Pence
Fuck Mitch McConnell
Fuck white supremacy
Fuck fascism
Fuck the NRA
Fuck the police
Fuck CBP
Fuck ICE
Fuck Mark Zuckerberg
Fuck racism
Fuck Betsy DeVos
Fuck the entire Republican party
Framework Fragments and Loaders have been officially deprecated in Android P. Use the Support Library versions to get consistent behavior across all API levels, backported bug fixes, and Lifecycle and ViewModel support.
The NavigationAdvancedSample is available now, showing the recommended way of doing multiple back stacks with bottom nav and Navigation: - star to track further progress on making multiple back stacks official
Jetpack releases today include *stable* releases of Navigation 2.3.0, DrawerLayout 1.1.0, Emoji 1.1.0, SwipeRefreshLayout, SlidingPaneLayout, and CustomView. Plus, new RC, beta, and alpha releases as well!
Navigation 1.0.0-beta01 is out now! Navigation is now API stable, but bugs or feature requests (for the next release) are always welcome. Note the one behavior change, detailed in the release notes:
Really excited to see the release of the 4th Edition of Professional Android (my first published book!) and honored to be a co-author for the ever amazing
@retomeier
Professional Android 4th Edition is here!
In the 10 years since the 1st edition, Android has added 14 desserts, a new IDE, and a new 1st-class language. The book has a 3rd cover design, *500* extra pages, and the fantastic
@ianhlake
as a new co-author!
Navigation stable (1.0 for Support Library, 2.0 for AndroidX) is out now! We're not slowing down after this release though - lots of feature work planned for future releases!
The Android Jetpack Navigation component is officially Stable!
Start building predictable & consistent in-app navigation with this suite of libraries, tooling, and guidance.
More info here ↓
We've reached an important milestone on the implementation of multiple back stacks: the fragment level work has completed! The Navigation level is next (along with all of the documentation, samples, etc. necessary for the first public alpha release).
Implementation work on multiple back stacks (to support it at both the Fragment and Navigation level) has started. Feel free to read the update on the official issue and star the issue to receive updates.
Navigation 1.0.0-alpha10 is out now! Safe Args can now generate Kotlin code (w/ default args+immutable data classes, woohoo!), there's a new 'by navArgs()' property delegate for accessing generated Args classes lazily, and a number of important bug fixes.
Single Activity: Why, When, and How brings together a lot of the best practices around activities, Fragments, Navigation, and most importantly *making your code testable*.
Jetpack's release today is headlined by stable releases of Fragment 1.3.0, Activity 1.2.0, Lifecycle 2.3.0, SavedState 1.1.0 as well as Core-Role 1.0.0 and MediaRouter 1.2.2.
If you're using Loaders, please take an extra close look at Support Library 27.1.0 as LoaderManager was completely rewritten, now based on Architecture Components:
As of today, release notes for AndroidX, Architecture Components, and AndroidX test have all been combined into one index, with separate pages for each group of artifacts:
Navigation 1.0.0-rc01 is out right now with just a single bug fix over beta02:
If you're still using an alpha or beta version of Navigation, now is the perfect time to upgrade and make sure we're stable and ready for a 1.0 release!
It's July 1st and with that comes...Jetpack Compose 1.0.0-rc01! 🎉 Activity 1.3.0-rc01 and ProfileInstaller 1.0.0-rc01 are also out, plus updates to Navigation, Paging, and the brand new Wear Compose!
Did you know that AndroidX allows external commits via Github pull requests on a library by library basis? Today, the Fragment, Activity, and Navigation libraries were added to the list of supported library groups (joining Paging, Room, + WorkManager):
Navigation 1.0.0-alpha06 is out now with support for Shared Element Transitions for both activities and fragments (plus an Extras API for passing anything to custom Navigators):
You might notice a little something extra in your Android SDK Manager today: the Sources for Android 34 are now available!
Having these available *just* for debugging purposes is incredibly helpful as you move to compileSdkVersion 34.
Jetpack releases today include Preference 1.1.1 (bug fix + dependency bumps), Navigation 2.2.2 (bug+ProGuard fixes), and VersionedParcelable 1.1.1 (ProGuard fixes) plus new RCs, Betas, and Alphas (including a bunch of Animation related 1.0.0-alpha01s!)
Navigation 1.0.0-alpha03 is out now!
* NavigationUI helpers for Toolbar and CollapsingToolbarLayout
* More types (including Parcelable!) and nullability for Safe Args (note the breaking changes though)
* Lots of bug fixes
Navigation 2.0.0-rc02 is out now! Wait, what? Yep, the androidx.navigation artifacts are here! 1.0.0-rc02 and 2.0.0-rc02 have identical behavior, just a change to the AndroidX dependencies. A combined 1.0+2.0 stable is just around the corner!
Implementation work on multiple back stacks (to support it at both the Fragment and Navigation level) has started. Feel free to read the update on the official issue and star the issue to receive updates.
If you're interested in contributing to Jetpack or just want a deeper understanding of how the Jetpack team works, much of (previously internal only) team guidance is now publicly accessible:
Thanks
@alanviverette
and
@_aurimas
for pushing to get this out!
ConstraintLayout 2.0.2 is good news (yay bug fixes), but the *exciting* news is ConstraintLayout moving to Github. Source code for now and hopefully open development, issues, and everything else for ConstraintLayout 2.1!
Android 11 is rolling out now! I'm sure you've already used the months of dev previews and betas to get your apps ready, so the big news for today are: Sources for API 30 (Android 11) are now available in Android Studio's SDK Manager. Woohoo!
✨
#Android11
is here!
Android 11 introduces people-centric conversation notifications, new controls space, one-time permissions, enhanced 5G support, and so much more.
Get your apps ready ↓
.
@asfalcone
and the Jetpack API reference docs team has really outdone itself with this latest update: you can now see in which version of a library a method or class was added or deprecated!
Jetpack releases today include DataStore 1.0.0 🎉, Compose 1.0.1 (Kotlin 1.5.21 support!), Games 1.0.0, Startup 1.1.0, and bug fixes in ExifInterface 1.3.3 and Media 1.4.1.
Want to hear more about Jetpack Navigation, Architecture Components, or Fragments?
I've got two days to answer your questions. Time to join me at
#AndroidDevSummit
, Oct 23-24, is running out.
Apply here →
Navigation 1.0.0-alpha09 is out now with some big improvements with how we work with arguments thanks to
@wkalic
, stopping dev on navigation-testing (see the release notes), and more flexibility in NavigationUI:
🥳📱
#Android12
is live in open source!
With a new UI, privacy updates, and more, there’s a lot in store for developers.
Keep an eye out for Android 12 coming to a device near you ↓
Happy Cinco de Mayo! Today's Jetpack releases include big ones: Camera 1.0.0 (!), Hilt 1.0.0 (!), and Paging 3.0.0! In addition, there's bug fix releases in Activity 1.2.3, Media 1.3.1, and MediaRouter 1.2.3.
Today's
#JetpackReleaseNotes
include the release of Glance 1.0.0 (building app widgets with Compose!), Annotation 1.7.0, Core 1.12.0, Core RemoteViews 1.0.0, Webkit 1.8.0 plus bug fixes in Compose 1.5.1, Navigation 2.7.2, Lifecycle 2.6.2, and Paging 3.2.1.
Super excited to be talking about "What's New in Navigation" at I/O this year! A lot has changed since alpha01 and we'll be going through it all and what it means for the best practices in building your in-app navigation
Navigation 1.0.0-alpha07 is out now! The new AppBarConfiguration allows you to set many top level destinations (hiding the up button on them all). See the new documentation for more details: as well as the full release notes
Compose 1.2.0, Wear Compose 1.0, Core Splashscreen 1.0 are all out today in addition to bug fix releases in Room 2.4.3, MediaRouter 1.3.1, Navigation 2.5.1, Fragment 1.5.1, Activity 1.5.1, and Lifecycle 2.5.1.
Jetpack releases today include Autofill 1.1.0, Biometric 1.1.0, RecyclerView-Selection 1.1.0, Transition 1.4.0, WorkManager 2.5.0 and bug fix releases in Media2 1.1.2 and Navigation 2.3.3. And that's just stable releases!
We've published a new guide for debugging Fragments that covers:
- How to enable Fragment's debug logging
- How to use Fragment 1.4's FragmentStrictMode API to catch common issues and deprecated API usages at runtime
Saving state across process death/recreation is possible with onSaveInstanceState(), but it is the SavedState APIs that make it a reliable building block. Read the updated documentation:
1) SavedStateRegistry:
2) SavedStateHandle:
Jetpack releases continue today with a lot of releases including WorkManager 2.4.0 stable! Core 1.3.1 is also out with an important crash fix on API 29 devices.
The Activity Compose library provides APIs for starting an activity for result, requesting runtime permissions, and handling the system back button directly from your composables - no overriding methods in your Activity
Check out the new docs for details
After a short break from regular releases,
#JetpackReleaseNotes
are back with *50* releases today! Paging 3.2.0 stable (w/ Compose + Testing lib) headlines this release along with bug fix releases in Fragment 1.6.1, Preference 1.2.1, & RecyclerView 1.3.1.
Congrats to the Play services and Firebase teams for getting their transitive dependencies switched over to AndroidX! No more jetifier needed for those libraries, woohoo!
Jetpack releases today (yep, even more!) include CustomView+DrawerLayout+SlidingPaneLayout 1.1.0-rc01, Security 1.1.0-rc02, Navigation 2.3.0-beta01, WorkManager 2.4.0-beta01, plus lots of alpha releases.
Here's a good summary of my Single Activity talk at
#AndroidDevSummit
- be sure to watch the full talk to see a lot of code examples going more in depth into each best practice.
Check out
@ianhlake
's ten best practices for moving towards a single activity structure with Navigation Architecture Component!
#AndroidDevSummit
Watch here →
Jetpack releases today include Activity 1.6.0 (with Android 13 API support), Annotation 1.5.0, a bug fix release in Fragment 1.5.3, DrawerLayout 1.2.0-alpha01 (also with Android 13 API support), plus some nice Compose changes in 1.3.0-beta03.
*In-app navigation: principles and recommendations*
I'm really looking forward to sharing what we've been working on regarding in-app navigation. Come join me and
@ZelenetS
bright and early at 8:30am on the third day of I/O 2018!
It's
#AndroidDevSummit
day and with it comes a new set of Jetpack releases including Compose 1.3.0, Compose Material3 1.0.0, and bug fix releases in Activity 1.6.1, ExifInterface 1.3.5, Fragment 1.5.4, and Navigation 2.5.3.
I really like using WorkManager. It has made doing background work so much easier and the API improvements in each release have been very welcome. Alpha 11, released today, adds a CoroutineWorker - no more blocking a thread! Was really easy to switch over:
Whether you're using just Fragments, Navigation with Fragments, or Navigation Compose, the new APIs for saving and restoring your state are now available!
The APIs are actually very minimal, but there's a lot going on behind the scenes that this blog post goes through in detail.
🔙📱 Multiple back stacks are now supported for your app with FragmentManager and NavController!
🔄 Easily swap between multiple back stacks by saving the current back stack and restoring a saved one.
Learn how they work ↓
Very excited for
#AndroidDevSummit
! I'll be talking on Day 2: "Single Activity: Why, When, and How" about why moving to a single activity even matters, explain when it is appropriate or not, and how to migrate to that model with the help of Navigation.
More Jetpack releases today with Core 1.2.0 hitting stable, bug fix releases in Fragment 1.2.1, Navigation 2.2.1, WorkManager 2.3.1, and Media2 1.0.2, and Lifecycle ViewModel SavedState joining the other Lifecycle artifacts at 2.2.0
Jetpack releases today include stable releases of Core 1.6.0 and Core Google Shortcuts 1.0.0, Datastore reaching its 1.0.0-rc01 release, and a brand new Core Splashscreen 1.0.0-alpha01 to back port the new APIs from Android 12 back to API 23.
Happy
#GoogleIO
! This week's Jetpack releases include AppCompat 1.3.0 + Core 1.5.0 going stable, a bug fix release in Fragment 1.3.4, the first alpha of Emoji2, a new macrobenchmarking library, plus multiple back stacks in Navigation and Fragments!
Navigation 1.0.0-alpha08 is out now with some important bug fixes for nested graphs, many lower level API improvements (particular for custom Navigators), and array and Serializable+Enum support in Safe Args:
Jetpack releases today include ShareTarget 1.2.0 (fix for Android 12+), a bug fix release in ExifInterface 1.3.4, Compose 1.3.0-rc01, Compose Material3 1.3.0-rc01, a beta01 for Room and WorkManager, plus the first alpha of a new TV library using Compose 👀
I'm really excited about the new Photo Picker in Android 13! Also excited about the upcoming AndroidX Activity release which is planning backward compatible contracts to make it easy to use with registerForActivityResult() and Compose.
Take a sneak peek:
July AndroidX release brings 8 libraries to Release Candidate (including AppCompat and Preferences) status, plus many more in beta, alpha, and even some brand new libraries:
Navigation 2.1.0-alpha03 is out now with support for DialogFragment destinations, navigating using a URI instead of a resource id, bug fixes, and faster default animations when using NavigationUI:
Happy New Year! Welcome back to
#JetpackReleaseNotes
with today's release of AppCompat 1.6.0, Room 2.5.0 plus bug fix releases in Compose 1.3.3 and Wear Compose 1.1.1 along a ton of new alpha releases.
Bridging the gap between the "survives configuration change" world of ViewModel with the "survives process death and recreation" world of saved instance state make modularizing your logic a lot easier - no more having your Activity/Fragment save state on a ViewModel's behalf
🚨 New Android Architecture Component! 🚨
💾 Saved State for ViewModel 1.0.0-alpha01
It's a very small (and experimental) module that basically lets you use onSaveInstanceState from ViewModels to recover from system-initiated process death.
📔 Docs ->
It's my birthday today (yay Saturday birthdays!). If you have a cat, I'd love to see it. If you're feeling generous, I'd _really_ love your support for a good cause 👇👇👇
My daughter's K/1 teacher is starting a new effort around Cultivating Literacy. This is incredibly important to me and I know they have the know-how to make it a success. Any donations you can make to get it off the ground would be greatly appreciated!
Navigation 1.0.0-alpha04 is out now!
- app:type has been renamed to app:argType to prevent conflicts with ConstraintLayout 2.0.0-alpha1 and other libraries
- Error messages in Safe Args are now clickable
- Fixed an issue with deep linking and back button
Jetpack Releases include stable releases of Security Crypto 1.0.0, Room 2.3.0, Car App 1.0.0, plus bug fixes in Fragment 1.3.3, Media2 1.1.3, and Transition 1.4.1.
Paging 3.3.0-alpha01 is out today and is now compatible with Kotlin Multiplatform, thanks in large part to upstreamed contributions from
@CashApp
's multiplatform-paging project.
Android 13 Beta 1 came out yesterday (🎉!) and today's Jetpack releases of Core 1.9.0-alpha03, AppCompat 1.6.0-alpha03, and Activity 1.6.0-alpha03 are all built against that Beta 1 build: use them only when compiling your app against Beta1!
Today's
#JetpackReleaseNotes
includes MediaRouter 1.6.0, bug fix releases in Navigation 2.7.3, Compose Material3 1.1.2, many RC releases, Paging 3.3.0-alpha01 (with KMP!), Fragment+Transition Predictive Back, and a brand new androidx.bluetooth library!
Happy
#GoogleIO2023
day! Along with everything else,
#JetpackReleaseNotes
are out for Compose Material3 1.1, Core 1.10.1 and Android 14 Beta 2 libraries including Activity, Core, Credentials, Privacy Sandbox, Core Telecom (new!), and Transition.