Using HTML5 and other web technologies when developing an application for the android platform simplifies the development process and helps us cooping with the well known android platform fragmentation problem.
I chose to write this post in order to point at those cases in which we cannot avoid using Java in our application development for the android platform. I believe that similar considerations might apply for the other mobile platforms.
Computation Resource Limit
Using The Android Platform Capabilities
Code Running in The Background
Using Web Technologies is Irrelevant
Application for the android platform do not necessary include the common on-screen user interface the user interacts with. There are many types of applications that don’t include any user interface of that sort. In most cases those applications can be developed in Java and the usage of web technologies is not relevant. Samples for these type of applications include live wallpapers, app widgets, keyboards and launchers.
High Quality Application
Although it is possible to develop an android application without even knowing Java the outcome in many cases is a poor application that includes one activity only. Usually it is an activity that contains the whole application rendered in a web view it includes. Instead of getting a flow of activities (screens) the user moves through and feels as any other application the outcome is different. Unlike most of the high quality Java applications on google play that handle in a successful way display rotation and pausing \ resuming when an incoming phone call arrives, the outcome is far from being perfect. The user expects the application to be as any other application. In order to achieve that our application better include a menu (the standard menu of the very same android device the user has). Developing that menu is possible using Java only. In addition, our application better uses the notification mechanism of the device. Doing that successfully we must code that part in Java and be familiar with the entire platform complexity. Other similar cases include an efficient use of fragments when developing for tablets and other big screen devices and an effective usage of the action bar (relevant for big screen devices). The only way to implement these two is using code written in Java.