Adam Blum, adam@rhomobile.com  Best Practices  for Enterprise Smartphone Development
iPhone has changed the game <ul><li>All users now  want  to run apps on their smartphones </li></ul><ul><li>But  </li></ul...
Avoid Typing <ul><li>Pick reasonable default settings </li></ul><ul><ul><li>number of records, objects to be shown, langua...
What Not To Do: KinitoPro  all of this just to get to your accounts?  why not just use reasonable defaults?
Context Sensitivity <ul><li>take users right to the data  </li></ul><ul><ul><li>common metaphor: list of records at top le...
iPivotal
TrackR (Koombea)
Local Data <ul><li>make it possible to use the app without connectivity </li></ul><ul><li>insure that user’s work on trans...
Handle Varying Schemas <ul><li>Large enterprise apps (CRM, ERP) rarely have fixed/”out of box” schema </li></ul><ul><li>Ne...
What To Do:  RhoLogic for SugarCRM (written with Rhodes) take people to their objects right away. summarize data on the de...
Limit Objects/Functions <ul><li>ideally one main object types </li></ul><ul><li>no more than two or three “dependent objec...
IFusion no local data (sync so you can access contacts when offline)? no save to local PIM contacts?
InfusionSoft written with Rhodes.  data is synced and available offline.  robust set of capabilities on each contact (tags...
Device Capabilities <ul><li>smartphones have senses: sight, hearing, touch </li></ul><ul><li>don’t do myopic web ports </l...
What To Do: Nationwide Claims App great use of device capabilities (GPS, camera) to record accident info. free on App Store
Rapid Iterations <ul><li>deliver small identifiable features frequently </li></ul><ul><li>use a toolset that enables rapid...
Rhodes Architecture RhoConnect App Integration Server your app code RhoSync  client ORM (Rhom) Rhodes components Ruby exec...
Handle Your Whole Userbase <ul><li>Android and iPhone have great growth </li></ul><ul><li>But BlackBerry and Windows Mobil...
Summary <ul><li>Avoid typing </li></ul><ul><li>Context sensitivity </li></ul><ul><li>Leverage the device </li></ul><ul><li...
Upcoming SlideShare
Loading in...5
×

Mobile Computing Summit: Best Practices in Enterprise Smartphone Apps

1,208

Published on

Describes best practices from writing smartphone apps in the enterprise.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,208
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mobile Computing Summit: Best Practices in Enterprise Smartphone Apps

  1. 1. Adam Blum, adam@rhomobile.com Best Practices for Enterprise Smartphone Development
  2. 2. iPhone has changed the game <ul><li>All users now want to run apps on their smartphones </li></ul><ul><li>But </li></ul><ul><ul><li>writing native apps that run at the edge is quite different than web apps </li></ul></ul><ul><ul><li>Tools for mobility are mostly the same as 20 years ago </li></ul></ul><ul><ul><li>Approaches to mobile development don’t incorporate modern software engineering </li></ul></ul>
  3. 3. Avoid Typing <ul><li>Pick reasonable default settings </li></ul><ul><ul><li>number of records, objects to be shown, languages, sort orders </li></ul></ul><ul><li>Don’t have any setup process EVER </li></ul><ul><ul><li>first screen should be functional </li></ul></ul><ul><li>Use information on device to pick </li></ul><ul><ul><li>locations </li></ul></ul><ul><ul><li>people </li></ul></ul>
  4. 4. What Not To Do: KinitoPro all of this just to get to your accounts? why not just use reasonable defaults?
  5. 5. Context Sensitivity <ul><li>take users right to the data </li></ul><ul><ul><li>common metaphor: list of records at top level </li></ul></ul><ul><ul><li>or a map with objects </li></ul></ul><ul><ul><li>using location, time, user info to select </li></ul></ul><ul><li>but no top level lists to select the right object type/function </li></ul><ul><li>settings as an option on the tab bar </li></ul>
  6. 6. iPivotal
  7. 7. TrackR (Koombea)
  8. 8. Local Data <ul><li>make it possible to use the app without connectivity </li></ul><ul><li>insure that user’s work on transactions (Create/Update/Delete) is never lost </li></ul><ul><li>automatically cache (through database or otherwise) frequently used data </li></ul>
  9. 9. Handle Varying Schemas <ul><li>Large enterprise apps (CRM, ERP) rarely have fixed/”out of box” schema </li></ul><ul><li>Need to handle varying builtin objects (account, contact, task, etc.) </li></ul><ul><li>Plus handle inevitable changes to those schemas </li></ul><ul><li>one reason why apps for CRM/ERP are rare on the App Store </li></ul>
  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
  11. 11. Limit Objects/Functions <ul><li>ideally one main object types </li></ul><ul><li>no more than two or three “dependent objects” </li></ul><ul><li>limit features/functions/actions on objects </li></ul>
  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 <ul><li>smartphones have senses: sight, hearing, touch </li></ul><ul><li>don’t do myopic web ports </li></ul><ul><li>you can probably use: </li></ul><ul><ul><li>GPS </li></ul></ul><ul><ul><li>mapping </li></ul></ul><ul><ul><li>PIM contacts </li></ul></ul><ul><ul><li>camera </li></ul></ul>
  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 <ul><li>deliver small identifiable features frequently </li></ul><ul><li>use a toolset that enables rapid iteration </li></ul><ul><ul><li>Objective C might not be the best one for that </li></ul></ul>
  17. 17. Rhodes Architecture RhoConnect App Integration Server your app code RhoSync client ORM (Rhom) Rhodes components Ruby executor HTML templates model controller model HTML templates controller mobile device Backend app We provide: Rhodes app generator Backend app Device capabilities smartphone device You write:
  18. 18. Handle Your Whole Userbase <ul><li>Android and iPhone have great growth </li></ul><ul><li>But BlackBerry and Windows Mobile have enterprise installed bases that aren’t going away </li></ul><ul><li>Windows Phone 7 looks good </li></ul><ul><li>Symbian is still huge worldwide </li></ul><ul><li>Meego may get used for tablets </li></ul><ul><li>Samsung makes great phones and now have Bada OS </li></ul>
  19. 19. Summary <ul><li>Avoid typing </li></ul><ul><li>Context sensitivity </li></ul><ul><li>Leverage the device </li></ul><ul><li>Support all devices </li></ul><ul><li>Synchronized local data </li></ul><ul><li>Handle varying metadata </li></ul><ul><li>Rapidly iterate (use a framework) </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×