|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
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.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Friday, 27 March 2020 )|