Google I/O 2017 Wrap-Up #2: Niceties
Bag of small delightful treats from I/O 2017! Stuff we’ve missed for a long time. Couple of goodbyes to some awesome libraries that carried us until now.
Java 8 Language Features
Starting with Android Studio 3.0 Preview 1, Studio will support a subset of Java 8 language features, yay! To be honest, Lambda expressions are the only features I care for now, but it is great that Studio started to support these features through the default toolchain (no Jack shenanigans). Also thank you Retrolambda for giving us Lambda goodness for the past couple of years.
Fonts! Fonts! Fonts!
Oh, we needed this one. Starting with Android O, Android will have native font support, finally! Happy retirement Calligraphy, thanks for everything. Android solves the Font issue in a smart way; starting with O apps will ask for fonts from a new “Font Provider” through “FontsContracts”. Font Provider will be responsible of loading fonts into the memory and delivering them to apps. Apps will not need to pack their fonts in them, APK and installation size savings, and single instance of a font will be shared among multiple apps to save some system memory. Font Provider also handles downloads from online resources, such as Google Fonts. Noice!
I worked on multiple keyboard apps in the past, so believe me when I say “People love their emojis, a lot!”. Yet it is not easy to keep emojis up to date in fragmented Android environment where OEMs update their versions whenever they feel like. EmojCompat support library tackles this one, standing on the shoulders of downloadable fonts mentioned above.
I don’t know what to say…I still can’t believe that we didn’t have these until 2017. I am so glad that we have proper TextViews starting with Android O.
//instead of this
TextView textView= (TextView) findViewById(R.id.text_view);
//this will be enough
TextView textView= findViewById(R.id.text_view);
Don’t get me wrong, this is cute and I am sure it was a big effort behind the curtains. I just don’t see the point where Butter Knife exists.
I am pretty sure animations are not any Android Developer’s favorite area to work on. Yet I’d love to have an intuitive animation framework to work with, since I believe well crafted animations are essential to create delightful mobile app experiences. Physics-based animation support is a step in the right direction. Up until now, time was pretty much the only starting condition for our animations. There was no easy way for us to give an animation initial velocity and expect it to diminish through time. Physics-based animations offer more natural-looking animations such as Fling and Spring animations. Please watch this great presentation.
Not bad huh? With these new tips and tricks in our bags, future of Android development looks just a bit brighter and enjoyable!
If you want to read more please check first part of this series, Google I/O 2017 Wrap-Up #1: Play Console.
Thanks for reading!