The Android ecosystem –as most of us think of it– is built on more than just an operating system and a marketplace for independent apps. It's largely shaped by dozens of services that have been built by Google, allowing developers to add rich features to their apps without building out expensive infrastructures. The Google Play services package is the core element in this equation, and it's getting a pretty major update to version 7.0 over the next couple of weeks. Google just announced that it's about to give developers access to important new features including a Places API to get surrounding businesses and landmarks, and a new Nearby Connections API to make it easier for phones and tablets to act as a second screen to your Android TV. There are also major improvements to Google Fit, Mobile Ads and Analytics, App Indexing, and Location services.
Google has an immense database of businesses and landmarks built up from more than a decade of developing the world's most heavily used online mapping service. Now 3rd-party Android apps are about to have some access to part of that data. The new Places API allows developers to query Google for nearby establishments and get back a list of names, addresses, phone numbers, urls, and more.
There is a convenient UI widget that provides a map and easy picker interface, or developers can also take control and build out their own interface using raw data. And since the world keeps changing, the API also accepts user submissions for new places.
We've seen this data put to good use in some of Google's own apps like Maps and the check-in interface on Google+, but Android and iOS developers are going to be able to integrate it into their own apps.
One of the hot topics among Android users has to do with Location Services and how aggressively it can consume battery life on phones. Some apps require very precise coordinates, but a lot of users have taken to reducing or completely disabling location access. Google is adding a simple mechanism for developers to determine if the current location settings are sufficient for their needs. If the app needs more accuracy, users can be prompted with a single dialog to change their settings, all without leaving the app.
As this feature becomes a little more prevalent, users will be able to keep a tighter leash on location services without regularly jumping over to the Settings app to continually change configurations. It's not clear if there is any way to automatically revert to the previous settings once the running application has finished with its work or shut down, but there may be room for other 3rd-party applications to help with this.
Nearby Connections API
Continuing the trend of geographically relevant APIs, Google is working to make it easier to find things in your living room, as well. This time, the focus is on connecting nearby devices together and allowing them to interact in creative ways. The Nearby Connections API is described as a tool to allow Android TV to take advantage of devices in the vicinity to create a second screen experience for users. This can allow games and apps to treat a phone or tablet as an extra controller, possibly even sharing secret information to individual players or expanding the types of control layouts. Beach Buggy Racing developer Vector Unit was invited to create a demonstration, check it out in the video below.
There are countless cool ways developers might put this type of capability to good use. The obvious example is a projected controller like the one shown in the video; but we could also see some very creative alternatives like custom interfaces for multiplayer RPGs, or even something like a full-scale control panel like you always imagined for driving a mech or flying a plane. It's not clear if the Nearby Connections API will be limited to Android TV or if it could be used between a phone and a tablet, for example.
New Data for Google Fit
Once you're done playing games in the living room, it's time to get up for some exercise. Google Fit now supports two new data types for tracking body fat percentage and sleep data.
The Google Fit API has also been restructured into a set of separate APIs, significantly cutting down on memory usage and overhead. It sounds like the changes to code are pretty trivial, so developers should check out the documentation for changes when the updated SDK is released in a couple of weeks.
Mobile Ads and Analytics For Games
While exciting new features go a long way to making better experiences, and that can drive more sales for paid apps and games, ad-supported games need some love, too. Google dedicated an entire blog post to the new advertising-related features rolling out with Play services 7.0. With the new release, games implementing the Mobile Ads SDK will automatically get Google Analytics integration, including tracking for the number of users and sessions, session duration, operating systems, device models, geography, and screens. There are also several optimizations to reduce battery usage and latency.
More importantly, Google is about to introduce a new Player Analytics interface for the Developer Console to help developers better understand and engage their audience. The new system will enable better tracking and categorization of players based on progression, spending habits, and other metrics. From this data, it will be easier to fine-tune the use of IAPs and advertisements to get the most value out of a play session.
Games integrating the AdMob platform will soon have the ability to display native ads right in the gaming interface, rather than just an awkward and obnoxious banner at the top or bottom. Further, developers will have the ability to incorporate ads for their own In-App Purchases when players with a good history of spending on IAPs are in the app.
Finally, Google is introducing an Audience Builder tool that enables developers to categorize players based on how they approach a game. This can be used for things like separating casual players from hardcore games, which may be used to customize advertising or in-app purchases.
Along with the more significant changes above, Google has cleaned up some little things in other places, as well. App Indexing has been simplified to make deep-linking even easier. The flows through view/viewEnd and action/end have been restructured into a single start/end flow.
The GoogleApiClient introduced in Play services 4.2 has also gained a little convenience by automatically retrieving an OAuth 2.0 token, so it's even easier to acquire server auth codes for Google APIs. Again, check the documentation when the new SDK update rolls out.
Of course, there are probably many of other changes in this update that haven't been discussed yet. Google has only posted about the new APIs that developers will have to work with, but none of the user-facing changes or improvements to performance and bugs.
The Play services 7.0 apk has already started rolling out to users, but the SDK will not be updated for developers until Play services has gone into a wide release for all users. We've already seen a few device-specific variants of the apk and we're checking them out now.
We'll have a post ready when we've got a good idea of what else is new for end-users. Update: Here's our download post.