Android M promised to be beautifully polished and smooth. New developer tools help bring the same to the apps we all love.
Google I/O 2015 was pretty awesome if you're an Android fan. The new features coming to Google Now are an incredible display of machine learning and will tell us more about Skrillex than we ever wanted to know. The new Google Photos looks like a great (and mostly free) way to keep everything organized and available everywhere, and Chromebook users might just have a viable Lightroom alternative for organizing and cataloging photos in the works — we'll be trying to do just that. Android Pay shows how Google can evolve and adapt when a great idea doesn't get the traction they expected. And there were glorious beards.
But in 2015, even more than years past, Google is serious about developers making better apps.
Google's developer tools are an ever-evolving and changing set of utensils that allow the folks building our apps to tie into Google's services while making things we want to install and use every day. They're free, and while they are powerful, some of the finer points of great design have been tricky for devs to handle, and the IDE itself — that's the program that developers use to write the code and build their apps — can be clunky when you stray outside the "hello world" box and get into the nitty-gritty of coding. And testing apps has been a nightmare. Google has addressed these three issues in a big way.
The new Android Design Support Library
Having an app that looks like it belongs on the phone in a user's hand is important. We don't want everything to look exactly the same, but Material Design allows a third-party application to have the same look and feel as applications that are part of the system. Implementing these design guidelines, however, can be tricky and time spent on layouts and visuals is often an exercise in frustration — even for seasoned developers.
The new and improved Android Design Support Library brings a handful of new tools that developers can integrate into their applications without writing thousands of lines of code. The best part is that it works for devices running Android 2.1 or higher, which is just about all of them.
This new library will help developers import a navigation drawer view, floating labels for editing text, a floating action button, snackbar, tabs, and a motion and scroll framework to let everything flow smoothly. These design widgets and methods will cut down development time while making applications look and feel pretty darn wonderful.
Long live the FAB!
Android Studio C/C++ support
Most developers use what's called an IDE (Integrated Development Environment) To write code, hold the code in a sensible tree, and build it all when things are ready to run. You can just use notepad and command-line tools to build apps, but only if you hate yourself. Google's free IDE for Android application developers is called Android Studio, and it got a hefty update in version 1.3.
The new Gradle plugin is improved, offering faster build times, better crunching and crushing of PNG files and a better aapt tool (these are tools that build an application from the source code). A handful of new Java annotations have been added to help developers avoid bugs in those long lines of code, and memory profiling tools got a significant overhaul and a visual interface to let developers see just what is happening. All really cool stuff.
But the crowd favorite was the addition of C/C++ support directly in Android Studio. Google has collaborated with JetBrains to include their C/C++ IDE CLion directly into Android Studio at zero cost to developers. This enables code refactoring and analysis, navigation, usage finding, code completion and more. This also allows for close integration between Java code and C/C++ code, so things like refactoring one side also refactors the other.
If you're an app developer, you know how awesome this is. If you're not, it means that developers have a new toolbox that helps use the NDK (Native Development Kit) inside Android Studio, and will save literally hundreds of hours of development time for projects that use native code. This means happier developers and better apps all around.
The Cloud Test Lab
Your instant device testing closet, with automated reports and scaling support.
If you imagine Android app developers sitting at a huge desk covered with various makes and models of Android phones furiously testing their app, you're probably not far off the mark. Choice in hardware means that not every phone will act the same way when presented with a compiled application, and plenty of time is spent to optimize and debug apps across various devices. Too much time. So many devices.
Google has announced the Cloud Test Lab to help. Developers can use Google's online lab to test apps during development, both on virtual devices as well as physical devices for real debugging and performance monitoring. Developers can run all their tests at the same time across all devices without having a closet full of phones in their office. The lab also features robot app crawlers that can perform testing without any manually written testing procedures, and this cuts down development time even further.
Besides the time saved during development, this breaks through the cost barrier smaller teams and independent developers may face when trying to test the next great app they have been working on.
Better tools for better apps
The folks writing Android applications know how important these tools are, and that they have been a long time coming. Seriously. When Jamal, Tor and Xavier (they're the Google rock stars who presented all the new dev tools) were going through all the new dev tools, there were cheers and people standing in the crowd. It was awesome.
For the rest of us, know that these tools equate to better apps that are easier to build, and cost less to develop. Android M is how Google is going to put the final polish on the operating system, and the new Android Studio, Design Library and Cloud Test Lab will allow developers to put the same polish on the great apps we all want — and deserve.