|Android Studio 3.2 Released - More Cruft Than Substance|
|Written by Mike James|
|Friday, 28 September 2018|
Oh well here we go again. Android Studio 3.2 has been released and it has new features to support Android devices. Sometimes it seems like the Android Studio team has forgotten that Android Studio has users, or perhaps they never realized it at all.
There was a time when a new version of Android Studio would be an exciting treat. Now I almost dread having to upgrade. It is years rather than months since I have upgraded without having to spend 20 minutes or more fixing broken dependencies or worse. Gradle has become the great bane and mystery of many an Android programmer's life. How many actually know what it does and go further than just repeating the magic incantations to copy this or that line into one of the many possible Gradle files in a project?
Some users claim that it all just works, but that's not been my experience. And then there is the major ongoing complaint - it is slow and, despite the best efforts of the development team, while it is better than before, it is still slow. If you don't throw a fast machine and at least 16GBytes of RAM at it then you will find that it is unworkable.
This wouldn't be so bad, but Android Studio is the recommended way of developing Android apps and backed by Google - surely it can do better? I really do believe that Android is losing Kotlin and Java developers to alternatives because of Android Studio.
Perhaps the cause of the difficulties is that Android Studio is in a state of constant revolution. It is fine to be revolutionary when you have secured your foundations, but time and again we have unfinished new technology dumped on us. The way in which users of Android Studio are coerced into using the new features almost makes me think of Microsoft. Why condemn the relative layout to the legacy category when not every Android developer is convinced by the Constraint Layout? As far as I'm concerned, and this is in my capacity as author of four editions of a book specifically about Android Studio, it is monstrously complex and bloated, only just works and is very slow in use.
Perhaps the final straw for me is that in this new version the same widgets are missing from the tool palette as at the previous update. People, including me, have filed bug reports and asked questions on Stack Overflow only to be met by complete silence. This is a simple issue and yet the bug reports are still unassigned - hence the general advice, don't bother filing bug reports.
So what is the latest revolution we have to suffer?
You might think that it would be Android Pie, but Android programmers are used to the relentless march of Android and its ever closer ties with Play services - so let's gloss over this one. The new thing is the App Bundle, a new publishing format. What are the advantages? It's smaller and the Play Store generates the actual APK for the end user customized for their device. The disadvantages? As only the Play store accepts App Bundles we have just been walled in just that little bit more. You still can make your own APKs, but best practice just changed.
Another headline feature, though not one every Android developer is going to want, is slices. This is a way of getting your app into Google search results to show off what it can do. Wait a minute - whose search results - oh yes, of course, Google's. I'm sensing a theme here.
The emulator has been improved - and I can't fault this. It is now able to work with Windows under HyperV and it has a snapshot feature. It still isn't the fastest thing around, but it is a lot better than it used to be. Keep working on the emulator - this one is a winner.
Another headline new feature, although it isn't really new, is JetPack. This is a collection of libraries that you can use independently of the OS version. A great idea - shame it took so long to think up. Or did it? Isn't this just the compatibility library as was/is. Once upon a time we were told to use the compatibility library only when it was needed. Then Fragments came along and the compatibility library actually implemented them better than the OS and became the standard. From here it's downhill all the way to JetPack. Only now we don't just have a single library, but a range of different things in different categories. Want to use data-binding? Well it's somewhere in JetPack. Want to use Fragments? Well they are still in there along with Emoji and layouts.
Who knows what is Android best practice any more? The one thing we can all be sure of is that our old apps, of even six months ago, are all probably legacy.
There are lots of small or niche improvements - the energy optimizer will be helpful if you are in the final stages of creating something. Here is the list as given in the release notes, just in case I've missed something that might be important to you:
Android App Bundle
Android Emulator Snapshots
The bottom line is that the Android forest has grown so much that not only can you not see the trees any more, all you can see are the weeds. If you go to the documentation you usually can't determine what is best practice and it is quite possible to spend months working on implementing something only to discover that there is some completely different way of doing it that is now the only way to do it. As to Material Design - does anyone have any idea what all of the themes and styles are all about? You could drown in just these alone without worrying about JetPack.
Android Studio desperately needs a reboot and the development team needs to listen to its users.
or email your comment to: email@example.com
|Last Updated ( Friday, 28 September 2018 )|