Another year, another IO. Google made a slew of announcements, from their own foray into the assistant arena, to several curious devices and apps. Few of these have details or any API access for developers, so SitePoint will cover those at a later date. If you’re interested in reading more, I recommend Google’s official IO blog post.
SitePoint has already covered what developers can expect in Android N, and it has been updated to include new announcements.
But in this article I will focus on what you can work with right now and how to get started with it.
There’s a lot to cover, so time to dive into an Android-sized pool.
1. Android Studio 2.2
I love Android Studio and the forthcoming versions bring a lot of new features for improving an Android developers experience. Oh, and whilst you download all those new SDKs, notice that Android Studio finally lets them download in the background.
Instant run has been improving with recent Android Studio releases and version 2.2 claims a further 10x improvement. Emulators are also faster, with claims that emulators may now be faster than some real devices.
This feature is awesome. It enables you to run an app in debug mode and have Espresso tests written automatically for UI events to run locally or in a remote test lab.
I was hoping to record a demo of this working, but I could not see the menu option available in the preview I downloaded. This was disappointing and I’m not sure if I missed something.
Opening your apps to a world of possibilities, Android Studio now includes support for the CMake and NDK-Build tools and adds support for Java 8. This also means that coding in C++ will no longer require the NDK library, and will allow for far better mixing of C++ and Java code. This is all thanks to functionality lifted from the CLion IDE, also from JetBrains.
If you’re sticking with Gradle there is a new File -> Project Structure menu item (Enable it needs in the Experimental pane of the preferences) that will alert you to out of date dependencies, allow you to update and install them, and write to your Gradle files for you.
For those of you struggling with migrating your app permissions to the new M and N model, highlighting an old-style permission and selecting the Refactor -> Convert to Android System Permissions menu item should help you along.
Android Studio’s tools for interface design still lag behind those found in XCode, but version 2.2 improves things with better drag & drop layout (especially menus), a new blueprint mode for inspecting arrangements, constraint layouts for designing interfaces across multiple devices (like AutoLayout in iOS), and a new component inspector, that shows extra computed runtime details.
In a continuing effort to help you code better, version 2.2 adds new annotations for API version checking, thread handling and other uses. It adds a samples browser to help find examples of code for a particular symbol of method. It also offers an APK analyzer for tracking down memory issues and advice for reducing the file size of final compiled apps. You can find the analyzer under the Build -> Analyze APK menu item.
You can also see evidence of the instant run feature in the APK.
The new merged manifest view helps you see what other items get added to a manifest file from other sources. For example, in this demo Google Maps app you can see the entries added to the Manifest from play services and firebase:
2. Instant Apps
The announcement that has caused the most excitement/intrigue/confusion was that at some point in the future Android users will be able to open apps without installing them. Triggered by a user clicking a link with an associated app, the Play store will download the section of an app’s code required to undertake that action. This makes use of Android’s
Activity concept and will work across all versions of Android back to KitKat. Intriguing stuff, and I wonder how this will affect installs or respect data limits users may have set.
3. Play with ChromeOS
Are the potential hundreds of millions of Android devices in use not enough of a user base for you? Google claim (confirmed by IDC) to have sold over 2 million Chrome-based devices in the first quarter of 2016, beating Apple’s Mac sales figures, and now, the Play store is available on the platform.
To achieve this, Google are using a combination of Linux namespaces to isolate Android and ChromeOS, but share some essential resources and compositing. There’s no emulation or virtualization, but a full Android OS is available within ChromeOS.
Most features should work on ChromeOS without much work, but bear in mind that many won’t make sense, i.e. you don’t go running with a ChromeBook.
4. Virtual Reality Daydreams
Cardboard has been Google’s semi-successful foray into Virtual Reality (VR), thanks to its simplicity. But we all knew that more was needed to make VR with Android a bigger concern.
‘Daydream’ will be a part of Android N (Not to be confused with ‘daydream mode‘), supplemented by daydream-ready devices, which limits the user base, but Google claim that “hundreds of millions” of users should be able to use the platform. You are also advised to use a new headset and controller that is currently only a concept design, but Cardboard may also still be usable.
The Daydream home screen(s) are interesting, offering a futuristic, immersive interface for navigating content and media services. These include specialized apps from Netflix, Hulu, YouTube and (oddly) The New York Times.
I couldn’t test the development process for Daydream as for the time being you need a Nexus 6P. If you own one, then immerse yourself in the setup instructions here. SDKs are also available for Unity and iOS.
5. Android Wear 2.0
The next versions of Android’s wearable extension will ship later this year and will introduce many new features, here are some of my favorites:
- Watch faces are fully customizable and able to show data from any other application.
- Bizarrely, the OS will offer hand writing recognition and a keyboard, using the input method framework.
- On supported devices, a standalone mode, so apps can run on the wearable alone, without the need of a paired device.
- There are now official material design guidelines available for Android Wear.
6. Android Auto
Using your car as a companion to an Android device is becoming a more viable option. Whilst it didn’t receive many headline grabbing announcements, there were some small updates announced that may interest developers. If you haven’t tried developing for Android Auto yet, SitePoint recently published an article on getting started.
- Waze built in: There’s not much developers can do with this new set of mapping data, but if you are familiar (and working) with the Waze API, it’s another platform for your work.
- You don’t need a compatible car: After spending so much time working on making car dashboards compliment a phone, starting with updates later in the year, you won’t even need a car anymore. Instead you can switch a phone into ‘car mode’ and have a large and accessible interface (now voice operated) purely on a device.
7. Firebase Joins the Mothership
Google acquired Firebase in 2014, and it complements Google’s core business well, with both companies benefiting from each others experience and product lineup. With Facebook announcing the closure of Parse, Firebase has a perfect opportunity to fill the gap and Google seems keen to do so.
Most of the improvements involve better integration of the individual Firebase tools, and better integrating them into the rest of the Google eco-system.
These tools and improvements include app analytics, crash reporting, messaging frameworks, user growth tools and more. Best of all, these tools are enabled by default in Android Studio 2.2 with an easy to use plugin that will configure your app and code for you. Or you can drag snippets into your code.
Some of the most useful improvements with existing Google services are with the AdMob platform, the ability to export Firebase data into BigQuery for analysis and shifting billing into Google’s central cloud billing platform for much easier accounting. I hope this lays the foundation for even better connections between Firebase and Google in the future.
8. ‘N’ame It Yourself
Google claim that they are struggling to decide on a name for their N release and have opened the process to the public. I think people see this as lame publicity stunt, with most submissions likely ignored, but I’m sure someone will be plucked out of obscurity as the winner of a Google-approved name.
The Google Gauntlet
Phew! What an event. I was excited by a lot of the new feature announcements, but was more thrilled by the improved tooling to implement them, and the maturation and consolidation of the Android/Google ecosystem.
With WWDC less than a month away, Apple have a lot of pressure to deliver to developers and consumers alike, and I’m skeptical they will.