Two of our Android devs, Joel and Jeremy trekked to San Francisco for Google I/O. Here are some observations from developers (rather than journos) and pics that you might not have seen about in the blogs yet:
Google Now on Tap is pretty impressive that promises to add a lot of exciting functionalities to your app. Google now takes care of the machine learning logic for you so that your app can provide a rich user experience.
Material is one year old and was celebrated by creating an in depth set of design guidelines and expanding it even more. With the new library called Android Design Library now supports Material components down to 2.1. A lot of useful design guidelines will be available such as Device screen guides, iOS to Android design.
Battery enhancement is a also big topic this year with Google introduced a new mode called Doze. Exciting improvements from project Volta now help reducing battery usage when device’s screen is off up to 2 times compared to before. They also provide backward compatibility to these enhancements with the new GCMNetworkManager.
New GCM 3.0 with new but not so-new features such as topic subscription (copy Amazon :p) and priorities.
New app permissions model, essentially requesting permissions when they’re required. Seems to be a move more towards the iOS way of doing things where they have nothing on install, but when you start the app you’ll be prompted.
iOS support for all the things (well, haven’t heard anything about Wear yet!)
Google Photos update is impressive and available now (unlimited storage for all! yay!)
Play Store developer pages seems like it might be a good way for Outware to promote its portfolio and get some credit for the work we do for others
Project Tango – we got some hands-on time with Project Tango, and when asked whether we have one we asked when they’ll be available in Australia – this was met with blank “nfi” stares. But Jeremy had fun visualising what a Camaro would look like in his garage. I’ve got some videos of this, but they’re too big to upload now.
Data binding demo – This stuff was really cool and the session went into it in a lot more depth than mentioned in the “What’s new in Android” talk. The documentation in the developer section has the best description of the functionality it provides. Compile-time generation data-mapping, observable view models, null-safety, etc. It’s all good.
In particular, the fact that you don’t have to worry if a particular view is present or not in the layout that the device is using in order to map data to it. E.g. your tablet layout probably contains more views than your phone layout, but when you map to them in code you don’t need to worry about doing an ‘if tablet’ check. Just map data to the view using the binding classes and if it doesn’t exist (i.e. you’re on a phone), no dramas.
Fingerprint auth API – Fingerprint auth was pretty much what you would expect. It’s something to start building into apps now so that when hardware comes along that actually includes fingerprint scanners we’ll be ready to go. For the demo they were using a modified Nexus 5 with a fingerprint scanner strapped on. The API was really simple and easy to use – just startActivityForResult and wait for SUCCESS.
Memory performance – Most of the stuff mentioned in this Colt McAnlis talk would assume we already do at Outware; e.g. don’t allocate anything in onDraw of custom views, re-use bitmaps to avoid heap fragmentation, but something new was the ArrayMap feature – a data structure designed for Android to be more memory efficient than HashMap; the tradeoff being it’s slightly less efficient when performing lookups/insertions/deletions. The recommendation is to use ArrayMap instead of HashMap when the number of items is less than 1000 (which is most of the time). In these scenarios the extra lookup time is negligible compared to the reduced memory footprint.