Initially, Steve Jobs suggested that iPhone developers will be able to use any apps they require through the device’s built-in browser, however that was prior to Apple launched its outstanding iTunes App Store.
Ever since, even prescribed websites have preferred to deliver their content to mobile phones, deploying native applications, rather than attempting to cram them into mobile browsers. In spite of the improvements represented in HTML5, majority of developers feel that Web technologies are still insufficient for the specific needs of smartphones and tablets.
Now it’s time to rethink how online information services are built and employed. Firstly, developers created websites in the past and then adjust the same content to mobile applications. But in present market, mobile devices are at a greater extent the primary means by which users have interaction with online content, this approach is probably backward.
It is necessary an evolution in mobile development, same as seen in the early days of Web apps. The first enterprise web applications did somewhat more than screen-scrape legacy mainframe computer output and pretty it up for the browser. As browser-computing feel the norm, app logically moved off the mainframe, so HTML output became the main target. Mobile apps are experiencing the similar shift. The following generation of information services will mobile app clients and desktop browsers as equal citizens, and the same app logic will provide content for both.
Important in the same manner, this transition goes at the same time as another important sea change within the IT industry that is the move toward cloud computing. As PaaS (platform-as-a-service) offerings mature, it provides less sense for information service providers to host app logic on their private infrastructures.
Connecting devices to the cloud
Managing of both these migrations at the same time may be a daunting task for app developers. Luckily, platform vendors are already providing tools for making the transition to hybrid mobile/Web applications as painless as possible.
Recently at the Google I/O developer conference, San Francisco, USA, the search giant has revealed a new beta version of the Google Plug-in for Eclipse that is a set of tools which let developers to build, test and upload apps for Google’s App Engine cloud platform, everything from within the Eclipse IDE for Java.
The prior versions of GPE empowered developers to create App Engine applications together with integrated support for GWT (Google Web Toolkit), that is a framework for developing sophisticated Web-based UIs. This new GPE 2.4 beta provides support for Android applications. In fact, developers can create app logic for App Engine, then at the same time generate I/O code for mobile and Web clients.
Microsoft, similarly, is positioning its Windows Azure cloud platform as a back-end for mobile applications and opposite to expectations, it is not confining the effort to its Windows Phone 7 OS. The Windows Azure Toolkits for devices will contain of libraries for Android and iOS devices, too.
The answer to the question whether to develop mobile applications in native code or use them deploying Web technologies is both, you may throw cloud platforms into the mix.
Certainly hosting of any application on a cloud infrastructure introduces some risks. But this is the risk of outages that may effectively impair cloud-backed applications. Meanwhile no cloud computing platform reliable for 100%, with Google, Microsoft and Amazon customers all experience outages.
Important in the same manner, as much as developers make complaints against mobile platform vendors “walled gardens”, customers of cloud computing platforms take the risks vendor lock-in as well. Transporting huge data store between services may be very challenging, and in majority cases app logic has to be retooled while moving between providers. Some companies are actively follow cloud interoperability standards, as for example the IEEE and the Apache Foundation, but the efforts are premature and there is somewhat provocative for the cloud vendors to cooperate themselves. The greatest challenge can be just to find developers who successfully bridge the worlds of mobile and cloud development.