Rhomobile cross-platfrom Lecturer Dr. Trần Ngọc Minh Students Nguyễn Hảo 51000880 Vũ Đức Hùng 51001360 Nguyễn Văn Hiễn 51001042
Outline What is RhoMobilie? MVC model Demo
What is RhoMobilie? What is cross-platform development? write once, run everywhere Should you design for multiple platform or not? Greater Reach Easy Marketing One Instead of Many Uniform Look and Feel Reduced Development Costs User Interaction Platform Integration Loss of Flexibility
The Rhomobile Rhomobile Inc. is a computer software company that provides leading products for building the new generation of mobile applications. It offers an open-source Ruby-based mobile development framework for business mobility solutions through its four major products: Rhodes Rhosync RhoHub RhoGallery
The Rhomobile It enables software programmers to build straightforward applications for mobile devices using HTML and Ruby instead of proprietary languages such as Objective-C or Java. Currently, the Rhodes framework supports development for the iphone, Windows Mobile, Google Android, Symbian, and BlackBerry operating systems.
Why Rhodes? Rhodes is a cross platform mobile application framework used to build native apps which runs in different smartphones Rhodes supports iphone, Android, Windows Mobile, Research in Motion (BlackBerry), Symbian, and Windows Phone 7 Unparalleled developer productivity Synchronized data and easy app integration One codebase for all smartphones
Rhodes features
Why Rhodes for your customer? Your customer is always on the go Most of your customers own a smartphone Provide Real Time updates Provide Rich Media and Interactive User experience
Rhodes Architecture You write: model your app code model Rhodes app generator controller model HTML templates model source adapter Backend app controller HTML templates source adapter Backend app We provide: Rhodes components Ruby executor Device capabilities ORM (Rhom) RhoSync client RhoSync App Integration Server smartphone device Backend app
Rhosync mobile app integration process Easiest way to integrate with enterprise applications Fastest most scalable mobile sync server ever First Enterprise sync server to use smartphones Only metadata sync capability in existence
RhoHub First and only Development as a Service for mobile More than 15,000 developers signed up in the last year ~100 more per day Hosted development WRITE APPS FOR IPHONES FROM WINDOWS Web-based IDE for ease of use Build for all smartphones online no need to install SDKs Hosted runtime No need to set up RhoSync server Collaboration Work with other developers on same project over the web
RhoGallery RhoGallery provides a hosted mobile app management solution. It enables users to launch all of their important enterprise apps from a single place RhoGallery consists of a management console for "app galleries" on RhoHub RhoGallery makes it easy to expose those apps to their users RhoGallery handles inviting the users and determining the appropriate downloads to provide to them.
The COMPLETE Next Generation Enterprise Mobility Solution
Summary: Why Rhomobile? Rhodes Runs Everywhere Write once run on every smartphone Only MVC framework for smartphones Use web development skills to write NATIVE apps Only framework with sync Enables smartphone usage in the enterprise Only Development as a Service for mobile Write apps without installing SDKs locally Only Framework that is Enterprise Security Compliant Encrypt data on the device, remote wipe the device, secure authentication etc.
Rhodes vs. Competition Only one that supports all devices Only one with synchronized data Only MVC framework First Ruby on the device First and only hosted development service for mobile
Rhodes FAQs/Facts Rhodes is Performant Rhodes apps are faster because of sync Actually faster on Android Rhodes is Native Rhodes uses several native controls (date/time picker, native mapping) With native extensions any Objective C (or C, C++) code can be added to Rhodes Rhodes is Acceptable on the App Store Rhodes has no runtime or interpreter Rhodes is Beautiful Rhodes plus JQTouch, Sencha Touch, JQuery actually looks better than native, taking advantage of styling libraries
MVC Model view controller is: a software pattern for implementing user interfaces. It divides a given software application into three interconnected parts: Model, Controller, View. so as to separate internal representations of information from the ways that information is presented to or accepted from the user.
MVC
MVC Advantages: Professional Clarity of design Multiple views Powerful user interfaces
MVC Disadvantages: Knowledge on multiple technologies are required. Data Transfer Object.
How Rhodes stores data Property Bag: is the default option available. the entire data is stored in a single table with a fixed number of columns.
Property Bag The table contains the following columns: Source_id attribute object value update_type
Property Bag Advantages It is simple to use, attributes are not required to be specified before use. Don't need to migrate data if we add/remove attributes. Disadvantages Size is three times bigger than the fixed schema Slow while synchronizing.
Fixed Schema model Fixed Schema model The developer is entirely responsible for the structure of the SQL schema. When you add or delete some properties, or just change app logic you may need to perform data migration database reset.
Advantages Smaller size, you can specify index for only required attributes. Faster sync time than Property bag. Disadvantage You have to support all schema changes.
Demonstration Install: JDK 6. RhoStudio Suite 4.1.0. Download: SDK. NDK.
Demonstration Environment: In RhoStudio Preferences, open RhoMobile and check that the path is set to your JDK installation.
Demonstration In Android in RhoMobile (Preferences), check the path is set to your SDK and NDK tools.
Demonstration Set language for non-unicode programs: Control Panel->Region->Administrative->Change system locale In Region Settings dialogue, choose English(US) for system locale.
Demonstration Let s get started
Demonstration Model: <model_name>.rb Controller: <model_name>_controller.rb View: (templates) *.erb (embedded ruby)
Demonstration Use <% ruby code here %> to embed the Ruby code into HTML code.
Resources http://docs.rhomobile.com Tutorials Developer References http://rhomobile.com/products/rhodes http://rhohub.com info@rhomobile.com Rhomobile Google Group - http://groups.google.com/group/rhomobile
Q&A