I have been plugging away on Android development. As a hardened XAML Developer, it’s been painful for me to adapt.
1. TDD is hard using Android Studio.
I just do not see how to hit the ground running with the Red-Green-Refactor methodology. I am convinced that TDD is the best way to build systems in 2015. I get into the “zone” so much easier when writing code and getting an immediate reaction to notify me of the codebase’s current state. Unfortunately, I have failed to identify TDD as a first class citizen for Android Studio. I have searched the internet and just have not found any support to hit the ground running. In fact, I have noticed that unit test support is also not a first class citizen in the NetBeans IDE either. I have found that getting started requires some serious ceremony.
2. Cannot declaratively manage interaction logic
As a man, I partition everything and will stereotype anything. Code is no different. I have found value in separating interaction logic from view-models. I have also found XAML to be more maintainable because it does adhere to separation of concerns. Hence, XAML is focused on interaction logic only. As I attempt to adapt to Android development, I do not have this type of separation. In an activity, I have state and request management mangled together. Because of this cohesion, this code becomes more challenging to test and maintain.
3. No data binding
Data binding reduces the plumbing code that I would have to write for the UI to reflect a model’s state. Android does not appear to have this support yet. As a result, more code has to be written to connect the UI to the model.
In conclusion, I am recognizing how spoiled I am with Visual Studio. There are several productivity tools that the IDE provides that I took for granted. I hope that Android studio continues to evolve at a rapid pace because going from Windows Development to Android Development is painful.
Scott Nimrod is fascinated with Software Craftsmanship.
He loves responding to feedback and encourages people to share his articles.
He can be reached at scott.nimrod @ bizmonger.net