Programming for Android
In previous lifes I have done development for Windows Mobile, the iPhone and now it is time to use Android. In general I had a negative bias towards Android because of the fact that they create an island on an island and have shown poor interaction with many upstream projects.
The Poor
The Android SDK GUI is really really poor, it is worse than my Opie SDK attempts I did within a couple of days. It is really schocking how poor the UI design of Google is on such an important tool. The biggest issues for me are the usage of real estate. This starts with the new project dialog not fitting on 768 height (the resolution of my 13,3″ notebook screen), it continues with the Android Log in the debugger view. It is a single Tab inside a Tab Widget with a huge amount of padding. With my screen setup one line of log fits, the text of it can not be selected and if the line is bigger than the 1366 width of my laptop I have bad luck, it can not be scrolled.
The other thing fewer people do is using JNI. The native library is placed into the android package and then uploaded to the target, when recompiling and then asking eclipse to launch the application the dependency on the library is not checked, deleting the Android Package is not recreating it as well, one has to make a change in a java file from within the IDE to get the new lib into the package. This is certainly not as poor as the above.
The Good
This is where Android starts to win me. There is plenty of Source Code to look at. It is starting with the Examples from the SDK/NDK, the huge amount of code for the core applications and various other resources. The adb utility is really awesome as well. It allows you to get a shell, upload/download files and to display the whole system log. I really appreciate a well crafted logging system and the Android one seems to fall into this class.