Google has recently made available the source code of the 2014 version of the Google I/O app. The primary goal of this is to provide a practical example of best practices for Android app design and development, including essential features to most Android apps, and a customizable template for apps with similar features.
The Google I/O app was designed to help navigating the Google I/O conference, both for people attending in-person or remotely and, besides exploring the full conference agenda, allows to build a personalized schedule.
Bruno Oliveira, Tech Lead of the I/O app project, says the app shows how to implement a wide variety of features that are useful for most Android apps, such as:
- Fragments and Loaders.
- Services.
- Broadcast Receivers.
- Alarms and notifications.
- SQLite databases.
- Content Providers.
- Action Bar and the Navigation Drawer.
In addition to this, the I/O app source code shows how to integrate with several Google products and services, including Google Drive API to Google Cloud Messaging. The app provides an example of new technologies that Google presented at the 2014 Google I/O conference, such as the material design approach, the Android L Preview APIs and Android Wear.
The app is meant to be useful to the developer community as a learning tool, a source of reusable snippets, and a template for similar apps. Indeed, says Oliveira, in an effort to simplify the process of reusing and customizing the source code to build apps for other conferences, the 2014 Google I/O app uses a sync adapter based on plain JSON files that can be hosted on any web server and does not require a server with a specific API.
The source code also shows how user data can be stored in the Application Data folder of the user's own Google Drive account and kept in sync across multiple devices, and how to use Google Cloud Messaging to trigger syncs when necessary to ensure the data is always fresh.
In the coming weeks, Google will post a few technical articles with more detailed information about the source code to help bring some insight into the app development process.