|JetPack And Android Studio 3.2 - Not Much New|
|Written by Mike James|
|Wednesday, 09 May 2018|
Google I/O used to be an exciting meet up where really new and startling things were announced. Now it's past its best and Googler's have to work hard to package the dull into something that looks exciting. So it is with JetPack and Android Studio 3.2 Canary.
Technology matures and development slows down. Currently you could argue that the need to keep Android looking younger than its years is causing unnecessary strain on the development environment because of the need to change things for change's sake. The huge change in direction of Android Studio is away from a new compiler - Jack - back to fixing up the old one, and then of course there is Kotlin. The redesign of the layout editor in Android Studio 3.1 is still flawed and bug reports are ignored for months, if they ever gain any attention.
Should the average Android Studio user be annoyed?
Yes, but at the moment they seem to not realize that things could be better.
The big news for the Android developer is the new Jetpack library which is:
the next generation of components, tools and architectural guidance to accelerate your Android app development.
All I can say is that the great bulk of Jetpack isn't new at all and it isn't mainstream Android. Jetpack consists of a set of unbundled libraries that you can take or leave. This probably means that the majority of programmers will choose to leave them. The good news is that it runs on a range of Android versions.
Packaged into the Jetpack marketing exercise are old favourites such as AppCompat, Databinding, Lifecyles and LiveData, Room and ViewModel. Even the news ones have been around in alpha for any one interested. There is no attempt to cover up that Jetpack isn't 100% new, but that still doesn't stop it from being presented as an exciting new initiative.
The new components cover a range of new features. WorkManager is a simplification on the standard way of getting tasks to run even if the app ends. It provides an interface to JobScheduler, Firebase JobDispatcher or AlarmManager. Notice it is not about general multi-threading of apps, something that would be a very welcome addition.
The Navigation component provides another way to coordinate how users move between different screens in your app. There is a new editor in Android Studio to make use of this. So if you were confused about what the back button did and the role of the back stack you are probably still going to be.
Paging tackles the problem of downloading data to present an infinite scrolling page in RecyclerView.
Slices are the new UI feature and at the moment it is difficult to see how generally useful this is going to be. A "slice" is a way to surface your app's UI inside of Google Assistant as the result of a search.
All probably useful, but most Android programmers doing this sort of developement would probably have implemented their own solutions by now.
The final component is the Android KTX which provides a set of simplified API functions to take advantage of Kotlin. Now, given I'm a Kotlin fan, you would expect me to be keen on KTX, but I'm not particularly. Many of the transformations and simplifications of the API could have been at least partially implemented in Java. The problem is that I have spent a long time learning the Java-based API and. while switching to Kotlin makes using this easier. Using the KTX is more like learning a whole new API. Perhaps it will get better with time.
New features in Android Studio 3.2 include a new Assistant Panel which tells you about the new changes in Android Studio 3.2, and if this doesn't tell you where we are in the development lifetime of the product nothing will.
Take a look at the intro video:
It would be so much better if the Android Studio team was more responsive and fixed problems in the existing versions rather than trying to find new widgets to bolt on. And talking of widgets. the missing widgets in 3.1 are still missing in 3.2 and no one seems to care.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Wednesday, 09 May 2018 )|