Android Development In 2019 - A Year In Review

Android Development In 2019 - A Year In Review

You are reading "Goobar," an Android development newsletter exploring the latest tools, tips, and trends from the world of Android. We're dedicated to helping you learn and grow in your career as an Android developer, so if you like what you see, be sure to subscribe.

Welcome devs ??

As we enter into this final week of the decade, I wanted to look back on the year and reflect on Android in 2019. What were the major updates? What were the trends? How are developers building Android apps, and how have their tools evolved?

What 2019 Android development tools, updates, and trends were you most interested in?

Let’s explore some of these topics and set the stage for the current state of Android development as we welcome 2020 and a new year as Android developers.


Native Android Development

No alt text provided for this image

The world of Android development continues to evolve as it serves over 2.5 billion devices worldwide. This evolution certainly keeps developers on our toes as we adapt and stay current on updates to Android versions, tools, libraries, patterns and more.

In 2019 we saw a number of exciting updates in the world of Android development that promise to have a lasting impact on the Android community going forward in 2020.  


Android 10

This year, we saw the official release of Android 10. As always, this new version of Android adds new features, apis, and security improvements. A few of the more notable updates in this release include:

  • Full support for gesture navigation
  • Dark theme
  • 5G support
  • Improved location permissions control
  • Enhanced biometric support including face authentication

While new features and apis were added in Android 10, with this OS release we also lost something that many developers are sad to see go: dessert names for each Android release. Personally, I will miss the fun and surprise that came along with the dessert names, but think it’s probably much less confusing and inclusive for the global audience that is so important to the Android ecosystem.

Will you miss the Android dessert names going forward?


AndroidX

As more and more developers migrate to AndroidX, the teams at Google have been hard at work improving, adding, and creating new libraries and tools for us.

According the the AndroidX release notes, there were nearly 400 public AndroidX releases in 2019 across the various stability channels. A few of the bigger updates in the stable channel include:

As I discussed in a previous article, all of these updates do pose a challenge for developers; both in staying aware of changes, and in deciding whether or not to adopt updates from channels other than stable.

Personally, I’ve had good luck sticking to beta and stable channels, and am happy to see the evolution of AndroidX; even if it means sometimes taking small steps backwards in order to improve the long term experience for developers.

What 2019 AndroidX releases brought along the most interesting changes?


Android Studio

As most Android developers (at least that I know) seem to use Android Studio, improvements to this primary tool are generally welcome.

Once again, the teams at Google were hard at work this year, and while there may have been some missteps along the way, Android Studio is poised for some exciting updates heading into 2020.

Android Studio saw three major stable releases in 2019:

  • Android Studio 3.3 - profiler updates, navigation editor, updated new project wizard, etc...
  • Android Studio 3.4 - new resource manager, R8 enabled by default, etc...
  • Android Studio 3.5 - major Project Marble performance and feature updates including “apply changes”, updated app deployment flow, ChromeOS support, etc…

In my personal experience, I saw many performance issues with the Android Studio 3.3 release, and found it unusable. Thankfully, moving to the 3.4 Beta at the time fixed my issues, and I’ve found the 3.5 update to be really nice. I very much enjoy the updates to app deployment; particularly the device selection dropdown that is present the the menu toolbar.

As with AndroidX artifacts, Android Studio has regular non-stable updates as well. This past fall, during Android Dev Summit, the Android Studio team announced the first preview of Android Studio 4.0 which promises to bring bing changes along with it.

Android Studio 4.0 includes several exciting features for developers:

Likely the most exciting feature to accompany Android Studio 4.0 is support for Jetpack Compose which is such a big topic that it warrants its own section.

What Android Studio updates did you find most helpful in 2019?


Jetpack Compose

In perhaps the largest demonstration of Google’s recent “Kotlin First” approach to Android, Jetpack Compose was unveiled during this year’s Android Dev Summit.  

What is Jetpack Compose you might ask?

Jetpack Compose is Google’s new UI toolkit for Android. Compose is completely unbundled from the existing framework, and written in Kotlin; relying heavily on Kotlin features to provide a powerful DSL for building reactive Android UI. If you’re familiar with building declarative UI in frameworks such as Flutter or SwiftUI, then Compose will look very familiar to you. It enables developers to programmatically build their UI, and quickly test/evaluate the results using composable previews in Android Studio 4.0.

Jetpack Compose has, understandably, creating a large buzz in the Android developer community as it represents a substantial change to how UI is created. With Jetpack Compose, gone may be the days of using XML to define our layouts.

In my extremely informal polling of the Android community across social media, Compose was certainly the most popular response: Twitter, LinkedIn.

If you haven’t explored what Jetpack Compose brings to the table, you can try your hand with this short tutorial which introduces you to the basics. To do so, you’ll need to install the Android Studio 4.0 preview which includes IDE support for building UI with Jetpack Compose.

What do you think of Jetpack Compose?


Learn Like Never Before

There’s never been more resources available to learn Android development.  

2019 saw ~20 Droidcon conferences, a variety of other large conference series, and a handful of independent conferences, all over the world. With many of these events, the talks are recorded and available, free of charge.

Android Dev Summit brought with it a slew of new Android codelabs covering a variety of topics including:

Google and Udacity also worked together to launch a new free course Advanced Android with Kotlin. This course teaches advanced topics like app notifications, authentication, and testing while leveraging Kotlin to build quality Android apps.

If you’re looking for even more learning content out there, there’s a variety of Android material available for free on YouTube; both from Google and non-Googler’s alike:

What’s your favorite way to stay up to date with Android?


The Kotlin Programming Language

No alt text provided for this image

I feel I can hardly discuss the evolution of Android without at least mentioning how Kotlin has evolved over that time period as well. While Kotlin is not strictly limited to Android in any way, Kotlin is a major player in the current Android ecosystem.


Versions

2019 saw five releases of Kotlin bringing with them a variety of tooling and feature updates:

What have these updates meant to the world of Android?

Well, Kotlin coroutines went stable at the end of 2018, so in 2019, many AndroidX libraries and third-party libraries have added support for coroutines.

Also built on top of coroutines, has been Flow. Flow brings cold, asynchronous streams of data. With Channels and Flows in Kotlin, developers have begun exploring, and debating, the future merits of RxJava within their codebases, and whether or not RxJava can be removed in favor of the more idiomatic Kotlin approach. Like most things, the answer to this likely depends on your situation.

Support for Kotlin DSL build scripts has continued to evolve, and as of Android Studio 4.0, these build scripts are officially supported by Android Studio. Using the Kotlin DSL for your build scripts provides the strong static typing, and familiar syntax of Kotlin to the configuration of your Gradle builds.


Kotlin Multiplatform

Particularly with the 1.3.60 release of Kotlin, improvements have been made for multiplatform Kotlin projects. Multiplatform Kotlin is an intriguing proposition for some Android developers that want to share business logic between multiple application targets. While it’s been possible to ship mobile apps using Kotlin Multiplatform for at least a year (as with the Droidcon NYC app), the continued improvement to tooling is making this much easier. Support for multi-threaded coroutines should help move the third-party Kotlin Multiplatform ecosystem forward, and JetBrains has even announced work on an Android Studio plugin enabling developers to build and debug iOS applications using Android Studio. With this support from Jetbrains, one of the biggest challenges in adopting a Kotlin Multiplatform approach may simply be convincing your iOS team to give it a shot.


KotlinConf

KotlinConf 2019 brought us over 50 recorded sessions chock-full of Kotlin updates and information. These updates included announcements, such as with the Kotlin Multiplatform built Space application, feature updates, and deep dives. A few sessions that stick out to me include:

A couple of themes that stick out to me as I look through the sessions from KotlinConf include Kotlin Multiplatform, and Kotlin beyond Android. There are quite a few sessions related to building multiplatform projects with Kotlin; with a major focus on mobile with iOS and Android. On the flip side, there are also a number of sessions focused on Kotlin outside of Android:

It seems there’s a definite push from JetBrains and the Kotlin community to highlight the use cases of Kotlin beyond just Android. As a fan of Kotlin, this is something I’m very happy to see, and am looking forward to further exploring what I can build with Kotlin.

Are you excited about the direction of Kotlin heading into 2020? What features or use cases are you most interested in?


Flutter Development

No alt text provided for this image

I can’t call myself a Flutter developer, having hardly scratched the surface of building apps with Flutter. However, even as a native Android developer, I didn’t feel I could not at least mention Flutter when looking back at the state of Android development in 2019.

At least from my experience and perspective, Flutter has continued to increase in popularity at a very fast pace. Google continues to invest in it, and I seem to see more and more people starting to refer to themselves explicitly as Flutter developers. And looking from the outside in, I can understand the excitement.

Flutter is a pretty powerful tool for building applications on both mobile platforms. I think this approach is particularly appealing as a solo dev or small team, and as a solution for a quick on-off app.

The rate at which the overall Flutter experience is evolving seems to be one of its biggest selling points.  

The Dart programming language, with which Flutter apps are built, has seen consistent releases throughout the entire year; sometimes at the rate of weekly and daily updates. Flutter itself has seen 5 major stable releases this year, the most recent being 1.12.13.

The number of Google Developer Experts for Flutter has also continued to increase which is a great step towards evangelizing the technology, and helping developers learn and stay up to date with the rapidly evolving Flutter framework. One nice way to follow these GDEs is to follow this list on Twitter which is regularly updated as new GDEs are announced.

Again, from the outside looking in, one of the most interesting additions to Flutter this year has been the added support for additional platforms beyond mobile. Flutter for Web is now available in the Beta channel, while MacOS support has been added to the Alpha channel.

Another positive sign for the Flutter community was the advent of the first Flutter-specific conference from Google: Flutter Interact. You can find all the session recordings on YouTube

I’m sure those more active in the Flutter community could provide a much better recap on Flutter’s 2019, but even the few things I’ve mentioned here are enough for me to want to really dedicate more time exploring the current state of Flutter in 2020. Personally, I’d like to think I’m not too overly attached to native Android development, and instead am flexible enough to use the best tool for a given job. With that mindset, Flutter is definitely on my “to learn” list for the coming year.

Have you tried Flutter? Where do you think Flutter is heading in 2020?



What in the world of Android development are you interested in right now? Join in the conversation in the comments below.

See you next time devs ??

Ammaarah Martinus

Public Policy, Innovation, behavioural insights, implementation for impact

5 年
Syed Abdul Rahman

Devops | Cloud | Software Development | AWS Certified Solutions Architect | Docker | NGINX | Maven | Sonarqube | Jenkins | Terraform | Grafana | Prometheus

5 年

Great article Nate Ebel , really liked the way you mentioned everything keeping it short yet precise covering everything. I do think that Flutter and Kotlin are going to be key players in the upcoming decade

Amit Aryavir

Mobile And Web Developer.

5 年

Wonderful

要查看或添加评论,请登录

Nate Ebel的更多文章

  • What's new with goobar?

    What's new with goobar?

    Hey folks ?? It’s been a while since I’ve posted anything to the newsletter here. As I’m sure many people can relate…

  • Kotlin vs Java for Android Development

    Kotlin vs Java for Android Development

    Kotlin vs Java? Which language is best for Android development in 2021? New Android developers want to know which…

    6 条评论
  • Non-Coding Tips for Coding Interview Assignments

    Non-Coding Tips for Coding Interview Assignments

    Unsurprisingly, when discussing take-home assignments for coding interviews, much of the focus is put on code. Can you…

    1 条评论
  • Understanding and Optimizing Your Android Gradle Build

    Understanding and Optimizing Your Android Gradle Build

    You are reading "goobar," a software development newsletter exploring the latest tools, tips, and trends from the world…

    2 条评论
  • 2020 Is Not Remote Work

    2020 Is Not Remote Work

    You are reading "Goobar," an Android development newsletter exploring the latest tools, tips, and trends from the world…

    4 条评论
  • Android Development in 2020

    Android Development in 2020

    You are reading "Goobar," an Android development newsletter exploring the latest tools, tips, and trends from the world…

    4 条评论
  • We Have To Be Better

    We Have To Be Better

    This Monday, instead of checking in on what you all are working on, I'd like to encourage some of us to take more…

    2 条评论
  • What’s New In Android? - February 2020

    What’s New In Android? - February 2020

    You are reading "Goobar," an Android development newsletter exploring the latest tools, tips, and trends from the world…

    6 条评论
  • Have you tried Kotlin Multiplatform?

    Have you tried Kotlin Multiplatform?

    You are reading "Goobar," an Android development newsletter exploring the latest tools, tips, and trends from the world…

    32 条评论
  • Have You Tried Server Side Kotlin?

    Have You Tried Server Side Kotlin?

    You are reading "Goobar," an Android development newsletter exploring the latest tools, tips, and trends from the world…

    10 条评论

社区洞察

其他会员也浏览了