Android M adventure

Android added support for Fingerprint and Payment APIs

At the I/O 2015 conference, Google announced Android M, gave developers access to a preview release to put on their Android Nexus devices, and released Android Studio 1.3, thereby allowing development for Android M.

One of the highlights of Android M is the support for Fingerprint and Payment APIs; watch Maya Ben Ari, a product manager on the Android platform, explaining the Fingerprint and Payment features in all detail. With the cat out of the bag, I can now tell about my very own adventure, involving the all new Fingerprint-API.

About two months ago, the QuickBooks Mobile team was contacted, to partner with Google to test a new Android security feature, to be unveiled at Google I/O. Google required participating teams to be physically present at their Mountain View campus, simply because access to M-devices, equipped with fingerprint sensors was restricted and an emulator wasn’t ready yet.

Since the Android version of QuickBooks Mobile is developed outside of California and developers were extremely busy, putting final touches on an upcoming release, I got the chance to step in. Our team provided me quickly full access to the GIT source code repository and helpful tips on how to build this enormous mobile app.

Being a total n00b, who never before looked at a single line of QuickBooks’ source code, the task looked overwhelming and the learning curve incredibly steep. However, the probably single most valuable lesson I have learned in my career, is to not get bogged down by fear, instead take calculated risks and never give up, no matter how little time is left.

fingerprint an impression or mark made on a surface by a person’s fingertip, especially as used for identifying individuals from the unique pattern of whorls and lines_

After two days or so, I had figured how to build and deploy my own version of QuickBooks Mobile on my Android phone. I could access my own account on a production server, as well as a test account, somewhere on a test server. Just in time to travel to Google’s Mountain View campus, to get my hands on a new Android M-phones, blessed with a fingerprint sensor.

Google had invited about ten teams from various companies, to work on the new hardware for three days. While I was not the only single developer team, some teams were four or five people strong. Moreover, we had a hackathon scheduled at Intuit, which I needed to participate in as a mentor, requiring me to leave a day early.

To use the new Android-M hardware, apps needed to be built on the all new Andoid-M platform SDK, which was different and also missing some deprecated, but crucial classes, used all over QuickBooks. I left the Google campus after day one, having had a tasty lunch, but without being able to even compile the original QuickBooks code and not having added a single line of the security features I came here for.

After a short break for dinner and a beer, I coded almost throughout the night, without access to the hardware, just to make the original source code compile on the new platform SDK. All teams retuned the next morning and at 10:00 AM we exchanged drivers licenses for Android-M phones again. Bingo, I already knew that the source code would compile, but it really worked, ran flawlessly on the Andoid-M phones. Since I only had the rest of the day, I skipped the famous Google lunch and implement a fingerprint-unlock feature instead. I finished coding about 20 minutes before the end of day two, just enough time to take a few screen captures, before returning the hardware.

Since it will be a while until we will see widespread fingerprint support on Android, take a look at my short video about how QuickBooks could make use of it.

Admittedly, I got lucky, as I have been many times before. This could have ended very differently, no doubt. But those are the moments software developers live for.