Every year, Google I/O happens right around this time in June. But this year, due to travel restrictions and COVID-19 concerns, Google decided to try something a little different. Instead of one action-packed week of announcements, keynotes and sessions, the 2020 version of Google I/O has taken on a new identity. And this time, we get a deep dive into one of 11 different announcements over the course of 11 weeks that coincide with the launch of Android 11. If you’d like to see what all is on the docket, you can visit the Android Developers page here.
Each week, our expert developers will be recapping the week’s information and offering up everything you need to know to stay abreast of all that Android 11 has to offer. Here’s the line up:
*Each week, we will add new insights and topics to this article. Please check back each week to get the latest in Android announcements from your experts at Bottle Rocket.
We just wrapped up week 1 and here’s what we learned.
One of the key goals of Android 11 is for our phones to be more people-centric. Some of the new features introduced in Android 11 will allow the people in you life to feel like they’re right there with you.
These new features include:
At the center of this release is the Android Conversation Shortcut API and Identity Services Library. More information can be found here.
The pattern of Conversation Notifications and Bubbles help put conversations front and center and give users quick access to the people they care about most. If your app offers any sort of communication, even through support channels, you should consider moving towards this new pattern. Chatting with a support representative while continuing to use your device makes the experience feel much more personal, like talking to a friend.
We just wrapped up week 2 and here’s what we learned.
Machine Learning capabilities in Android 11 have been updated quite substantially. The Neural Networks API (NNAPI) has been updated to version 1.3. With this comes the expansion of operations and controls available to developers.
Additionally, the Face Detection portion of MLKit now ships with Google Play services, so you can use it without increasing the size of your APK.
There is an early access program for MLKit as well that lets developers preview upcoming MLKit features. There are two new APIs that are now a part of this program.
There is also now custom models that can be used with the Image Labeling and Object Detection and Tracking APIs. This allows for more tailored solutions that let you build an implementation from scratch instead of relying on Google’s models.
MLKit has almost infinite possibilities in terms of business functionality. A good example is using OCR to translate a camera feed to real text. Additionally, the project that Rocketeers completed as part of the #AndroidDevChallenge is a great example of practical functionality offered by the MLKit. The project, named Path Finder, is meant to help people with visual impairments navigate complex situations by identifying and calculating trajectories of objects moving in their path. Those trajectories are then process and audio instructions are given to the user. You can learn more about Path Finder here.
We just wrapped up week 3 and here’s the summary of what we learned.
Android is evolving as a privacy-centric Operating System and protecting user’s privacy is a shared responsibility between the Android system, the users and apps.
There are many new features in Android 11 that focus on giving control of data to the users:
From a security perspective, the Android 11 release is all about fit and finish what’s already started in the previous Android releases. Android 11 focused on making sure the internals got plenty of attention and includes the followings:
With better security and privacy controls, apps can instill even more trust with their users. It also keeps them from worrying about a rogue app on their phone that may be collecting information that they are unaware of, or more likely have just forgotten about. Google is taking a stronger stance on security and privacy, and making good privacy practices the recommended default behavior, instead of only providing the option and letting users decide.
This week the android team is focusing on app compatibility.
As users update their phones to the latest version of android, or buy new phones, changes required by the newer OS can break existing applications. App compatibility is the idea that an application works correctly with the version of android on the user’s phone.
For a certain amount of time, Google allows app developers to avoid many of changes required by the newer Android OS by “targeting” an older operating system. Thereby ignoring many of the changes required.
With Android 11, Google seems to be taking a more aggressive stance on requiring apps to support the newer android system features. However, they are also adding some new features to make the transition to Android 11 easier.
Specifically:
The detailed and technical list of changes to the OS is available at:
https://developer.android.com/preview/behavior-changes-all
With the newly added process and tools in Android 11 that helps with compatibility testing, it’ll be easier to make sure the existing apps will continue to work properly after system update which will greatly help with user experience through device OS upgrades.
And as mentioned above, while Google doesn’t typically force apps to support the latest OS version, Google has strongly implied that they intend to make all apps in the Play Store support Android 11 more quickly (especially for privacy and security related features introduced in Android 11.) Thus, it’s important to plan for the existing apps to comply accordingly.
This week the android team is focusing on Languages.
Last year, Google announced that Kotlin is the preferred language for writing Android code. In Android 11, Async tasks are now deprecated and Kotlin coroutines should be used to handle asynchronous operations, for a few key reasons:
For projects utilizing C and C++ as the programming languages, Android 11 includes the following solutions to address memory corruption bugs:
Also, in Android Studio 4.0, Native libraries are now exposed the same way Java libraries are using Android Archives:
Prefab is the tool that facilitates all of this by performing compatibility checks to find suitable libraries for build configuration.
Android Gradle Plugin 4.0 now supports certain Java APIs and third-party libraries such as the followings that were once only available on newer android devices:
For end users, the enhancements included in the Android 11 Languages will greatly improve user experience as well. General performance is improved with Kotlin Coroutines, ensuring that even a complex UI is always responsive smooth. With additional support for APIs in the OpenJDK, it’s less likely that users will see crashes, even on devices that have been heavily customized by the manufacturer. The standardization by Google is resulting in a more robust and stable OS, leading to better user experience and higher satisfaction.
We just wrapped up week 6 and here’s what we learned.
Android 11 Jetpack updates help provide more efficient ways to create better applications. The new features include:
By utilizing the Android 11 Jetpack components, productivity can be increased, and more focus can be put on how to make the application unique as the common infrastructure code is provided by the Jetpack libraries. Take CameraX mentioned above as an example, it provides quite a few compatibility fixes to help make the developer experience consistent across many devices. Thus, adding camera capabilities to the app can be done without having to worry about device specific details such as the form factor or camera configurations!
We just wrapped up week 7 and here’s what we learned.
This week is all about Android development tools for different development phrase including Design, Coding & Deployment, Build, Emulator, and Profiling. Some highlights:
Having a good understanding of the developer tools available to the development team in the latest versions of Android Studio will greatly help increase team productivity in all different phases of the app development workflow. Take the Database Inspector feature mentioned above as an example, it allows developers to modify data in app database in a way that is not much harder than editing a spreadsheet and prevents requiring using a 3rd party solution for database inspection. This significantly reduces the time and effort needed for app database inspection/manipulation, improving efficiency and help developers build even better apps!
This week we focused on what’s new in Android 11 about App Distribution and Monetization. Google has made improvements in the following areas:
This week again is packed with valuable information. All the changes made in the new Google Play Console are aimed to help reach and engage more users. For example, the Pre-launch report will help identify issues with the app before your users see them; Subscription report helps optimize the revenue growth and Acquisition report helps you understand how to grow your audience. Also, it’s important to note that new apps and games will be required to publish with the Android App Bundle in the second half of 2021. But no need to worry! There are lots of improvements made to help you develop, test, and publish with app bundles!
This week we are talking about the devices other than our phones. Android TV, Wear OS, Chrome OS, Android Auto, and the embedded Android Automotive OS all have made updates to help target these devices.
With the current pandemic, the time spent watching TV on a streaming device has risen as much as 81% year over year, making now an important time to add improvements on Android TV.
Google has also added improvements to both Android Auto and the embedded Android Automotive OS including:
Due to a rise in foldables, the WindowManager Library has been added to Jetpack, allowing the developer to give the best experience on any new from factor. This allows for developers dynamically change the experience as the user changes the state of their device. Below, Google shows us how Duo will work on a device such as the Samsung Galaxy Z Flip, which allows for both folded and partially folded states, and how the windows move to create a better experience when partially folded.
This week was full of improvements that help developers target the non-phone devices. Today people are becoming multi-screen users, making it vital to develop cleanly for as many devices as possible. From features like Cast Connect to assist a user in controlling their favorite media to ways to write apps that will work dynamically with tablets and foldables, Google is helping developers meet users wherever the are, on whatever device is close to them.
Week 10 is all about the upkeep and integrity of your games and the new controls available for media.
New updates to help keep your games up to date, high performing, and equal among all devices.
Android 11 enhanced its system media controls.
This week was packed with information related to the tools, services, and technologies available on Android 11 to help you build, optimize, and distribute great games. With the enhanced media control, new & updated 5G APIs and freshly added tool support, the aims for these updates in Android 11 are to help you unlock transformative new user experiences, improve your game developer experience and help you better characterize the performance of your game so your game can expand the reach to more devices and new audiences!
You made it to the last week of 11 Weeks of Android! 🎉
Week 11 is all about Modern Android UI.
Jetpack Compose
Jetpack Compose is Android’s new modern UI toolkit that combines the power of Kotlin with the reactive programming model to make it easier and faster to build UI.
The big news this week is that Jetpack Compose had its first Alpha release. According to the roadmap mentioned earlier by Google, in 2021 Jetpack Compose is expected to reach 1.0 stable version.
Common strategies for integrating Jetpack Compose with an existing Android app includes the followings:
For more details, please check out the videos here provided by Google.
Keyboard (IME) animations
Android 11 provides the ability for apps to animate the on screen keyboard using the updated WindowInsets APIs.
Material Design Components
MDC is created to help teams build high-quality digital experiences and it is recommended for the apps to follow the Material Design guidelines to ensure that apps operate consistently, that patterns learned in one app can be used in another. More details can be found here.
The goal of all the UI enhancements mentioned above including Jetpack Compose UI toolkit is to help create more beautiful, engaging UIs for the apps that your users will love. By utilizing the MDC (Material Design Components) library and conforming to the guidelines, it helps make the app maintain the consistency with other apps installed on a user’s device. And also, MDC is a drop-in replacement for Android's Design Support Library so it’s worth all developers taking a look!