Pros
- Code reusable.
- Easily accessible to plugins.
- Easy for web developers.(HTML5, CSS3)
- Reduce development cost.
- Support for enterprise and cloud services.
- Easy Deployment.
Cons
- Might not support every features of OS or device.
- Can’t Always Use Your Own Tools: Most frameworks want users to use their own development tools and suites, and that can mean that a developer has to forgo his or her own IDE preferences and use something else. PhoneGap (which Adobe acquired last summer) is different in this regard; in that it uses the native IDE for each platform it supports (XCode for iOS, Eclipse for Android, Visual Studio for Windows Phone).
- High end graphics and 3D support is often limited.
- Vendor lock-in : Most of the cross-platform frameworks build using their own subsets of JavaScript, which means that if you want to switch to another platform, that code you wrote before is likely not going to be reusable without a lot of work.
Rhodes:
- Open source Ruby based framework.
- Achieves cross-platform by providing a runtime environment wrapped around the native app.
- The runtime VM is ported to different platforms, abstracts the communication between device and app.
- MVC development pattern. Only framework that supports MVC.
- IPhone, Android, RIM, Windows Phone 7 windows mobile (4 platforms)
- Object relational mapper component(Rhom)
- Mini ORM(object relational mapper).
- High level way to create local database easier to program to.
- Database is SQLite on all platforms except BlackBerry where it is HSQLDB.
Supports two model types: Property bag/ Fixed Schema. - Property Bag: all data stored in single table using object-attribute-value pair( Entity-Attribute-Value model).
- Fixed Schema: each model will have separate table and each attribute exists as a column in the table.
- UI – HTML, JavaScript, CSS, JavaScript UI frameworks.
RhoStudio? http://docs.rhomobile.com/rhostudio.tutorial
installs all Rho products, and provides an IDE for Rhodes and RhoConnect development.
- Eclipse installation for developing Rhodes Application.
- Installs Rhodes development suite; Rhodes, RhoConnect.
- Generate Rhodes application(s).
- Generate Rhodes Model(s) and associated Controllers and View templates.
- Generate RhoConnect applications.
- Generate RhoConnect source adapters.
- Manage build configuration (build.yml and rhobuild.yml) using the RhoStudio/Eclipse UI.
- Build, run, and debug your application in the RhoSimulator.
- Build and run your Rhodes application on iPhone, Android, Windows Mobile, and BlackBerry simulators and devices.
- See the build and application execution logs in the Eclipse output console.
RhoConnect? http://docs.rhomobile.com/rhoconnect/tutorial
- Synchronization Framework.
- REST API.
- Administration web console.
- Asynchronous Job System.
- RhoConnect requires that you write a small amount of code for the query, create, update and delete operations of your particular enterprise backend. You can write this code in Ruby as a RhoConnect source adapter, or you can write this code as a RhoConnect plugin application written in Java, .NET, or Ruby on Rails.
- Build online without installing iPhone sdk locally.
- Can build complex codes from windows machine for iphone.
- Rhohub cloud platform lets developers to work on both Mac and windows for all mobile platforms.
- Option to convert app to any mobile platform, online.
- Handles all the work of connecting to enterprise back-end applications.
- The alternative that is done with most iPhone Objective C or other framework-based apps is to do all the code to connect to backend applications yourself: connecting to the backend web service in SOAP or REST, retrieving the data as XML or JSON, parsing the data and populating and managing the local device database. Objective C developers tell us that they spend more than 50% of their app code on these tasks. RhoSync removes all of this effort.
Reference
http://www.rhomobile.com/blog/modern-app-development-goodness-for-native-apps-what-rhodes-offers-that-no-other-framework-or-underlying-sdk-does/
Phonegap
- Developed by Nitobi now acquired by Adobe.
- Standards-based, open-source development framework for building cross-platform mobile apps with HTML, CSS and JavaScript for iPhone/iPad, Google Android, Palm, Symbian, BlackBerry, Windows Mobile and more.
- Supports 7 mobile OS – Apple iOS, Android, WebOS, BlackBerry, Windows, Symbian and bada.
- Development environment. DreamWeaver CS5.5 has built-in PhoneGap framework. IDE like Eclipse and XCode supports PhoneGap.
- MVC
- Model = PhoneGap JS API + offline storage/cache
- Controller = JavaScript
- View = HTML + CSS - HTML for layout ( Better yet HTML5 ).
- JavaScript for accessing device functionality.
- CSS for rich look and feel. ( Better yet CSS3 ).
- Phonegap apps are just webpages that access device functionality.
- Rich UI. Supports javascript frameworks.
- Images are usually loaded from the device, so it's quick.
- Interaction is quick if you use touch events instead of click events.
- Architecture of App
- Server component.
- Javascript calls the server via XHR to get the JSON data.
- Javascript can stored retrieved data in SQLite database for offline access. Can cache images.
- Different from mobile website?
- Mobile websites are domain restricted to their origin url and cannot access other sites/APIs.
- PhoneGap applications are loaded from the file:// protocol so server requests are NOT restricted.
- With PhoneGap you can build powerful mashups accessing multiple services.
Limitations
- Complex games, intensive graphics. Use OpenGL for that, not PhoneGap.
- For slower phones (not iPhone, not Nexus One, not Xperia X10), PhoneGap apps using the latest interactive Google Maps APIs tend to be slow. Static maps OK, though.
http://savagelook.com/blog/portfolio/8-things-to-know-about-phonegap
http://geekyfry.com/topics/tech-it/smartphones/phonegap/
http://savagelook.com/blog/portfolio/a-deeper-look-at-appcelerator-and-phonegap
http://www.slideshare.net/inouemak/rhodes-and-phone-gap
http://groups.google.com/group/phonegap/browse_thread/thread/f23fedaa06abd3b8/2c5005410e7da4e0
Appcelerator
- while using the familiar JavaScript syntax, developers will also have to learn the Titanium API, which is quite different from familiar web frameworks such as jQuery.
- is sometimes compared to Adobe Air for developing desktop applications.
- Titanium Studio is a full open standards IDE that is derived from Aptana Studio.
- Offers cloud based services for packaging, testing and distributing software applications developed on the Titanium platform.
- Supports HTML,CSS, Javascript on all platforms and PHP, Ruby, Python for desktop platforms.
- Supports various javascript frameworks.
- API access to UI components and geolocation, maps, accelerometer.
- Extensibility through open interfaces, licensing, support for other scripting languages, media codecs.
jQuery Mobile = Unified UI system for myriad mobile devices. (layout/animation/interactivity)
Phonegap = library to access native hardware APIs.
jQuery Mobile + Phonegap = UI + Native Functionality.
SenchaTouch and JQueryMobile are both javascript mobile UI libraries. Their approaches to development and device support are very different, but both can be used to construct the UI for mobile apps and should be considered peers.
You could also consider other such libraries such as YUI3, dojo or even with appropriate licensing - Enyo from Palm/HP.
Phonegap can be used with any of these UI libraries to package the web.
UI for delivery as native apps with full access to phonegap APIs.