Building Mobile Apps with Rhodes - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Building Mobile Apps with Rhodes

Description:

0.1 operational on iPhone, Windows Mobile and RIM Blackberry today ... 5) User downloads runner/ app for device. enterprise. app backend. 2) SMS sent to user with ... – PowerPoint PPT presentation

Number of Views:67
Avg rating:3.0/5.0
Slides: 20
Provided by: adam76
Category:

less

Transcript and Presenter's Notes

Title: Building Mobile Apps with Rhodes


1
Building Mobile Apps with Rhodes
Adam Blum adam_at_rhomobile.com
2
The Rhomobile Mission
Mobilize enterprise apps cost-effectively
with a great user experience.
  • provide the high level productivity and
    portability of web programming
  • with device optimization and offline capability
    of native mobile apps
  • open source for rapid adoption by developers

3
Platform Overview
  • Rhodes
  • microframework for building locally executing
    natively optimized mobile apps
  • Developers run app generator for their objects of
    interest and then edit HTML templates
  • Contains first mobile Ruby implementation
  • RhoSync
  • Sync focused on web service data (needed in the
    age of SaaS)

4
The Rhodes Microframework
  • a minimalist Ruby implementation for mobile
    devices
  • a Model-View-Controller "microframework" that
    consists of a directory structure and file naming
    convention. Writing to this framework primarily
    consists of editing a set of ERB templates for
    creating HTML to display data
  • the RhoSync synchronization engine client
  • a simple object relational manager (ORM) called
    Rhom
  • a web server which is installed on the mobile
    device and runs locally
  • The RhoGen app generator

5
Sample Rhodes Apps
  • Rhomobile provides small set of enterprise apps
  • CRM - subset of SugarCRMs capabilities syncing
    to opportunities, contacts to device
  • Field service Siebel field service
  • third party apps
  • TrailGuide (Basecamp) will release in a couple
    months
  • small number of vendors will accept GPL license
  • their source will be published on rhohub.com
  • highlight best of breed examples in several
    verticals field service/MRO, medical, scientific
  • http//rhomobile/contest

6
Building a Rhodes App
  • Get your data (RhoSync)
  • Generate a sync source
  • Define your sync source adapter code
  • Test it from the web page
  • Generator your app (RhoGen)
  • Generate an app (in the Rhodes \apps subdirectory
    for now)
  • Generate a model and scaffold code
  • Develop your app (Ruby/HTML editor of choice)
  • Edit your model controllers
  • Edit your HTML templates (ERB file)
  • Build, test, deploy (development environment for
    device)
  • Build your app
  • Test your app
  • Make available for download (or post to App
    Store)

7
RhoSync Architecture
RhoSync Server
Siebel
SOAP
SalesForce
Rhodes runtime
SOAP
your app
SugarCRM
SOAP
BaseCamp
REST
other app backends
REST
8
Defining a Rhosync Source
  • Provide a Source Adapter class with
  • login- authentication code for the backend
  • query - retrieve or read's objects from the
    backend source
  • sync - take apart these objects and put them
    into a "property bag
  • create
  • update
  • delete
  • logoff not always necessary

9
Generated Source Adapter Class
class ltnamegt lt SourceAdapter def
initialize(source) super end def login
TODO Write some code here end def query
TODO write some code here end def
sync usually the generic base class sync
does the job super end def
create(name_value_list) TODO write some
code here end def update(name_value_list)
TODO write some code here end def
delete(name_value_list) TODO write some
code here if applicable end def logoff
TODO write some code here if applicable
end end
10
Sample Rhosync Source Query
select_fields 'name','case_number','priority','
status','type','description','resolution'
result client.get_entry_list(session_id,'Cases'
,'','case_number',0,select_fields,'10000',0)
11
Rhodes Architecture
Rhodes app
RhoSync server
model
model
HTML (ERB) templates
controller
Source adapter
app backend
model
HTML (ERB) templates
controller
model
Source adapter
app backend
Rhodes runtime
ORM(Rhom)
browser control
RhoSync client
web server
synced local data (SQLite, PerstLite)
Ruby interpreter
mobile device
12
Generate Your Rhodes App
  • Generate your app
  • rhogen app accountapp
  • Creates
  • application.rb
  • index.html
  • Generate your model
  • cd accountapp
  • rhogen model account http//rhosync.rhohub.com/sou
    rces/1 1 name,industry
  • Creates
  • controller.rb
  • config.rb
  • index.erb
  • new.erb

13
Edit A View
ltform title"Edit Account" class"panel"
id"account_edit_form" method"POST"
action"lturl_for('update')gt"gt ltfieldsetgt
ltinput type"hidden" name"id"
value"lt_at_account.objectgt"/gt ltdiv
class"row"gt ltlabelgtName lt/labelgt ltinput
type"text" name"accountname"
value"lt_at_account.namegt"/gt lt/divgt ltdiv
class"row"gt ltlabelgtIndustry lt/labelgt
ltselect name"accountindustry"gt
lt_at_industries.each do igt ltoption
valueltigt ltif _at_account.industryigt
selectedltendgtgtltigt lt/optiongt
ltendgt lt/selectgt lt/divgt
lt/fieldsetgt ltinput type"submit"
value"Update"/gt lt/formgt
14
Build/Test On Your Favorite Device
15
Platform Status
  • 0.1 operational on iPhone, Windows Mobile and RIM
    Blackberry today
  • Sample apps for SugarCRM and Siebel Field Service
  • All open source
  • github.com/rhomobile
  • rhomobile.lighthouseapp.com
  • 0.2 at end of December
  • Better build process
  • Faster sync
  • Faster startup
  • Symbian
  • Settable source (already checked in)
  • PIM access

16
0.3 Release
  • February 2009
  • RhoVer - vending machine
  • Device capabilities service
  • 1.0
  • Android support

17
Hosted Services
  • Registration
  • Developers
  • Apps
  • Sync
  • Create
  • Test
  • App Creation
  • Generate
  • Edit
  • Download/upload
  • Build and provision
  • Builds
  • Vending

18
RhoVer Over the Air Provisioning
1) user signs up via desktop browser
2) SMS sent to user with download URL
DeviceCap
RhoVer
rhohub.com/vending/yourapp !
3) User hits vending machine for app with
mobile browser
4) Uses DeviceCap (useragent strings/devices) to
send back download link
Download app for your Kogan Agora
5) User downloads runner/ app for device
RhoSync
Your app
enterprise app backend
Rhodes
6) App is running on device
18
19
Why Rhomobile?
  • Declarative tag-based approach (web programming)
    is more productive
  • Rich client against local data much better than
    remote web apps
  • Write it once and it works on all smartphones
  • Open source from the ground up
Write a Comment
User Comments (0)
About PowerShow.com