Android has been growing and it not so surprisingly is the one thing that is one of the big themes of this Google I/O from what I felt. The other three themes that seem to be big are Machine Learning, VR and cloud [Firebase]. It's refreshing to see the path Google has taken with Firebase and giving it more tools under it's belt. It might not a part of the Android Framework but those tools can help with development, testing and releasing Android applications.
So what's new in Android?
Android N. Unnamed yet and you can go suggest a name here.
Support for Java 8 and Lambdas
That's right; they are finally coming. So all of us using rx goodness/retrolambda might be finally relieved. Even if you are not using rx, Lambdas are worth looking into and learning if you aren't using them.
- Graphics and Runtime performance improvements.
- Vulkan, a 3D graphics api to give game developers access to GPU.
- New JIT compiler with 30 to 600% performance improvement on various benchmarks.
- Reduced size of compiled code by 50%.
- Faster installations.
We do not have to go through that nagging updating dialog that used to block us from using the device when the phone is being updated.
All Android apps go though Google Play security testing before being released into Google Play. This might take upto 2 hours from the time we push that publish button. Safety net to predict bad behavior in apps might be violating security and automatically uninstall the app from Android devices.
Recent apps are limited to 7. That is just awesome. They also brought back the clear all button. You may also now double tap the recents button to go back to the most recent app.
Android N supports split screen for mobile devices and picture in picture for TV. Users can long press the recents button to select a different app to open at the same time along side the current app that is open. Users can also adjust the size of the window for each app by scrolling the divider. This is one of the major updates to the Android Platform. If you as an app developer have been following proper guidelines to support different screen configurations you should be good to go by just flipping a switch to support it in the manifest. If you haven't been doing that or if you are a product person and your devs are not doing that, then it's time to ask them to do that. It is frustrating to see how some apps break the pattern just because their iOS apps support portrait only. Unless your app has some very complex screens, supporting orientation/density specific screens should be an easy thing to do. And for the most part most of the screens of apps are just sort of text / image based layouts or lists which just work fine in any orientation. You can decide if you are a part of the good apps that let users use all the cool things that they expect from their phone that they payed for or be one of that crappy apps that would break the user's flow.
Direct replies for messaging apps from the notification itself.
Change permissions for notifications by long pressing the app's notifications.
First mobile platform to support the new Unicode 9 standard. Yeah, we don't have enough Emojis.
Android-N will support VR apps. It's impressive to hear that users installed more than 50million cardboard apps.
Android Wear 2.0
Users can now connect their phones directly to their headsets without a phone. Apps can also send data to be displayed on watch faces and users can customize them to opt in to what kind of data they want on their phones. Had writing recognition and smart reply are two more options that make it convenient to take actions directly from the watches. Apps can use Google Fit apis to grab data from Wear. It also supports standalone apps that can be installed directly on the watch without requiring an Android device.
Android developer tools
New version of Android Studio 2.2.
Builds are upto 10x times faster. Also faster emulators and installs during development.
They also announced a new Test Recording functionality. You can start using the app on the device and Google claims that Android studio will automatically write our Espresso tests. That is one powerful statement and I can't wait to see how that works. Most of the mobile engineers have traditionally been having a hard time writing tests because of the nature of the platform and also the time constraints with small teams and this hopefully helps improve and ease the testing process of mobile apps. On a related note if you haven't looked into the testing codelab, you would want to look into that. It would also teach developers a good way to implement the mvp pattern while building and testing Android apps.
It's a new powerful layout which is built as a library. It removes a lot or almost all of the nesting of layouts. So you could use it in your apps even with older sdks just like you use your compatibility libraries. This is also built along with a layout designer and the developers that I spoke to have been emphasizing that it is better to user the Layout Designer than editing the xml that we are traditionally used too. It does look promising from the live demos they have been doing during the IO.
Other miscellaneous notable announcements
- New Apk analyzer, Layout inspector and expanded code analysis for Android.
- If you are a C++ dev, you might be happy to hear that they now support CMake and NDK build.
- File based encryption.
It has a bunch of tools added to it and here are some useful ones for mobile products.
- Firebase Analytics which is free, unlimited and can be used for app analytics on both Android and iOS.
- GCM is now FCM (Firebase Cloud Messaging). Also free and unlimited.
- Firebase Crash Reporting to track bug reports and crashes.
- Firebase Remote Config to tune the apps to create experiments and test app/feature usages.
Android Instant Apps
Lets users use Android apps without installation and then let them install the app if the users are interested in using the app later. This is still in development and developers have to work with Google and modularize the app so that easily searchable, relevant and functional apps can be accessed from the mobile browser itself and let users take the action they are trying to do. Example might be making a purchase without installing the entire app. Google with pull down the modules that are required for it to function and let users user your app directly from the browser.
These is just a snapshot of what's new and a better place to learn about everything new will be to watch all the videos from Google I/O. Google has promised to recored and release them all online here.