Image: James Martin/CNET
Marshmallow? Macaroon? Macadamia Nut Cookie? Milky Way?
The possibilities of the name of the newest Android release are limitless but, for now, we'll just have to call it M.
At the 2015 I/O conference, Google gave us a peek at the developer preview of Android M. While there weren't as many in-your-face changes as we saw in Lollipop last year, there are some key updates to the Android developer and user experience.
Starting with the apps themselves, Google delivered some updates to the permissions process with Android M.
Previously, permissions had to be handled at the time of installation. Now, apps targeting M will install without asking permissions initially. However, users will get the permission prompt the first time a certain feature is accessed.
Apps targeting M will be able to ask for permission at any time, while legacy apps will require all permissions at install time, just as it was before. Users can deny any permissions upon request, or deny any permissions later on, even for legacy apps.
One of the most exciting updates is native fingerprint scanning support. Android M will accomplish this with two APIs - a fingerprint manager and a keyguard manager. One will act as an interaction tool while the other will focus more on authentication.
In addition to fingerprint scanning, Android M is updating voice interactions. Developers can now add specific prompts based on vocal input and keep going from there.
Data backup is essential, and Google has focused on this in the newest version of Android. By default, all data for applications targeting M will now be backed up. Of course, if you don't want across the board backups, you can opt in or out of portions of that feature using include or exclude tags.
Updates to Android often come with updates to Google Play Services as well. The latest Google Play Services release will include the GCM Network Manager, which is similar to the JobScheduler we saw in Lollipop. This will help developers better manage or limit network requests. For example, you can set them to prioritize for when the device is inactive or only on Wi-Fi.
Doze was a feature announced during the keynote that will help devices retain power. Untouched devices (as measured by an accelerometer) become "inactive," and thus will wait longer to wake up unless there are high priority alarms. There will also be an app standby feature that will allow apps to become dormant after they haven't been used for a long time.
As a developer, writing boilerplate code over and over can be a pain. Google is trying to solve this problem with Data Binding, which gives developers the ability to connect a data model to certain UI elements and automate things like listener creation, message sending, and property change notifications.
Last year, UI changes came full force with Android L and Material Design. Changes are more subtle with M, but they do include features such as swipe-to-dismiss and drag and drop, as well as some minor webview changes.
The Android Design Support Library also got its own set of updates, including:
A design update that is seemingly minor, but could save you a lot of work, is the changes made to icons in notifications. With Android M, you'll now be able to create notification icons with bitmaps.
App linking was another major announcement during the I/O keynote. Basically, app linking is a way of understanding the relationship between an app and a web domain owned by the same developer. The purpose is to help URLs open in the proper browser or app. It's pretty simple to accomplish by using a statements JSON on your web server and adding an auto verify in your manifest.
Other minor changes include a new stylus API including new gesture support for the stylus, and updates to the gestures around text selection. Text processing APIs will also allow developers to give custom responses to selected text in an API.
In addition to the updates to the platform itself, I/O also gave us quite a few new developer tools as well. The focus was primarily on design, development, and testing tools.
Android studio 1.3 was announced with both C and C++ support. Polymer 1.0 will make it easier to drop in certain standard feature in your Android app.
Once you've built your app, the Cloud Test Lab will provide automated testing. Developers can upload an app and Google will test it against the top 20 Android devices and return crash results and other statistics.
If you're wanting to get into Android development, or brush up on your skills, there is an Android nanodegree, a six month course, costing $200 a month, that will give you a full run-through on the Android development process.
You can download the latest version of Android Studio and start working on your Android M apps here.