The concept of mobile devices accessing the Web is the one that Ruby on Rails developers should keep in mind nowadays. Making your application available and user-friendly for smartphones and pockets PCs becomes an excellent opportunity to create an appealing product and gain a notable market share. Ruby on Rails, with its well-defined RESTful conventions, is an ideal backend for mobile applications. Mobile application developers can make use of both mobile and Web technologies, since it is fairly easy to leverage mobile development SDKs and frameworks with experience in Ruby.
For a quick and effective start, both Ruby developers and mobile application developers will need to familiarize themselves with tools for Ruby development and smartphone support. In this article, I tried to give a brief overview of the most popular tools that help create Ruby apps for mobile devices, including Rhodes for cross-platform apps, Ruboto for Android, IronRuby for Windows Mobile, and MacRuby for Apple iOS.
Building cross-platform mobile apps with Rhodes
The tool also enables Ruby developers to create apps that use built-in smartphone features, such as geo positioning information, camera access, and personal information management. Ruby on Rails developers will have a quick start with Rhodes and will be able to get productive in a matter of days. Following the trend of accessing the development environment in the Cloud, the creators of Rhodes released RhoHub, the next generation of Development-as-a-Service for mobile platforms. RhoHub enables mobile application developers to build cross-platform Ruby applications online without installing SDKs for various smartphones locally.
Ruboto: JRuby for Android
The Android mobile platform had only supported Java up until recently. Now Ruby developers can also take advantage of it by using Ruboto, a development package for Android that allows creating applications using JRuby. Ruboto leverages the power of JRuby to open up the Android API. Mobile application developers can edit, save, and run scripts on the phone; access Preferences, SQLite, Media, Phone State, Sensors, UI, and much more.
Ruboto features the application generation command-line tool, which is basically a Ruby application generator for Ruboto apps. Though not fully functional to create complicated Ruby apps, this development package is great for testing, prototyping, and debugging.
IronRuby for Windows Mobile
IronRuby brings Ruby natively to the Dynamic Language Runtime (DLR) that runs on top of.NET. IronRuby supports all the features of the Ruby language. It also provides for integration of Ruby code and.NET Framework. Iron Ruby allows running Ruby on Rails development scenarios, such as migrating a database, generating a model, etc. Ruby developers can browse Rails documentation page on the IronRuby Web site to see the various scenarios in action.
The combination of IronRuby and the new Windows Phone 7 platform brings many possibilities to.NET Framework developers, mobile application developers, and to Ruby developers. You can expect that.NET developers will benefit from the incredible capacity of the Ruby language and Ruby on Rails developers, in their turn, can write mobile applications for Window Mobile more conveniently.
Apple’s lift of restrictions on developing apps for iPhone using languages other, than Objective-C, is a huge leap forward for the mobile development industry. Mobile application developers and Ruby developers interested in creating apps for iPhone should get acquainted with MacRuby. It is a fully fledged Ruby environment that can be used to build and run your Ruby and Ruby on Rails applications. The current release passes 90% of total RubySpecs. Ruby classes in MacRuby are in fact Objective-C classes and Ruby objects are actually Objective-C objects. Since it is not yet possible to completely express the Ruby semantics with the Objective-C runtime, MacRuby’s team has still a lot of work to do. While this work is in progress, it is the goal of MacRuby to enable the mobile application developers to create solutions that will not sacrifice the performance in order to enjoy the benefits of using Ruby.
As you can see, there are plenty of tools that help Ruby on Rails developers implement their skills to build mobile applications for various platforms. With a little time and patience to study the peculiarities of various platforms and frameworks, mobile application developers would be able to create functional applications using their present knowledge of Ruby.