Thursday, April 14, 2011

Review:Rhomobile vs Appcelerator/titanium vs PhoneGap Which one is Best?



What all Products are available for Mobile Application Development?
To know about Native application,Web application and Hybrid application follow this link

There are plenty of players available for Mobile Development.
The major frameworks in market are
·       Appcelerator Titanium
·       DroidDraw
·       PhoneGap
·       Rhomobile
·       Application Markup Language (AML) etc.

Each of these frameworks has its own advantage and disadvantage. The choice of frameworks depends on project’s requirements.
Each platform for mobile applications also has a development environment which provides tools to allow a developer to code, test and deploy applications into the target platform environment. There are also Legacy Providers which are platform specific. 

In following table we have shown comparison of Rhodes with Legacy Provider and other frameworks.


Rhodes
Legacy Providers
Other Framework
Support all Smart Phone
Yes
No
No
Native UI
Yes
Yes
Yes
App Language
Standard
Proprietary
Standard
Model View Controller
Yes
No
No
Barcode/Signature Capture
Yes
Yes
No
HTML5
Yes
No
Yes
Support all OS
Yes
No
No
MetaData
Yes
No
No
Sync
Yes
No
No
Native Push API
Yes
No
No
Hosting Facility
Yes
No
No

  (Source : www.rhomobile.com )

Why Rhomobile is different from other products in market?

·       Model View Controller
Most of the other framework available in market are based on HTML and JavaScript . Hence other frameworks force us to put all business logic into the view and JavaScript. However, as Rhodes is ruby based framework and its structure is similar to popular framework Rails it also support Model View Controller, so code written with Rhodes is more structured and easy to understand.

·       Cross Platform Support for All Devices
Rhodes supports far more device operating systems than any other framework: iPhone, Android, Windows Mobile, BlackBerry and Symbian. The best thing is you have single code base from which you can build application for different smart phone. It does not work legacy way that we have to write seperate code for different types of phones.

·       Offline Capabilities using Rhosync
Rhomobile supports local synchronization of data. Older sync servers don’t support modern smartphones such as iPhone and Android. Most iPhone developers that need sync just end up writing their own synchronization code or process. As we can synchronize the data using Rhosync it provide offline Capabilities. We can work even if you are offline.

·       Object Relational Manager
Rhodes provides inbuilt Object Relational Manager called Rhom. It is similar to Active Record in Rails but with basic functionality only. It helps us to write queries without thinking about which database is being used by phone

·       Rapid Development
One of the interesting features of Rhodes is that it imposes some fairly serious constraints on how you structure your applications which help us for Rapid development. Rhomobile products are properly structured and well organized which enforce  us to do rapid development. Modern web developers have found Rhodes to be very comfortable, familiar and massively productive.

·       Scalable Sync Server
The Sync Server uses NoSql Database which makes it scalable. In addition, RhoSync has several compelling advantages over other sync servers yet built. Specifically it is the only sync server that has a built-in “no SQL”  Redis key value store, making it more scalable than other sync servers who offers internal relational database servers for caching. RhoSync also performs its push-based sync using the native smart phone push SDKs, which no other sync server does.

·       Liberal use of code generation
 Rhodes/RhoSync can write lot of code for you. For example, when you need a class to represent a table in your database, you don't have to write most of the methods. Rhodes even offers an application generator that creates an initial app based on the structure of your models or business objects in your app. It’s very similar to the scaffolding offered by most modern web frameworks with basic “list/create/read/update/delete objects” functionality. For each basic CRUD action, views in HTML are also offered. App developers spend most of their time just modifying views as they see it. No other framework provides an app generator, nor does any SDK. Rhodes looks at the table's definition and creates most of the class. You'll find that you're writing only a fraction of code compare to other frameworks.

·       Metadata
Every enterprise application that is used to run a company’s core business has a different schema for its business objects. For example, every application has varying and customized structure that changes with time. It is not possible to install the client application again and again for a small change. Metadata framework provides a way to handle the view from Rhosync server. It also provides validation and custom template.

·       Hosted Development and Build
Rhomobile also provides a hosted management and Build through Rhohub. We can deploy Rhosync app and build our Rhodes code for different phones with it. No other products in market offer such functionality or feature as of now.
  
PhoneGap
PhoneGap is an HTML5 app platform that allows you to write native applications with web technologies and get access to Native Capabities of phone with ease. PhoneGap uses standards-based web technologies to bridge web applications and mobile devices.

Strengths :

  • Can use HTML5 and CSS3
  • Deploy your app to Multiple Platforms (Symbian and Bada is also supported)
  • Access Native Features
  • Use JavaScript to write your code
  • Licence under Apache Software Foundation
  • Very well documented
  • PhongGap APIs are more generic and can be used on different platforms such as iPhone, Android, Blackberry, Symbian, etc 
Weakness:
  • No MVC
  • No ORM

Appcelerator Titanium
Appcelerator Titanium is an open source mobile application development tool for iPhone and Android. We can also create Desktop application with titanium. It allows you to code apps with HTML, CSS and JavaScript. Titanium primarily uses Javascript and JSON code to write your Native application. It supports Ruby, Python, and PHP scripts for broad developer coverage. If you are creating any social media mobile app then it is better option as Facebook, Yahoo etc API is available with titanium.
Documentation is available here: http://developer.appcelerator.com/documentation

Strengths:

  • Compiles to truly native application code, not HTML5
  • Very large library of APIs for all kinds of activities and data access
  • Uses Javascript/JSON for primary language
Titanium appears to be more feature rich than PhoneGap by bridging more mobile phone functions to javascript. 

Weakness
  • Only support iphone and Android
  • No MVC and ORM
Rhodes and Phonegap does NOT compile your html, css or javascript code into "native bits". When the application runs, these resources use  UIWebView control and run there. From architectural standpoint, these the frameworks are very similar. 

Also i have presentation in RubyConfIndia 2012 about "Which Mobile platform should i choose?"

32 comments:

  1. I realize this post is slightly tilted towards Rhomobile, but you might want to consider this post that points out in a little more detail what Appcelerator and Phonegap are capacble of: http://savagelook.com/blog/portfolio/a-deeper-look-at-appcelerator-and-phonegap

    ReplyDelete
  2. Yes Tony I was thinking the same... surly when i get time I will update about Appcelerator Titanium and PhoneGap. In this blog I have only focused in reviewing Rhomobile. Thanks for sharing the link :)

    ReplyDelete
  3. Appcelerator Titanium does provide some of those items that you list (barcode scanning, HTML5 support, etc)

    Also, some of the items that Rhodes supports only does so on any normal scale (more than 10 clients) for a very hefty fee (Sync). I wouldn't get all lovey dovey on Rhodes. It's good (I'm using it for something at work right now) but it's not hands down the best.

    ReplyDelete
  4. Glad to hear you are using Rhodes. So shocked that you aren't lovey dovey on it :-) Titanium does not encourage creating user interfaces in HTML. They have their own UI abstractions and cannot be used with HTML5 styling libraries such as jQuery Mobile and Sencha. Rhodes leads in industrial capabilities with broad barcode support, signature capture and NFC. No other framework offers all these. Sync is available as a hosted service on RhoHub starting at $99 per month for 100 devices. This is literally less 1/1000th the price of all other sync servers.

    ReplyDelete
  5. Nice post!

    What are the available sync servers similar to Rhosync? What do people do for syncing when using Appcelerator and Titanium - write custom code?

    @Adam - out of curiosity, does RhoSync support (or plan to support) other frameworks too later (i.e. apps built on Titanium etc.)

    ReplyDelete
  6. @Gautam
    I am not much aware about other dedicated sync server but in titanium you can write webservice to sync the data.
    You can use Rhosync without Rhodes. http://docs.rhomobile.com/rhosync/client
    I am not sure if we can use it with titanium.

    ReplyDelete
  7. My question is what happens when you release your app to Apple store and it gets 4000 downloads? Rhosync is setup at $10,000 per year for up to 1000 devices. Doesn't seem very scalable in terms of Users per dollar spent. Thats $10 per installed device per year. What if you put app on app store for free? Is this a one trick pony framework where its really only meant for enterprise type apps for businesses and not the standard consumer app you'd find in app store? One of the draws of rhomobile over titanium would be the rhosync capabilities but honestly cant see the time savings of this over writing my own sync code outweighing potential costs down the line. Any insights?

    ReplyDelete
  8. Hi Blake,
    you can use Async Http to connect to webservices http://docs.rhomobile.com/rhodes/connect-to-web-services
    It not necessary that you use Rhosync. And if you use Rhodes then it is totally free.

    ReplyDelete
  9. The title is quite misleading and bizarre when you haven't actually considered Titanium or Phonegap at all.

    ReplyDelete
  10. Gee... great post but, shouldn't you change the title to "Rhomobile Review"? You did not say a peep about the other frameworks. At any rate Rhomobile does sound really good. I will look at other reviews and, better yet, take it for a spin myself.

    ReplyDelete
  11. Yes V H and Darry sorry for misleading title..Actually when I started to write this post I was writing about each framework but then I did not get time. But surely I will complete this post soon.

    ReplyDelete
  12. So the only way to use the RhoConnect sync server is to use RhoHub? In addition to that you can only have 100 devices connected to RhoConnect sync server at one time for $5000?

    ReplyDelete
  13. @greeneggs614 It is not necessary that you host Rhoconnect on Rhohub you can host it on your server also. http://docs.rhomobile.com/rhoconnect/deploying

    But you have to definitely buy the licence from Rhomobile to host it for production.

    ReplyDelete
  14. what about the Security options available in rhoMobile.How much secure it is to build using this framework? Is the code generated by it can be reverse engineered..?

    ReplyDelete
  15. Yes we can create secure application using Rhomobile. You can also use https for secure application. May be this will helpful to you:
    http://docs.rhomobile.com/architecturefaq#how-do-i-secure-data-on-the-device

    We can't reverse engineered the code as the code is complied before installing it on device.

    ReplyDelete
  16. This is just advertising for rho mobile, I was expecting a serious review

    ReplyDelete
  17. Ok ok so at last, found the book author's blog!
    A question : how much Ruby do I need to know in order to fully take advantage of this Rhodes thingy?

    ReplyDelete
    Replies
    1. @Mark: I you are from programing background and know then the basic concepts like OOP, methods, array, hash etc then you can lean ruby in 1 day. You can read little book of ruby or learn by http://rubymonk.com/
      After that if you are familier with MVC then Rhodes will be very easy to go.

      Delete
  18. kutirtech is mentioned in rhomobile.com/resources and also your name and that you provide free training. Is that true? If yes, how to avail it?

    ReplyDelete
  19. yes right. That training was organize on large scale and sponsor by Kutir and facilitated by me. If this happen next time I will surly send you the mail or message. You can add me on linkdin http://www.linkedin.com/pub/abhishek-nalwaya/13/963/213

    ReplyDelete
  20. Added you on linkedin.
    Thanks for your offer.

    ReplyDelete
  21. What a Great Article it its really informative and innovative keep us posted with new updates.
    its was really valuable.I must admit it, terrific job on this blog,
    I’ll be sure to check back again real soon.


    Android Application Development

    ReplyDelete
  22. What a Great Article it its really informative and innovative keep us posted with new updates.
    its was really valuable.I must admit it, terrific job on this blog,
    I’ll be sure to check back again real soon.

    Mobile WebsiteDevelopment

    ReplyDelete
  23. This comment has been removed by the author.

    ReplyDelete
  24. Hi,

    Very interesting comparison, thank you.
    All these frameworks evolve very quickly so it's hard to keep an up to date comparison but I think you should include a very interesting challenger to your list: Sencha Touch 2.

    I wrote about it if you want a quick introduction:
    http://www.dallagnese.fr/computers-it/mobile-applications-in-html5-css3-with-sencha-touch/

    Cheers,

    Thomas

    ReplyDelete
  25. Nice posting, thanks for sharing with us. Your blog is great and helped me feel better knowing about the phonegap development. Thanks again!

    ReplyDelete
  26. Appcelerator would like you believe that Titanium compiles to native code. The claims on their website are deliberately misleading. But it's slow interpreted JavaScript - same as PhoneGap and the rest - with a JavaScript to native bridge that calls native code to manipulate native UI. I'd agree that RhoMobile and Ruby are better than the web-app wrapper alternatives. JavaScript isn't even a proper language as far as I'm concerned. But as well as Ruby, I like C++, Java, and AS3 - so cross-platform mobile development I like MarmaladeSDK and Adobe AIR.

    ReplyDelete
  27. i'm new to Rhomobile..My question is can we extend API like payment gateways,barcode recognizers(i knw that there is an in-built barcode recognizer in rhomobile,just to make sure),maps etc in free of cost,ie without using rhosync and rhoconnect and use that API(without purchasing license)????

    ReplyDelete
  28. The native performance is wonderful. That’s why I love Titanium. The only bad thing I’ve come to notice. You can’t do any kind of image processing. So if you’re thinking about building the next Instagram, don’t use Titanium. Even though you have complete access to iOS’/Android’s camera API, you can’t heavily edit the image… And the same goes for editing audio/video. So in the end: Titanium can only create data-driven applications.

    Saurabh from Titanium Mobile Development

    ReplyDelete
  29. I see a variety of issues with Rhomobile. For shops that have already made a large investment in C# .NET Visual Studio - especially those who are running rugged devices with Windows compact framework versions - they are now forced to learn a new language - Ruby. If an enterprise wants to modernize their rugged handhelds that are running Windows 6.5 CF for instance they will have to rewrite the entire application in Ruby. Rhosync is their proprietary data synchronization layer. Many large enterprises are embracing RESTful disconnected transactional integrity, an approach that is validated by the success of companies like Mashery and Apigee. It does not appear that Rhomobile has a way to abstract the UI for different devices meaning that a different UI for each target platform would need to be developed.

    ReplyDelete
  30. Well, you can go the RhoElements route, but you'd need to learn JS at least.

    AsyncHTTP can be used with RESTful services in lieu of Rhosync (now called Rhoconnect).

    BTW, Im not from Moto :)

    ReplyDelete
  31. How to Choose Hybrid Apps Framework for your App

    The Next-Generation of Apps for the Mobile Technologies is the Hybrid Apps. Why you have to use the Hybrid Apps for the Business nor going to use Native Apps Development? Some of the Technologies, Frameworks and library benefits to do fast development and get the lead for your Business with low budget Apps.

    ReplyDelete