Search

Recent Posts

Tags


« | Main | »

Rhomobile – multi-mobile device development platform

By Dale Reagan | January 4, 2010

Rhomobile bills itself as: Smartphone apps made easy.

AND:

Note – at the time of my testing (early December, 2009) I did not see support for all of the above devices – at this time (January, 2010) more tools seem to be present.)

So what does easy mean? Ok, I’ll bite – how much time are we talking about?  I start out trying to work with this tool on a local Linux system.

  1. gem install rhodes (seems to take a while but installs)
  2. rhodes-setup

We will ask you a few questions below about your dev environment.

JDK path (required) ():

The setup process is supposed to show you where it ‘thinks’ your JAVA JDK is – hmm – I stop at this point since I don’t want to install the Java SDK on this system…  I decide to check out RhoHub – hosted development with a ‘Free’ option – as long as your APP is free…

“All plans include unlimited public apps and unlimited public collaborators.”

Notes from the T&C:

  1. no SLAs – not a guaranteed service – could go down; also hosted by a third party (I am looking at ‘free’ so not an issue)
  2. no apps dealing with sensitive or illegal data (not an issue)
  3. “Between Rhomobile and You, You retain ownership of all of your data and any programs or information created using the Services. [and you need to note that your code is immediately public, best I can tell;  not a problem if you intend to share…]  Rhomobile shall have a royalty-free, worldwide, transferable, sublicenseable, irrevocable, perpetual license to use or incorporate into the Services any suggestions, enhancement requests, recommendations or other feedback provided by You, including Users, relating to the operation of the Services.” (sounds reasonable)

I sign up for a free account and wait for the confirmation email…  A few minutes (actually seconds) later my RhoHub is online:

http://savannahphoto.rhohub.com/
  1. I create my first App (note that with a ‘free’ account all apps will be ‘public’...)
  2. I note that Overview, Settings, Colloaborator & Editor tabs
  3. I select the ‘Builds’ Tab and change to ‘Windows Mobile’
  4. I note both the ‘simulator’ & ‘desktop client’ downloads  (currently only for Mac & Windows…)

At this point I surf to the link above (from another system) and find that selecting my new app takes me right into the code tree – so this is truly, public and OPEN for ALL TO VIEW? [My initial thought is that this should be ‘closed’ until ‘released’ or ‘published’ by an author…]

I select the ‘Download APP_NAME app’ link and I am rewarded with a Zip file.  I extract the files to find Ruby, CSS, images and HTML files – no binary; just the typical contents of a Ruby/Rails type web site…  Essentially, it seems that you get all the files that are present on your RhoHub project under the Editor tab.

I create a photos object with several attributes and  ‘build’ the app.  I download to a Windows Mobile phone and get an updated version of the Zip file previously mentioned.  Hmm, how do I run the app? not clear at this point…  Oh, wait!  This is browser based – hmm could it be as simple as opening the ‘app’ with IE (on the Windows Mobile phone?)  There is an example for running your test app under Android but nothing for Windows Mobile (currently) under the RhoHub tutorial (wiki.)  There is, however, a link to a Windows  emulator so I decide to give it a try…

Cranking up a Windows VM (just for experiments like this… so I will be running the Rhodes emulator for XP via VirtualBox running under Fedora 11.)  The download is simple and the Emulator starts up my app at the URL above.  It runs just fine allowing CRUD access to the simple form that I created. My guess is that the missing piece is a Ruby emulator for/on my WM phone.  Where is the link to get things working on a Windows Mobile Phone????  Hmm.

If I were building this on a Windows PC then (based on Wiki docs) I would do something like:

  1. Run “rake device:wm” to compile your application code
  2. Copy <appdir>\bin\target\rhodes.cab content to device or emulator in \My Documents\ and then loading it to see you changes on device or emulator (you can delete previous .cab file first to ensure overwriting)

So how is this done from RhoHub? The RhoHub Wiki only states:

Send the build to your device, or open in an emulator

Best I can tell, something is missing here – no ‘cab’ file to ‘send to’ my mobile (I would expect it to be generated my when I selected the Create Build button.  I decide to review the ‘build log‘ and here I do find mention of CAB file creation – hmm – perhaps a download problem?

PWD:C:/ruby/lib/ruby/gems/1.8/gems/rhodes-1.2.2/platform/wm
CMD:vcbuild
ARGS: /M4 rhodes.sln "Release|Windows Mobile 6 Professional SDK (ARMV4I)"
Microsoft (R) Visual C++ Project Builder - Command Line Version 8.00.50727
Copyright (C) Microsoft Corp 1993-2003. All rights reserved.

1>Build started: Project: rubylib, Configuration: Release|Windows Mobile 6 Professional SDK (ARMV4I)
2>Build started: Project: sqlite3, Configuration: Release|Windows Mobile 6 Professional SDK (ARMV4I)
3>Build started: Project: syncengine, Configuration: Release|Windows Mobile 6 Professional SDK (ARMV4I)
4>Build started: Project: shttpd, Configuration: Release|Windows Mobile 6 Professional SDK (ARMV4I)
2>sqlite3 - up-to-date
5>Build started: Project: tcmalloc, Configuration: Release|Windows Mobile 6 Professional SDK (ARMV4I)
5>tcmalloc - up-to-date
3>syncengine - up-to-date
6>Build started: Project: RhoLib, Configuration: Release|Windows Mobile 6 Professional SDK (ARMV4I)
6>RhoLib - up-to-date
4>shttpd - up-to-date
1>rubylib - up-to-date
7>Build started: Project: rhodes, Configuration: Release|Windows Mobile 6 Professional SDK (ARMV4I)
7>rhodes - up-to-date

Build complete: 7 Projects succeeded, 0 Projects failed, 0 Projects skipped
PWD:C:/ruby/lib/ruby/gems/1.8/gems/rhodes-1.2.2/platform/wm/build
CMD:cscript
ARGS: build_inf.js rhodes.inf wm6
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

PWD:C:/ruby/lib/ruby/gems/1.8/gems/rhodes-1.2.2/platform/wm/build
CMD:C:/Program Files/Windows Mobile 6 SDK/Tools/CabWiz/cabwiz[dot]e x e
ARGS: rhodes.inf
Windows CE CAB Wizard
Warning: Section [copyfiles_apps_public] has no data
Warning: Section [RegKeys] has no data
Warning: Section [DefaultInstall] key "AddReg" - there are no section entries to process
PWD:C:/ruby/lib/ruby/gems/1.8/gems/rhodes-1.2.2/platform/wm/build
CMD:cscript
ARGS: cleanup.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

The fix/Solution

Now I download the new build but this time I download from the download option under the Build Tab – seems that the public download is for your source code, not the binary…  I copy the CAB file (~2MB file for my app with four fields…) to my Test phone, open the file and the install begins-

The Rhodes Icon is now on my program list – I start it and it says “Loading…”  After a bit I get a screen that says “Add links here…”, a black header section (my App title is hidden?), and all the menu options available on the emulator.  If I highlight the top of the screen I see my TestApp title – ok; must have missed a step or two – where is my data entry form?

I make a few cosmetic changes to the App, delete the existing ‘builds’ and create a new build to download. The install process is the same as outlined above except that I get a warning about ‘replacing’

Ok, install complete, I run the app and Now I get my form page – but the Title is still ‘hidden’ due to whatever CSS is being used?  Hmm. My guess is that RhoHub is generating code for Windows Mobile 6.x+ (my test phone is running Windows Mobile 5.0.)

So, overall, is it quick?

All things considered I would have to say YES (all of the above was completed within a few hours – along with writing this post.)  If you already code with Rails/Ruby then this might be a great path for branching out into the mobile arena.  RhoHub pricing (12/09): 1) Free, 2) Basic $20/month, 3) Premium $100/month.

The only downside (at first glance) is the price for a commercial license is $500 per app? From the FAQ:

7. But what about the GPL “google exception” or “application service provider exception”? Can’t I use your technology without either a commercial license or complying with the GPL license by publishing my source code?

Websites (web applications or services) can indeed use open source products such as MySQL, PHP and other enabling technologies without publishing their source code, because use over http does not constitute a GPL “redistribution”. Since Rhodes requires a download to the user’s device this exception does not apply. Developers need to either GPL their own application or get a commercial license.

For $500/mobile device (time need to create a working install) I could probably install the required environments (very rough estimate to get things working; lots of files to download and install; Windows requires the MS compilers; Android was just somewhat picky; my guess is that other devices would all have their peculiar needs…)  Hmm, 5 devices * $500 + (X% yearly fees for proprietary tools * Y user/developers) = probably a large sum… This solution does not appear to be an economical one for the lone developer…

So what does my test app do?

It’s just a form with four fields (at this point.)  Note that the build time seemed somewhat longish (but not bad for FREE, hosted development solution…)

Note that copy & paste of Ruby/Rails code may not meet your needs – I tried installing my standard Rails debug code and things broke immediately.

Other Items

I decide to download and try  some of the sample apps from Github.  I choose the system-api-samples.

  1. I create a new project
  2. modify the rhoconfig.txt and set default to /app/Camera
  3. I select Build and see:
RhoHub has recently added support for Rhodes 1.2.
 Please update your rhodes application to be 1.2.x compatible by following these         instructions.

Hmm – the Wiki page does not seem to be much help… I review the Yaml file and modify SDK and version values to:

sdk: /usr/lib/ruby/gems/1.8/gems/rhodes-1.2.2
version: 1.2.2

Now I can build the app…  Note that I am not testing on my ‘real phone’ and I don’ suggest that anyone use such test apps on their ‘production phone’ without extensive testing…  Note that my test apps don’t really do anything useful – I was simply exploring the tools.  Again, your mileage should vary… 🙂


Topics: Computer Technology, Mobile Web, Web Technologies | 2 Comments »

2 Responses to “Rhomobile – multi-mobile device development platform”

  1. Adam Blum Says:
    January 4th, 2010 at 9:50 pm

    Thanks for your thorough writeup. Lots of good suggestions on how to improve our doc. Check back soon.

    However I also think several questions might be answered for you by working through the tutorial in “How to Use RhoHub”.
    1) “Add Links Here”. You put links to your objects or models in your “app/index.erb” file, e.g. My Product Catalog. Or just change you start_path in rhoconfig.txt to point to your ‘/app/Product’ as you did. Either one works. The former approach is necessary if you have more than one object.
    2) We’ve upgraded the build servers in the last couple weeks. It should take about 30 seconds now? Is that what you’re saying.
    3) We are seeing five to one code size savings with Rhodes apps vs. Objective C multiplied by the number of OSes supported. We do think that there are few developers and apps that the time savings is not worth $500. But I value your feedback. We may move to a “one fee per developer” in the future.
    4) If you have a reproducible crash scenario can you collaborate the app up to us (adam@rhomobile.com) or just email me and we’ll investigate?
    5) I’m glad you’re using RhoHub. But just FYI if you want to work locally you only need the JDK for BlackBerry builds, not for other builds
    6) Would love to show you some time what RhoSync can do for potential followup. Skype me at adamsblum if you want to do a collaboration session

  2. Dale Reagan Says:
    January 4th, 2010 at 10:20 pm

    Hi Adam,

    It’s always great to see folks paying attention to their product(s)!

    Thanks for the clarifications and good to see that your product is moving forward.

    Note that I was simply exploring your offering and attempting to do so without having to take a ‘deep dive’, i.e. how far could I get without reading all the docs or how far could I get with minimal reading. Since I made it as far as I did my conclusion is that your offering could be a real time saver. 🙂

    For any comment where I indicate/describe a problem then a couple of thoughts enter the field:

    1) I’m dense, thick-headed, etc., OR
    2) there is room for improvement in the product interface, docs, etc…

    In some cases I quickly admit, “duh…” – and move on. In others I’m always hopeful that someone might benefit from my comments.

    Keep up the good work!

    🙂
    Dale


________________________________________________
YOUR GeoIP Data | Ip: 73.21.121.1
Continent: NA | Country Code: US | Country Name: United States
Region: | State/Region Name: | City:
(US only) Area Code: 0 | Postal code/Zip:
Latitude: 38.000000 | Longitude: -97.000000
Note - if using a mobile device your physical location may NOT be accurate...
________________________________________________

Georgia-USA.Com - Web Hosting for Business
____________________________________