|Android Studio 4 - Not One Giant Leap For Android Programming|
|Written by Mike James|
|Monday, 01 June 2020|
It is time for Android 4. Something to look forward to and now it's here - not a decimal point upgrade but a full unit. So what's so good?
The big problem with Android Studio is that it is slow and sprawling. You might guess that it has to be like this because of the variety and complexity of the Android ecosystem, but is it really so hard to put a button on a form? It seems to be. Of course, Android has got problems that are difficult to solve. Unfortunately the solutions have usually made more problems. For example, there are many different screen sizes and so layout is difficult. An early solution was to use Fragments. This made the UI very difficult to create and very error prone. A slightly later solution was to use a constraint layout container. An interesting experiment, but slow and difficult to use. Now which approach do you use - Fragments? Constraint layout? Fragments with Constraint layout? We still have the constraint layout and it's still being improved.
In version 4 we have the Motion Editor as a way of bringing unwanted animation to the UI for the delight of your users. A plus point is that the layout inspector has improved but if the layout editor was better we probably wouldn't use it so much. You can at least now check your layouts across multiple screen sizes in one go. Fixing any problems is another matter.
Then we have Java - a big problem as Android uses its own bytecode which effectively decouples its version of the language from newer versions of Java. The real thing is already at Java 14, although Java 11 is the latest Long Term Support Version and the previous LTS version, Java 8, is still the version most widely used, see Java 8 Remains Dominant. For Android Studio 4 it was announced that you can now use Java 8 in all SDK versions. It works by converting the new features in 8 back into standard Java before the actual compiler gets to work with it. It's a sort of polyfil compiler. This is good, most of the important improvements to the language happened in 8, but ... what about Kotlin? What about the Oracle Google lawsuit about Android stealing Java? Where do we stand on any of this? Is Kotlin the hope for the future or is it too JDK-dependent to be safe from Oracle?
Then there is the new build analyzer that tells you where your program is wasting time - shame it doesn't work on Android Studio itself as it could do with speeding up. You need a big machine to make good use of it - this is not how IDEs should be.
Then there is Gradle - how many Android programmers have any idea what it's all about? To the majority is is a mysterious incantation to the gods that usually breaks on an Android Studio update - good news it doesn't on a move to version 4. Well it didn't when I upgraded to the stable channel. The new Gradle plugin seems to work and it now has a Dynamic Feature module which lets you set dynamic dependencies - beginners are going to love this. You can also disable build features by typing lots of configuration parameters using a DSL. Some IDE configuration options might be easier and more discoverable.
Talking of DSLs, we now have support for Kotlin DSL build files:
"While we are excited about the potential for using Kotlin to configure your build, we will continue to refine the Android Gradle Plugin’s DSL API throughout the next year, which may result in breaking API changes for Kotlin script users."
Yes, that is the sort of thing that users like to hear - nothing like a good breaking change. So which do you use Gradle or Kotlin DSL?
You can tell that I'm not a happy fan. I think that Android development has got more complex and less rewarding with each release of Android Studio and, to make it worse, we have Android Jetpack trying to reinvent the entire framework.
I can sum up today's Android environment very simply - too much churn and too much uncertainty.
Android Studio 4 is a decimal point upgrade hiding behind a full increment.
But don't let me put you off. See if a real beliver can convince you otherwise:
or email your comment to: firstname.lastname@example.org
|Last Updated ( Thursday, 04 June 2020 )|