To say that the tech world revolves around APIs, application programming interfaces, would be no stretch at all. These handy bits of code allow brand new functions and integration between systems, as well as the use of features from one system or language into another. Without APIs, your favorite games, productivity apps and perhaps even the OS of the device you're reading this on would not exist. Coincidentally, the past few weeks have been rife with news about APIs; new APIs coming out, companies fighting it out in court over APIs and even new API functions making a richer learning experience for students. It's in this climate that Google has chosen to reveal their spiffy, if not outright revolutionary, Awareness API on stage at Google I/O 2016.
The API is deceptively simple, for all of the possibilities it introduces. At its core, the API has the ability to check on seven different context clues; time, location, type of place a user is in, physical activity a user may be engaging in, nearby beacons, the weather and the presence of headphones. These factors may seem simple, but combining them allows for an incredible variety of contextual conditions that developers can tailor an activity in their app around. The way that the API is built and the extra services tied to those context checks make this process much easier for developers. The API can enable an app to constantly listen for certain context clues, even when the app itself isn't running, via the Fence API. The Snapshot API, on the other hand, can be integrated into an app to have it request these context clues at any time the developer wishes.
The API is made to be easy to implement and highly advanced. Developers only have to add in the API once, then it can act all across the app. The API also processes raw data, rather than working through a filter. This is conducive to an incredible level of accuracy; with most devices, the API can tell the difference between a user walking and running with ease. As icing on the cake, the API automatically manages its impact on system resources and battery life, taking that burden off of the developer's shoulders.