2017 year in a review: Android

Akshay Chordiya
ProAndroidDev
Published in
8 min readDec 31, 2017

--

2017 was an amazing year for Android. A lot of big announcements happened this year in Android from adding a new language support — Kotlin for happier Android Development to Neural network API and ARCore to build smart and interactive apps.

Let’s quickly recap all the notable announcements happened in 2017 for Android from Android Developer’s point of view

Photo by Brigitte Tohm on Unsplash

Kotlin — Fun new language

Kotlin — Android

Android Developers were tired of boilerplate and the challenges with Java language and couple of years back, few companies and developers were looking at choices of languages available to build Android apps; that’s when they came across Kotlin.

Since then the adoption of this beautiful language kept on increasing. Fast-forward to May 17' Google announced Kotlin as official language for Android.

We all now what happened later ;) Moar Kotlin!

Still haven’t learned Kotlin? There are lot of resources available. I personally recommend Antonio Leiva’s blog, videos on caster.io and several talks by Jake Wharton or Christina Lee and many others like one by me

Fun Fact: More than 17% of the projects in Android Studio 3.0 are now using Kotlin

Kotlin Adoption

Kotlin Style Guide

With Kotlin’s adoption rising like a forest fire 🔥. Google and Kotlin team at JetBrains released style guide containing set of rules to follow while building Android apps with Kotlin.

Android Architecture Components

Previously, Google never gave their opinion or recommended which Architecture to use to build Android apps.

But this year they finally decided to recommend what architecture to use with Architecture Components and Guidelines.

Architecture Guidelines

Architecture Guidelines is a set of guidelines defining the actual architecture and best practices to build robust, maintainable and testable Android apps.

Architecture Components

Architecture Components are bunch of libraries designed to help us build apps following the Architecture Guidelines. These libraries are modular so it’s not necessary to use all of them.

They were announced at Google I/O 17' and now they have become stable so now is the perfect time to try them out if you didn’t before.

I have written a series of articles explaining Architecture Components and a sample app to using them.

Blog post series:

Talk video:

Exploring Android Architecture Component

Disclaimer: This one is by me. You can check out one by Google if you want

Sample app:

Fun fact: More libraries (which will be part of Architecture Components) will be coming pretty soon.

Android Oreo — The sweetest Android

Android Oreo

This year we were gifted with Android Oreo which so many features. Oreo put an end background services continuously running in the background and eating memory.

What’s new?

  • Background Limit
  • Notification Channel
  • Auto-fill API
  • Picture-in-picture
  • Adaptive icons
  • Fonts and downloadable fonts
  • Auto-sizing TextView

Read more about API changes at:

Android Studio 3.0

Android Studio 3.0 was announced with many new features like Kotlin support, new suite of app monitoring tools which are more developer friendly and quickly help to fix the performance issues.

Key improvements:

  • More faster
  • Kotlin support
  • New app monitoring tools
  • APK Analyzer
  • Instant app support
  • Android things support
  • Adaptive icons, downloadable fonts and much more

You can read more about it at:

While Android 3.0 got stable, on the other hand Android 3.1 was released into canary channel bringing couple of more magic tricks✨ like new DEX compiler

Instant apps — Native apps without installation

Android Instant Apps are a new way to run Android apps without requiring installation. It’s a whole new way for users to consume Android apps.

The instant apps are triggered by an URL which opens app without an installation. This is done by breaking the app into features and having each feature mapped to URL and whenever Google Play receives a request for a particular URL it fetches the required code for that feature of the app and runs the app.

Anatomy of an Instant app

Instant app is composed of multiple features which are dependent on a base feature — which contains common logic for all the multiple features.

Developing Instant apps helps to make the project modular (if it wasn’t before) based upon features of the app and it also helps to cut down on APK size.

Great way to start building your Instant app:

Project Treble

Android version fragmentation is one of the biggest issue with the Android Ecosystem. It takes a lot of months for devices to receive the latest Android updates and most of devices don’t even receive updates.

With Project Treble, the Android OS architecture is re-designed to make it easier, faster and less costly for manufacturers to update devices to a new version of Android.

Now with Treble, the device manufacturers just need to update the Android OS framework to the latest one without worrying about the vendor implementation which caused the delayed updates.

Project Treble Diagram

It will take time for Project Treble to show it’s magic. I really hope it shines 🌟and solves the Android fragmentation problem to a greater extent.

Fun Fact: Google Pixel 2 comes with 3 years of promise for Android OS updates. It is the proof of what difference Project Treble will bring to Android Fragmentation.

Android Go — Powerful experience for entry-level devices

Android Oreo (Go edition)

Android Go is an initiative by Google to optimize the Android experience for billions of people coming online around the world.

It’s a customized version of Android designed to work great on an entry-level device.

Android Go starts with Android 8.1 aka Android Oreo (Go edition) and it comes with following configuration:

  • Memory optimizations: Improved memory usage across the platform to ensure that apps can run efficiently on devices with 1GB or less RAM.
  • Google Play: Google Play store will promote or give more visibility to apps optimized to provide a great experience for billions of people with the building for billions guidelines. That said other apps will be shown and can be installed from the Store.

Features

  • Android Go devices will have 2x more storage apps
  • They will ship with “Go edition” of Google apps
  • On an average apps will be 15% faster

Android Go was released in December at Solve for India and devices with Android Go configuration will be coming out in 2018:

ARCore

ARCore

This year Augmented reality (AR) comes to Android with ARCore. It is a platform for building augmented reality apps on Android.

It is designed to work on wide variety of Android devices running Android 7.1 (Nougat) or above. But as of now it supports Pixel and some of Samsung devices as it’s in the developer preview.

It supports 3 development environments:

  1. Java
  2. Unity
  3. Unreal

And probably few more in the pipeline. You can use any one of them to build apps using ARCore.

It is still in developer preview and a great time to play with it

Go ahead and start playing with AR

AR Stickers in Google Pixel 2 are of the example of ARCore on Android

Neural Net API

Android Neural Net API is an Android C API designed to perform on-device machine learning which run computational intensive operations.

It provides a base layer of abstraction for higher level machine learning frameworks like TensorFlow Lite, etc. It enables hardware-accelerated inference operations on supported devices to quickly execute previously trained machine learning models.

It will mainly help in:

  • Reducing the network cost and latency
  • Provide privacy

It is available on Android 8.1 (Oreo) and above.

Read more:

TensorFlow Lite

Machine Learning is on rise and TensorFlow is one of the top open-source framework for Machine Learning and Deep Learning on GitHub.

TensorFlow Lite is TensorFlow optimized for Mobile

It’s a lightweight solution for mobile and embedded devices. It enables on-device machine learning inference with low latency and a small binary size. It also supports hardware acceleration with the new Android Neural Networks API introduced in Android 8.1.

Features

  • Lightweight: It enables on-device machine learning models with a small binary size and fast initialization/startup
  • Cross-platform: It’s designed to run on Android and iOS both
  • Fast: It has several optimizing for mobile devices, including dramatically improved model loading times, and supporting hardware acceleration

Read more:

Summary

I feel 2017 was one of the most exciting years for Android with so many amazing announcements and Google making life of Android Developer easy using Kotlin and Architecture Components — Guidelines.

Making Android — Faster, Secure and Sweet with the release of Android Oreo and trying to solve the fragmentation problem using Project Treble and launching Android Go for entry-level devices.

Making the devices smarter and fun by bringing Machine Learning and Augmented Reality to Android with the help of the new Neural Net API and ARCore.

In a nutshell, I see a very bright future for Android, Kotlin and in turn for Android Developers and I feel many more exciting things to come forward in 2018.

PS: If I missed something then kindly let me know in the comments and I’ll update the post. Thanks!

--

--

Google Developer Expert @ Android | Android Engineer @ Clue | Instructor @Caster.IO