Udacity's Developing Android Apps with Kotlin
Written by Nikos Vaggalis   
Tuesday, 21 May 2019

Kotlin is everywhere, well at least for Android. This new Udacity course shows how developing for the platform has radically changed.

Java people, things don't look that good. Since our epic journey through the Android Developer Nanodegree, things have changed a lot, dramatically a lot.Caveat, to be able to follow along this course you have to first know Kotlin, if not then it's best to start with a course purely on Kotlin such as the Udacity Kotlin BootCamp for Programmers, which is free. Alternatively get a copy of The Programmer's Guide To Kotlin, part of the I Programmer Library and newly available as a print replica Kindle Edition.

Saying that, it's not just the introduction of Kotlin that has changed the face of development but the whole revamping of the platform, the libraries and the way of building apps. Admittedly, developing for the platform has never been an easy task to undertake. Memory leaks, notorious Fragment handling and Asynchronous programming, transaction exceptions, orientation changes, Listeners everywhere, fragmentation of version releases, confusion regarding the correct versions of libraries etc had rendered the correct building apps for Android a difficult proposition. 

Google had to do something about it, and did. It endorsed Kotlin as its base language, which amongst other advantages over Java, is less verbose hence you can get away with writing less code in comparison to Java.

Kotlin also does a lot of things things inherently without the use of external libraries as it used to be, for example for data binding. But together with Kotlin there was also introduced the groundbreaking Jetpack ecosystem which simplified development immensely and corrected the mistakes of the past; for example in the way of handling fragments and the memory leaks they were introducing.

Now to the course itself. As with to the Nanodegree it begins with the usual basics: Android Studio and project setup, Activities and Layouts, OnClickListeners and finding views efficiently the Kotlin way.

While Lesson 1 was a quick, high-level overview of developing for the platform, Lesson 2 dives deep into the Layouts. Although, having completed the Nanodegree,I already had experience, I can say that I've learned a few things that I've previously missed.

App Navigation is where things get interesting because of the introduction of the Navigation component which makes designing the narrative between fragments a mere GUI drawing operation.Compare that to the way of the past: 

Then after an introduction to the classic Activity lifecycle, it goes on to showcase the new way of the Lifecycle library's Observables introduced with Jetpack.

The rest of the lessons are again a showcase of how Jetpack does things.Room for databases, LiveData, ViewModel, Work Manager for background processing, all that intermixed with Kotlin's constructs the likes of Coroutines.

The full syllabus is as follows:

Lesson 1 - Build your first apps
Lesson 2 - Layouts
Lesson 3 - App navigation
Lesson 4 - Activity & Fragment Lifecycle
Lesson 5 - App Architecture (UI Layer)
Lesson 6 - App Architecture (Persistence)
Lesson 7 - RecyclerView
Lesson 8 - Connect to the internet
Lesson 9 - Behind the scenes
Lesson 10- Designing for everyone

In summary, the course is well written, planned and structured while the instructors are top class and explain things concisely. But,at this point I want to note that "Developing Android Apps with Kotlin" contradicts the essence of the "Android Developer Nanodgree" due to its relation to Jetpack and the new way of doing things, which render the material taught in the Nanodegree obsolete. In fact it came to me as a shock, having just recently completed the Java-based Nanodegree, to find out how much things have changed; not the philosophy and basic theory which remain as is, but the components  which you are now supposed to use in building apps. It's like a new technology has totally superseded its predecessor, with a degree of churn and rate of change we have repeatedly commented on with new releases of Android studio.  Saying that, it's true that the Nanodegree has made an update in incorporating Room, but IMHO that isn't enough.

Not taking anything away from Udacity's great quality, but I think that the time has come to restructure the "Android Developer Nanodegree" around "Developing Android Apps with Kotlin". On top of that consider that new features such as Jetpack Compose will only be supported for Kotlin, not Java.

The saying goes, "the right tool for the right job", and the tool for developing for Android is definitely Kotlin. No hard feelings, it's just the way forward.


More Information

Developing Android Apps with Kotlin

Udacity Kotlin Bootcamp

Android Developer Nanodegree

Related Articles

Insider's Guide To Udacity Android Developer Nanodegree

Udacity Kotlin BootCamp for Programmers 

Android Is Kotlin First

Kotlin - New Language For Android

Android Development - Constant Churn 

Android Studio 3.4 - Trying Hard But No Bouquets

Android Studio 3.3 - Trying Harder?

Android Studio 3.2 Released - More Cruft Than Substance 


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



MongoDB Atlas Stream Processing Generally Available

The MongoDB developers have announced that MongoDB Atlas now has support for stream processing. The news was announced at MongoDB.Local NYC.

A Swarming Bee From Festo

The latest addition to the Festo Bionic Learning Network menagerie of bionic robots inspired by the natural world is a bee. Like the Bionic Ant from a decade ago, it has been designed n [ ... ]

More News


raspberry pi books



or email your comment to: comments@i-programmer.info





Last Updated ( Friday, 27 March 2020 )