Published by Stephanie Cuthbertson, Director of Product Management
We recently hosted the Android Developer Summit at the Computer History Museum in Mountain View, Calif., to take a look at the past 10 years of Android and introduce some of the most important new features for Android developers. Here are some of the things we shared!
Bring a new experience to Android devices
Back in the Android 1.6 era, Android and our partners considered using different screen sizes and densities to enable the platform to support multiple device models and new experiences, such as Android TV, Android Auto, Wear OS, Even Android apps on chromebooks. Android partners are breaking the rules on mobile screens, launching “phablets” when screens are still small. So far, when phablets… When it was just a phone, users fell in love with the standard-sized device at first sight.
Now we’re seeing Android device makers create a new category: Foldables. The device’s screen takes advantage of new flexible display technology that actually bends and folds.
Kotlin: It’s become the fastest growing language
We used Kotlin, a first-class language, on Android in 2017. This month, we’ve used Kotlin to launch more than 118,000 new projects in Android Studio from users who have chosen to share metrics. That’s a tenfold increase compared with last year. Kotlin has become the fastest growing language in terms of number of contributors on GitHub, and is the # 2 most popular language on Stack Overflow. Our survey shows that the more developers use Kotlin, the more satisfied they are with the language.
Last week, JetBrains released the latest version of Kotlin, Kotlin 1.3, with new language features and apis, some fixes, and improved performance:
- Inline classes allow you to create types that have no overhead unless they are boxed. For devices where Android application usage is limited, maintaining type safety while avoiding overhead is a big advantage of this release.
- Unsigned numbers are now part of the Kotlin standard library, which includes UInt, UByte, and ULong. These new types are built from inline classes.
- Multiplatform code, which used to be written only for Android or JVM, can now be written for Javascript or Native. This feature also unlocks the possibility of re-using some of the benchmark code on more platforms.
- Coroutine support is now stable. Language and library support come together to simplify the way you interact with asynchronous operations and do the concurrent work that is critical to every Android application.
All of these new Kotlin 1.3 features will be integrated into the Kotlin-specific apis we provide, and most of these apis will be part of Jetpack via KTX extensions.
Android Jetpack
We announced Jetpack at Google I/O, a new generation of tools and Android apis designed to speed up your Android app development. Jetpack is built on a foundation of supporting libraries and architectures. Of the top 1,000 apps and games, 80% already use one of the new Jetpack libraries in production.
This summer we moved AndroidX, an evolution of Jetpack’s original Android support library, to the public AOSP. This means you can see features and bug fixes completed in real time and submitted to any AndroidX library. You can learn more about the submission here.
We’ve been trying to get as much feedback and optimization as possible on two new architecture component libraries, Navigation and Work Manager, which we plan to upgrade into beta this month. The Navigation architecture component provides a simplified way to implement Android Navigation principles within an application using a single Activity. In addition, the new Navigation Editor in Android Studio creates and edits your Navigation architecture. This eliminates navigation boilerplate, giving you atomic navigation operations, easier animated transitions, and much more. Work Manager makes it easy to perform background tasks in the most efficient manner, choosing the most appropriate solution based on application status and device API level.
We’re also excited to see Android Slices moved into public search experiments! At I/O this year, we introduced Slices, a whole new way to bring users into your application. Slices are like small Slices in your application where you can render content and actions. You can book a flight, play a video or hail a car. Slices is another example where we want to open early, but we want to take the time to polish it. This month we’re joining a public early adopter program with Doist, Kayak, and others. We’ll experiment with displaying Slices in Google search results. For more details, another session at the Developer Summit will also provide you with more information and best practices.
Android Studio: Focuses on productivity, build speed, quality, and fundamentals
Android Studio is our official IDE for Android development. We asked, where do you spend the most time? When we collected data from Android Studio users who chose to participate, we found that build times increased after each new release, sometimes by 20%, but we also found that build times slowed down over time. Well, isn’t that a contradiction? We’ve been trying to understand the truth behind it.
It turns out that the build is quite a complex ecosystem. And the choices developers make have a huge impact on the build. The combination of operating systems, custom plug-ins, annotation processors, and languages our developers use is vast and increasingly diverse. All of these choices can have a significant impact on build time. For example, a plugin that some users like to add can slow builds by up to 45% in the background. With this in mind, we realized that we needed to build performance analysis tools so that we could easily understand what was slowing down the build speed. We will also invest more in our own plug-ins to improve performance to ensure that we continue to improve the performance of our core builds.
Android Studio 3.3 will be released in beta 3. In upcoming releases, we can expect to see a strong focus on quality and fundamentals: reducing crashes and hangs, optimizing memory usage, and fixing errors that affect user usage. We also announced that Android Studio will be the officially supported IDE for Chrome OS early next year; You can learn more here.
Android App Bundle and dynamic functionality
Since 2012, the app scale has grown fivefold. However, there are drawbacks to larger scale applications: lower install conversion rates, lower update rates, and higher uninstall times. That’s why we created the Android App Bundle, a new distribution format that delivers only the code and resources a user needs to run your App on their specific device. Compared with the generic APK, the application can save an average of 35%. Because you don’t have to use an incomplete solution, such as multiple APKs, application packages can also save you time and effort after each application release. Android Studio 3.2 enables software packages to support the full IDE, and thousands of software packages are in the works with billions of installs, including Google apps such as YouTube, Google Maps, Google Photos and Google News.
Current application packages support uncompressed native libraries; With no additional developer effort, the app package now reduces app downloads using native libraries by an average of 8% and reduces disk usage on Android M (and later) devices by 16%.
Once you switch to this application package, you can start modularizing your application as well. With dynamic functionality modules, you can load any application functionality on demand, not just during installation. You don’t need to keep big features that you only use once on each individual device; Dynamic functionality can be dynamically installed and uninstalled when the application initiates a request.
In-app update API
We received feedback that you wanted more control to ensure users were running the latest and best version of your app. To meet this need, we are releasing an in-app update API. We are currently testing this API with our early access partners and will soon be releasing it to all developers.
The API has two options. The first is a full-screen experience for critical updates, in which case you want users to wait for the app to apply the updates immediately. The second option is flexible update, which means users can continue using the app after the update has been downloaded. You can completely customize the update process as part of your application.
Discover installation-free applications
In addition, we made installation free apps (Google Play Instant) more accessible to users. In the near future, we’ll be able to give you the option to use the url, allowing you to take advantage of the existing deep link data traffic in the App Store, and, if possible, give users an instant experience with your app. In addition, we are limiting the size of the free app to 10MB to make it more accessible to users by using the “try it now” button in the app Store and banner on the web.
In Android Studio 3.3 beta, you can now build a package that launches installation-free applications. This means that you can now build and deploy installation-free experiences for a single Android Studio project and incorporate them into a single Android application package. You only need to upload one artifact for installation-free and installed applications.
Watch more than 30 meetings live on the platform
Click here to learn more about the Android Developer Summit
Android developer’s Must-have collection