Every year developers sit on the edge of their seats waiting for Google I/O to come along and wow us with the introduction of new features, services, and development tools. Last year Google focused on revolutions by introducing new form factors, such as Android Wear, and Material Design.
This year, Google took the necessary steps of focusing on enhancements to the Android operating system and providing developers with the tools they need to build better applications. On top of this, they introduced some interesting new tech to boot.
Let's take a few minutes to go over what was discussed at the conference, what's available right now, and what will be coming out over the next few months.
Arguably the largest focus this year at Google I/O was the Android platform. First and foremost is the announcement of the Android M developer preview, following their earlier precedent from Lollipop of releasing beta versions of the operating system for developers.
Google also announced that they are working with manufacturers to move towards a standard bidirectional USB-C device connector, granting new Android devices the ability to charge three to five times faster.
Continuing their recent focus on efficiency and power consumption, Google announced new APIs and features of the operating system meant to conserve device battery. In addition, Google introduced a plethora of improvements to the Play Store to help engage users and tools for developers to build apps through use of support libraries and new APIs.
Android M Developer Preview
The biggest piece of news coming from Google I/O this year was the announcement of a new version of the Android operating system, Android M, which will be released during Q3 of this year.
M is an enhancement to the current Lollipop operating system and focuses on polish and software quality. This newest iteration of Android includes thousands of bug fixes from Lollipop, new hardware APIs, and improved power management.
Google will be releasing multiple updates to the M preview with bug fixes and additional features, roughly once a month until the official release. The Android M developer preview is currently available for the Nexus 5, 6, 9, and Player.
First discussed during the Google I/O Keynote, Doze is a new feature of Android M that uses significant motion detection to determine if a device is being used. If it isn't, then the operating system exponentially backs off network activity to conserve battery while the device is idle.
While a device is in doze mode, it can still wake itself up to respond to alarms and high priority notifications. According to Google, idling two Nexus 9 tablets, one running Android Lollipop and the other running Android M, resulted in the M device battery lasting twice as long.
Android M APIs
With every Android update comes a new set of APIs developers can use to improve their apps. While this list of new APIs is much shorter this year, they are nonetheless impressive.
Many of the new APIs are focused on hardware, such as enhanced authentication using fingerprint scanners, improved stylus support for buttons and gestures, and a 4K display mode. Google has even introduced an API that deals with voice interactions, allowing applications to communicate with users through conversation.
Additional APIs available in Android M are focused on user engagement. One such API is direct sharing, which lets users share information about an app with specific targets, such as email or hangouts contacts.
Another API, App Links, lets devices automatically associate web URLs with a verified application, rather than having to go through an app selection dialog. Even more powerful is the Assist API. Using Assist, you will be able to implement contextually aware Google Now functionality directly into your app. Assist bases results on the content being displayed to the user. The goal is to provide answers and possible actions to the user as they're needed.
In addition to this, Google has added a feature known as Now on Tap. Now on Tap allows users to hold down the device's home button to generate Now cards based on in-app information.
For years, users have asked for a solution to the all-or-nothing approach of app permissions in Android. Starting with M, Google has introduced runtime permissions for applications.
Instead of requiring users to accept all permissions at install time, a dialog will prompt users to allow or deny a permission when it is required. If the user denies the permission, the requesting process will terminate and the application will need to fall back on a contingency.
To help users, Android has regrouped permissions into a set of easy to understand categories. It is important to note that these permission categories can be denied or allowed at any time through the device's settings screen.
Play Services 7.5
In addition to the M preview, Google has rolled out version 7.5 of Play Services. Luckily, this library includes a lot of new and interesting features. Last year, the JobScheduler API was released, allowing developers to batch operations when certain conditions were met by the system in order to save battery. The downside of the API is that it only ran on Lollipop. With this new version of Play Services, Google has introduced the GcmNetworkManager, which is essentially a backwards compatible JobScheduler that falls back to the JobScheduler when it is available.
Other useful additions include:
- Google Cloud Messages that can be subscribed to and filtered by topic.
- App Invites allow users to send an install link directly to their friends.
- Google Cast remote displays let users view different content on their device and another screen, such as a television.
- The Google Maps API can now run on Android Wear devices.
- Google improved Google Fit data and added dozens of newly supported workout exercises.
Design Support Library
Alongside the Play Services update, Google introduced the Design Support Library. Using this support library, developers are now able to implement various user interface components back to API 7, which were previously only available in Android Lollipop or through third-party libraries.
Some of the components available include floating action buttons, navigation drawer headers, and a new container called the CoordinatorLayout, which automatically moves views as other views change size or visibility.
Play Store Enhancements
During this year's Keynote, Google also announced a number of new features for the Play Store. One set of improvements revolves around providing statistics to help increase app download rates.
In the updated Google Play Developers Console, developers will now be able to view how many users have looked at their application in the store compared to how many have committed to installing. Developers will also be able to use Experiments, a service that allows them to try variants of their app store listing to see what changes may drive more downloads.
In addition to the application's store listing, developers will be able to create custom Google Play home pages for displaying all of their applications as well as some information about the developer or the company.
Another set of improvements is focused on what content is displayed when users search through the Play Store. The store can now be more aware of specific apps that match a user's search criteria and, when a search is vague, the user will be provided with a set of categories with apps that may meet their needs.
The last major change to the Play Store is a shift in how apps for children and families are found. Apps can now have a rating and a label that indicate whether the content is suitable for families. Users can also search for apps while filtering by specific age groups. Alongside traditional methods of finding apps, the Play Store has also introduced a character search feature, allowing parents to search for apps based on their children's favorite book, movie or cartoon characters.
Confirming the rumors that had been floating around before Google I/O, Google launched a new service called Android Pay. Using NFC, Android Pay allows users to perform transactions in over 700,000 retail locations that accept contactless payments.
Android Pay keeps security in the forefront by using a virtual account number for transactions, rather than sharing the user's actual card number. Likewise, users on Android M will have an additional layer of security available through the use of hardware fingerprint scanners.
Pay can also be integrated into applications, allowing users to quickly and easily purchase goods from their device. Android Pay will be supported on any device with NFC, back to Android KitKat.
Android Development Tools
Two years ago, Google introduced the first beta of Android Studio, and since then they have been continuously improving the IDE to make the lives of developers that much easier.
This year was no exception. Google released Android Studio 1.3 on the canary channel. The newest version includes great features, such as faster gradle build speeds, a new memory profiler, new support annotations, and the ability to bind data models with views through XML layout files.
Android Studio has also added one of the most requested development features, better native development support. Full editing and debugging support with error correction, code completion and debugging for C++ applications are now available for developers using the NDK.
While the tools for building applications have been improved, Google has also added a new service, following their acquisition of Appurify, called Cloud Test Lab. Using Cloud Test Lab, developers can upload their application and Google will run tests on the top 20 most popular Android devices. After completing the tests, Cloud Test Lab will deliver a free report, containing crash logs and a video of the running application.
2. Google Photos
One of the more exciting announcements at Google I/O was the introduction of Google Photos. Breaking away from Google+, Photos is available for iOS, Android, and the web. The service automatically categorizes images and creates collections based on timelines and albums, helping to help organize content.
Searching has been improved by giving users the ability to quickly browse by day, month, or year. Not only does Google Photos store images, it also allows users to perform basic photo editing, create movies, collages, and animations from their pictures. Best of all, Google will store your photos in high resolution for free with unlimited storage.
Since Cardboard was announced at Google I/O 2014, over one million viewers have been assembled. This year, Google has made some simple updates to their VR headset, such as adding a button that is usable with more devices and changing the dimensions to support any phone up to six inches.
Google has also updated the Unity SDK to support iOS devices and the company released a version of the viewer application to the Apple's App Store. While the Cardboard headset is interesting in itself, what Google has planned to do with it is what's really magical.
As a part of the Google in Education initiative, Google has introduced a new program called Expeditions. Through Expeditions, preassembled kits with Cardboard headsets, phones, and an instructor tablet will be sent to classrooms to allow children to experience simulated field trips.
Expeditions will consist of high definition, 360 degree videos of locations across the globe. While on these field trips, teachers will be able to discuss the scene the children are seeing and teach them in a more fun and interactive way.
To create the high quality, 360 degree videos that Expeditions and Cardboard will require, Google has created a system it dubs Jump. Jump consists of three parts. The first part is a physical array of sixteen cameras collaborated to film in all angles with multiple points of intersection. While Google will release the schematics for building a Jump rig from scratch, they have also partnered with GoPro to sell one that is preassembled.
The second part of the Jump system is known as the Assembler. Using powerful computers in the cloud, content from a Jump rig can be uploaded and processed in order to smooth images, balance colors, and create stereoscopic VR videos. When this service is first turned on this summer, it will only be available to select creators until the official launch later this year.
The third and final part of Jump is getting this content to users. This is done by adding support for VR videos on YouTube. This means that anyone with a Cardboard headset can begin accessing it this summer.
4. Internet of Things
With the acquisition of Nest last year, Google has started work on getting involved with the Internet of Things (IoT). As they pointed out during the keynote presentation, one of the biggest challenges facing the Internet of Things right now is the lack of uniform software and communication between devices.
To help overcome this challenge, they've introduced two new technologies, Brillo and Weave. Brillo is an underlying operating system for IoT devices, derived from Android and polished down to be lightweight while still supporting features such as bluetooth communication.
Weave is a common language, similar to JSON, for devices that need to communicate with each other, be it devices in the cloud, a phone, or IoT hardware. As of right now, information is sparse on both Brillo and Weave. Brillo, however, should be released in Q3 of 2015, and Weave will be available by Q4 of this year with some information coming throughout the year.
5. Project Jacquard
As other items in the world become more connected, it makes sense that the concept of wearables will shift to also include clothing. Project Jacquard revolves around the use of strong conductive fabrics that can withstand the strain of industrial looms. The goal of Project Jacquard is to allow innovators to design and create furniture and clothing that can react to touches and gestures to control other electronics embedded in the fabric.
6. Optimization for Lower End Devices
To improve the experience for users across the world, Google has adopted multiple techniques to make browsing from a mobile device more efficient. Chrome is currently using an optimized search page for fourteen countries to support slower connections, such as 2G.
When Chrome is optimized, web pages load four times faster and use 80% less data. Taking the lessons learned from these fourteen countries, Google plans to use optimized web pages across the globe for lower end devices as determined by their new Network Quality Estimator tool.
Other techniques used include displaying a stock thumbnail instead of download images for the user so that they are not using data unnecessarily, and allowing users to save web pages for offline use.
Recently YouTube has begun testing offline video support up to 48 hours in four countries so that videos can be viewed later without an active network connection. Likewise, Google Maps is in the process of allowing offline maps and step-by-step directions, which will be available later this year.
7. More Development Tools
Polymer has finally been officially released as version 1.0. This milestone release includes new features, such the ability to drop in common features like charts and toolbars, and a fast data-binding system.
For iOS developers, Google announced that they are adopting CocoaPods as the primary method to deliver their SDK to iOS developers.
This year, like most, Google I/O covered a lot of ground. From education with Cardboard to stepping into the Internet of Things arena, Google continues to demonstrate that they are a versatile company that is invested in the development community. We live in interesting times and they're only going to get more interesting.