“Development as a service” is the newest buzzword in the cloud computing arena. Services such as Heroku and force.com have started to pioneer a new model of doing most of your development work out in the cloud with only a browser used on your local device. This is an exciting development in general. But no subdomain of app development is more in need of development as a service than mobile. Mobile apps typically require a complicated set of SDKs to be installed and require a specific type of computer operating system to run on (LInux users are often left in the cold here). At Rhomobile, we are in the process of launching the first “mobile development as a service”: RhoHub.
Some background: with Rhodes, we believe that we have provided the mobile app development industry with the ability to create native mobile apps that run across all smartphone operating systems for the first time ever. And beyond the portability benefits we’ve made it unprecedentedly easy to build apps even for a single smartphone device by letting people create native smartphone apps with the power and productivity of HTML templates (typically resulting in apps that are five times smaller in code size).
All that said, there are still ways that we can make development even easier by providing a web-based service for both Rhodes development and hosting of Rhodes apps. Although we provide nice high level rake scripts that let developers do builds for all smartphone operating systems from a single command, they still have to have the appropriate computer operating system to do the build (Macs for iPhone, Windows for other builds) and have to have the underlying SDKs (e.g. iPhone, BlackBerry, etc.) installed. Also if a developer wants to build and host an app that works with synchronized data they will typically need to set up a copy of a RhoSync server.
RhoHub allows developers to generate their client and server app code (HTML templates for the Rhodes client, source adapters for the RhoSync server) for each object of interest. They can then edit their code (HTML templates for Rhodes or Ruby code for RhoSync source adapters) online right from the RhoHub website. When the app is complete developers can then build an executable for Windows Mobile, BlackBerry, Android, iPhone or Symbian. To facilitate rapid development, RhoHub also introduces a Win32 build. Developers can build for Win32 and quickly download it to their local machine for testing (we will provide a Mac OSX Rhodes build later).
Once the app is complete, RhoHub also offers a “provisioning service”. Developers can expose a single URL to their users, e.g. “http://mobile.mycompany.com”. Users access that URL from their mobile web browsers and the RhoHub provisioning service will offer up the appropriate downloadable executable for the detected mobile device (a Windows Mobile .CAB file for a user accessing the URL via Pocket IE via their Blackjack II, a BlackBerry .COD file for a user hitting the site with their BlackBerry Bold). Developers also can easily deploy their RhoSync source adapters to the RhoHub-hosted RhoSync server, eliminating the need to host their own RhoSync server.
RhoHub will go to “public beta” next month at InterOp. Public beta means that it can be used to develop Rhodes-based apps. But it won’t be allowed to be used for production use by end users until RhoHub exits its beta phase and releases. We expect that to be some time in early July, but we’re looking for feedback from our early beta customers on this.
On Friday, I had the pleasure of participating in a panel at SDForum’s Developer Conference on trends in mobile application development. Alongside representatives from Sun, Nokia and others, we discussed emerging ways that mobile apps were being built. Two in particular seemed to capture the panel’s interest:
high level, declarative development
the success of HTML for web development provided a much more productive, portable, and powerful way of developing apps. Declarative development through either HTML or XML is emerging as a way to develop other kinds of apps as well: both rich desktop apps and mobile apps.
For desktop software, often known as Rich Internet Applications (RIAs), this is evidenced by technologies such as Adobe Flex (an XML for RIAs) and Titanium’s AppCelerator. For mobile software the category is even more nascent, and examples include Rhodes, PhoneGap, and Nokia’s Web RunTime (WRT) for Series 60 devices.
pushing computing to the edge
In the early days of computing, apps were primarily centralized on mainframes and minis, and accessed remotely by users. The advent of personal computers in the 1980s enabled a new generation of locally hosted and used applications on individual’s own desktops, spawning an exciting new array of capabilities. The dawn of the web in the 1990s created a swing back toward many “centralized apps” accessed by ubiquitously available web browsers. Finally in the last few year the explosion of smartphones as fullfledged computing devices has created yet another new generation of applications, that take advantage of these device’s new capabilities by executing locally on devices again.
The Rhodes framework is a great way for developers to take advantage of both of these trends.
Two weeks ago we released 1.0 to far greater than expected press and customer uptake. Frontpage stories on CNet, VentureBeat, InfoWorld, ArsTechnica and others, with very insightful analysis (although a few other articles confused us with a mobile web development solution because of our use of HTML to create views). Ryan Paul from ArsTechnica even wrote his own Windows Mobile app. Plus we’ve had several of our developers submit apps to the iPhone AppStore. VDGGroup released their IssuesToGo app – a mobile frontend to the popular LightHouse bug tracking that we’re happily using at Rhomobile to stay on top of our bugs. Wikimedia submitted their 1.0 based iPhone Wikipedia to the iPhone AppStore and will later move it to Android.
So 1.0 is out and now supports all shipping smartphones. Plus we have all the most important device capabilities (at least for enterprise app scenarios) covered. So what are we doing in the next release? 1.1 is slated for release in mid-May at Interop in Las Vegas. What’s new in 1.1 then? We are doing a lot of work to provide robust testing frameworks to enable developers to test their apps well. This includes providing the long asked for “desktop version of Rhodes”. You’ll be able to test your Rhodes app right from your Windows laptop without running an emulator.
We’re also doing a lot of performance work. This includes faster startup time for iPhone (already checked into the 1.1 unstable branch of Rhodes). It also includes faster data synchronization. One of the features is the ability to handle very slow backend apps by allowing queries to be queued and handled completely asynchronously (the queued sync option for a RhoSync source). This is also checked into RhoSync edge. There are several other RhoSync server and client performance improvements underway as well.
We’ll always add device capabilities in each of our point releases. For 1.1, by request of some Rhodes developers, we’ll be adding video play support.
But the biggest feature for Rhomobile coming over the next month is opening up the private beta of RhoHub. Explaining RhoHub however is a much bigger blog post to come.