Google’s annual developer conference, Google I/O, offers a look into the updates and changes Google has implemented across their entire product suite during the previous year. For those unfamiliar, Google I/O is essentially the equivalent of Apple’s popular WWDC event.
This year’s Google I/O presented a wide swath of improvements to technologies associated with mobile development, notably to Google’s Android and Flutter technologies. If you’re interested in staying up to date with cutting-edge Android development tools and services, read on for our summary of the conference’s mobile-related talks.
What’s New in Android 12 User Experience
With the new Android 12 release in fall 2021, users and developers can expect a modern and vibrant enhancement to Android’s user experience (UX). They’re introducing customized UX themes, better animations, and clearer notifications to their Material UI design library.
Here’s a snapshot of the latest UX changes coming to Android 12:
Android 12’s expanded color palette aids in customizing the user’s UX based on their wallpaper. The new software can determine dominant and accent colors within the user’s background and then applies hues to every element on the screen to provide a seamless user interface (UI).
They’re rethinking animations to reduce user-perceived lag by introducing new app launch animations and deprecating trampolines.
Android 12 has also made improvements in their haptic patterns to allow for a more immersive experience. Developers can now feed audio patterns to the haptic generator in order to create vibrations alongside sound effects.
In terms of notifications, Android 12 increases transparency to users on which apps a toast is coming from. They’ve also provided a new standard template to ensure consistency on how all notifications are displayed in the notification area.
The best news is that few development teams will need to make refactors to their existing apps, as long as they are not heavily customizing their notifications. If you do have custom templates, it would require some effort to port them onto Android's newer SDKs. We recommend starting early once beta versions are available.
What’s New in Android Privacy
Android 12’s release brings about a significant change in privacy processes and will ultimately help protect the user’s data and best interests. Google has made enhancements to their mobile OS to expand on transparency, control, data minimization, and privacy.
Transparency and Control
Google is making numerous updates that provide users visibility and control over how apps access their phone’s hardware and data.
Android 12 introduces microphone and camera indicators that will notify the user each time an app attempts to access that data. Quick settings will allow users to view this information and quickly revoke permissions if the data access was unwarranted. On top of this, the new software is adding two new toggles to their settings that will turn off microphone and camera access for all apps on the device.
A few other privacy updates:
A new privacy dashboard will now display all the apps that have accessed microphone, camera, or location data in the past 24 hours.
Android 12 will also be equipped with clipboard notifications that tell the user each time apps read from the clipboard.
Users can now choose between giving apps their precise location or their approximate location on top of the previous controls of allowing this access “while using the app,” “only this time,” and “don’t allow.”
These transparency updates should make organizations more mindful of how they request and access user data. If benefits for users aren’t clear, users may reject permissions before they are given.
Along with holding developers accountable for asking for data permissions, Google has made efforts to reduce the scope of permissions. Now users are not surprised by the data that leaves their device. They’ve created a new nearby device permission which decouples location services and Bluetooth scanning so users will no longer be prompted with apps asking for location data while pairing a Bluetooth device. Android 12 will also introduce app hibernation which will revoke previously granted permissions and free up storage and battery by hibernating apps that have not been used for extended periods of time.
Artificial intelligence (AI) and machine learning (ML) technologies are becoming increasingly available to mobile users, but these technologies often require access to private user data to be helpful.
Android’s new Private Computer Core is an isolated layer designed to keep sensitive data separate from the operating system and the rest of the apps. This new Core will be used in features like SmartReplies, which scan user messages and make reply recommendations. The message processing will be executed inside the Private Compute Core so a user's data never leaves their device.
State of Kotlin on Android
Kotlin’s rapid growth has placed it at the forefront of Android development with over 80% of the top 1,000 apps in the Google Play Store using this language. Kotlin’s popularity among developers stems from many reasons including expressiveness, strong type and null safety, interoperability, and structured concurrency. Google continues to promote its growth by releasing new features and fixes designed to overcome the initial pains of adopting Kotlin.
This year they have announced the following:
Improved support for KAPT and configuration caching for the existing Kotlin Gradle plugin.
Faster build times for applications using the new native annotation processor, Kotlin Symbol Processors (KSP) over those using KAPT.
Increased speed by two times thanks to a large rewrite of the Kotlin compiler.
A new co-routines debugger in the latest version of Android studio, like what developers have experience within Jetbrains’ integrated development environment.
A new Kotlin DSL for Gradle, allowing developers to use Kotlin to write Gradle files instead of Groovy.
Easier UI composition with Jetpack Compose, the first Kotlin-only KTX.
KTXs for other Google SDKs including Maps, Places, Firebase and Play Core.
Server-side libraries with Kotlin gRPC Implementation and Kotlin Protobuf Bindings.
These changes emphasize a recent shift at Google to make Kotlin the primary language for Android development. Support for Java isn’t expected to go away anytime soon but these updates for Kotlin projects should provide exciting incentives for developers to switch to using Kotlin in their Android applications.
The recent updates also provide a couple of technical changes developers will have to keep in mind as they start integrating Kotlin:
Older Java-supported LiveData is being phased out in favor of StateFlow, a part of the Kotlin co-routines package that utilizes Kotlin-only features like suspend functions.
The newest versions of Android Studio support observing StateFlows directly in view bindings so you no longer need to rely on LiveData for data binding.
LifecycleKTX now has the capabilities to automatically pause and restart jobs to prevent resource wasting when observing flows in the UI without data binding.
The use of Kotlin Synthetics for Android Views is being phased out in support of ViewBinding.
Parcelize has now moved to a separate library which will have to be imported.
Another exciting update is that the Android Runtime (ART) is being changed to an independent module in Android 12, which means updates can be sent to devices without needing to wait for a larger OS update.
What’s New in Flutter
Flutter has seen tremendous growth over the past year. At Google I/O they announced overhauls to the Flutter infrastructure and the Dart language that address developer concerns, making everything more robust and getting Flutter ready for production applications. These features include:
Closing more than 6,000 reported issues in the Flutter codebase and heavily revamping their internal testing infrastructure.
Optimizations leading to large reductions in startup memory and initialization time and faster FPS for Flutter applications overall.
Better support for mouse events like dragging. To aid developers, a lot of new debugging tools have been released including a memory allocation stack and a custom memory timeline.
Dart support for cloud applications, including the massive size reduction in compiled applications that developers are used to with Flutter applications.
Generalized type aliases for functions and non-functions in Dart, making it incredibly easy to manage complex typings in a large application.
One of the biggest hurdles for creating applications with Flutter is the lack of SDKs for many other products that are typical for native applications. With this release, the Flutter ecosystem has grown substantially and will offer support for the newest themes in Material UI, a beta SDK for Admob to monetize your application, a production-ready in-app purchase plugin, and more. One of the biggest ecosystem upgrades is that Google’s ad manager is now production-ready for the latest iOS SDK, which includes support for app tracking transparency enforcement, and adaptive banners to automatically scale your ads to any screen size. A new Pay plugin has been released that allows developers to support Google Pay and Apple Pay with one piece of code.
What Does This Mean For You?
This year’s Google I/O conference has equipped us with improvements to the user experience in Android through UI developments and increased privacy measures as well as updates to Kotlin and Flutter to ease development. Google recommends, and in some cases, requires you to integrate these latest updates to your mobile app. It’s important for organizations to start making changes now to keep up with the current industry norm and to avoid getting left behind.
In part 2 of this blog series, learn more about Google I/O's updates to Firebase.
Reach out to our mobile experts at firstname.lastname@example.org if you’d like help getting started.