Uwe Kubosch edited this page Sep 2, 2013 · 26 revisions
Clone this wiki locally

Is Ruboto useable for making applications now?


Does Ruboto expose the complete Android API?

Yes, as far as we know.

Can I use Java source in a Ruboto project? / Can I add ruby source to a Java Android project?

Yes. A Ruboto project IS an Android Java project. You can choose which parts of the app you want to write in Ruby, and which parts you want to write in Java. Developing in Ruby allows you a quick development cycle and more maintainable code, while developing in Java allows for higher performance.

Does Ruboto support JIT compilation to Dalvik byte code?

No, not yet. There is a Google Summer of Code 2013 project underway to explore this.

Right now we have the dexmaker.jar based Dalvik byte code generation which is used for generating subclasses of Java classes. This will be used for JIT compilation in the future.

How fast does a Ruboto app start up?

A progress dialog or splash screen is displayed within a second. The full app is available within a few seconds. Work is being done on improving Ruboto app startup time. We are tracking typical startup time on different devices at http://ruboto-startup.heroku.com/

How big is the footprint of the Ruboto runtime?

For ruboto-core 0.10.0 a "Hello World" type application (apk) is about 57KB. The application installed on the device is about 188KB. In addition you need either the Ruboto Core platform app installed, which adds around 7.2MB download size and around 17MB of installed disk space, or you can include JRuby in your app. The Ruboto Core platform app is movable to the SDCARD.

Can apps developed with Ruboto be sold on the Android Market?

Yes, like any other Android app.

Is it possible to include JRuby within my apk in order to remove the additional steps from a user using an app?

Yes. You can include JRuby in your app in two ways:

  1. Include the --with-jruby flag when you create your app with ruboto gen app
  2. After generating an app you can type ruboto gen jruby and the two jars will be included in your libs directory. You will have to have the jruby-jars gem installed in your Ruby installation.

If you would like to remove JRuby from your app, just delete libs/jruby-*.jar from your project.

Can I write apps with encrypted communication with Ruboto? Are the Ruby SSL and HTTPS standard libraries available to Ruboto apps?

No. This is planned for Ruboto 1.1.

There are two limitations we need to solve:

  • Android 2.3.7 and older have a limitation on the class/interface complexity it can handle.
  • The Android APK file format only supports up to 65535 methods in the same file.

Both these limitations are broken if we add SSL/HTTPS to JRuby now.

If you target your app at Android 4.0.3 or newer (API level android-15 or higher), and run your app standalone (including JRuby in your app), and prune the set of methods in your APK, you should be able to make it work.


You can use the Android libraries from Ruboto to get the same functionality.