2. Background
iPhone and Android have changed the game
All users now want to run apps on their
smartphones
But
writing native apps that run at the edge is quite
different than web apps
Tools for mobility are mostly the same as 20 years ago
Approaches to mobile development don’t incorporate
modern software engineering
3. 3
What’s Different v. Web Apps
focus on single tasks
less data types
leverage the device
3
4. 4
Context Sensitivity
take users right to the data
common metaphor: list of records at top level
or a map with objects
using location, time, user info to select
but no top level lists to select the right
object type/function
settings as an option on the tab bar
4
7. 7
Local Data
make it possible to use the app without
connectivity
insure that user’s work on transactions
(Create/Update/Delete) is never lost
automatically cache (through database or
otherwise) frequently used data
7
8. 8
Handle Changed/
Dynamic Schemas
Enterprise apps (especially CRM and
ERP) NEVER use the default schema
But apps on the App Store are all written
to use the default schema
How do you handle this if you want to ship
enterprise apps on the App Store?
8
9. 9
What Not To Do: KinitoPro
all of this just to get to your accounts?
why not just use reasonable defaults?
10. 10
What To Do:
RhoLogic for SugarCRM
(written with Rhodes)
take people to their objects right away. summarize data on the device
with dashboards
12. 12
IFusion
no local data (sync so you can access contacts when
offline)? no save to local PIM contacts?
13. 13
InfusionSoft
written with Rhodes. data is
synced and available offline.
robust set of capabilities on each
contact (tags, followup sequence,
history, action set). save to PIM
(address book)
14. 14
Device Capabilities
smartphones have senses: sight, hearing,
touch
don’t do myopic web ports
you can probably use:
GPS
mapping
PIM contacts
camera
14
15. 15
What To Do:
Nationwide Claims App
great use of device capabilities
(GPS, camera) to record accident
info. free on App Store
16. 16
Rapid Iterations
deliver small identifiable features
frequently
use a toolset that enables rapid iteration
Objective C might not be the best one for that
16
17. 17
Rhodes Architecture
17
RhoSync
Server
RhoSync
Server
your app
code
RhoSync
client
RhoSync
client
ORM (Rhom)ORM (Rhom)
Rhodes components
Ruby
executor
Ruby
executor
HTML
templates
HTML
templates
model
controllercontroller
model
HTML
templates
HTML
templatescontrollercontroller
Backend
app
Backend
app
mobile device
source
adapter
source
adapter
source
adapter
Backend
app
Backend
app
model
model
We provide:We provide:
You
write:
Rhodes
app
generator
Rhodes
app
generator
Backend
app
Backend
app
Device
capabilities
Device
capabilities
smartphone device
18. 18
Address Your Full Userbase
Enterprises are ALWAYS heterogeneous
And becoming moreso every day
(Android, Meego, Windows Phone 7)
Your app will never be an enterprise
standard unless you reach all those
devices
18