Wishes for Android app development
Developing applications for a platform usually becomes more and more enjoyable when once gradually gets deeper and deeper into it. I wish I could say this for Android app development. Android app development environment leaves much to be desired. I wish:
- The essential tool – the emulator - were much faster. One would think an emulator on desktop PC powered by a quard-core CPU must be much faster a mobile device powered by much slower CPU. The reality is the opposite. Android Emulator is about an order of magnitude slower than Windows Phone Emulator.
- The emulator could display large bitmap file. It cannot display 720p images as of 2012-03-07.
- The emulator could stream RTSP video or declared explicitly its incapableness in this regard.
- The emulator could emualte Wifi mode which is essential for certain functions.
- Android had classes for gestures such as flick and pinch that are used widely for devcies with a touch screen.
- Android Device Bridge (ADB), the essential service for working with the emulator or debugging devices, were much more robust so it would not stop working and give out all kinds of errors frequently.
- The official obfuscation tool Proguard worked for projects involving multiple complex libraries. It could work without incurring severe pain.
- Building of Android projects with Ant could be compatible with Eclipse for projects involving multiple libraries. Using And requires external library jars put in the folder libs.
- ADK could make up for Java's deficiency in event reporting mechanism by dramatically simplifying it.
- Background image could be scaled properly.
- The support for OpenGL ES2.0 by Android Emulator, which Google started working on in 2010, were finished by now (2012) so one could debug apps using OpenGL ES2.0 (the latest edition of OpenGL) on it.
- Programming OpenGL for Android were elegant and a fun instead of dealing with obscure configurations. I miss programming OpenGL in C++ for Windows. it was very enjoyable.
- More accommodating to the well established, commonly practiced, and sensible patterns of MVC, MVVM. This would bring better architecture, easier maintenance and a lot of pleasure to the app development. Android's loose coupling concept is appreciated, but it does not have to exclude MVC or MVVM at the activity level.
- Updating UI from a background thread required a few lines of code instead of a dozen lines involving multiple objects such as Thread, Handler, or AsyncTask.
- Simple and common tasks such as showing a message box needed only one line of code statement instead of 10 lines involving object instantiation and event handling.
- Documentation had a bit more details so there would not be contstants and methods with only names without any explanation.
- Documentaion clarified for each class and method which Android version it is applicable to.
- Visual demo of styles.
- More supported media formats and/or provide a mechanism like Microsoft's MediaStreamSource to allow developers to expand the supported formats.
- Easy access to apps' data on the internal storage for development.
- Easier manipulation of Preferences xmls so that they can be used to serialize class instances.