Google does a lot of good things. Unfortunately, welcoming new developers to its primary OS is not one of them. I’ve spent the past 4-5 days developing a number of Android apps as proofs for a new project. My overall experience has been lackluster and I want to note why should I ever think about revisiting this avenue.
- The drag/drop layout designer in Android Studio (the IntelliJ IDE) is lacking.
- I find myself doing crazy multi-threaded things to keep the GUI responsive.
- There is no direct way to populate some of the more complex controls like ListView with dynamic data – requires a separate adapter/class.
- Some of the official Android documentation is lacking or broken.
- Significant research time spent on SO finds that people are having the same problems I am.
- Getting a video to play properly was at least 50 lines of code.
- The callbacks for discovering devices do not consistently work.
- Android Studio creates a folder structure that amazingly annoying.
- Android Studio stores my project file away from the rest of the project – not sure why IDEs think this is a good thing.
- Debugging feels like it is super-basic; somehow even worse than the 2001 CodeWarrior IDE.
Back in the late 90s, I used to program low-level code for Windows. I would watch the message loop, crack out the lparam/wparam, analyze them, send off messages, etc. I also used to write multi-threaded apps on varying devices (Palm, Gameboy, Windows, Playstation), so I am reasonably comfortable with the process of developing such apps. Unfortunately, I feel like the Android SDK is exposed to engineers at the same level Windows 95/98 were presented in the late 90s.
However, just “because I can” is not a reason to continue with Android development. It’s important to be efficient with not just the initial coding, but also make it so that maintenance is a breeze. Nothing I’ve developed on Android gives me the confidence that things will not break down the line. I’m strongly considering moving back to Windows for this project even though Windows machines tend to be more expensive than Android devices.
I’m sad about my experience with Android development. I really wanted it to work out.