Mobile Computing Summit: Best Practices in Enterprise Smartphone Apps


Published on

Describes best practices from writing smartphone apps in the enterprise.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Mobile Computing Summit: Best Practices in Enterprise Smartphone Apps

  1. 1. Adam Blum, 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>