Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Passion of Lazy - Enterprise Mobile App Des...

Patrick Seda
February 17, 2016

The Passion of Lazy - Enterprise Mobile App Design Patterns

Patrick Seda

February 17, 2016
Tweet

More Decks by Patrick Seda

Other Decks in Technology

Transcript

  1. Enterprise Mobile App Design Patterns The Passion of Lazy DEVNEXUS

     Atlanta  –  February  17,  2016  
  2. Patrick Seda @pxtrick •  Independent Mobile App Architect •  25+

    Years as a Software Professional •  6+ Years in Mobile Development •  Apps: Enterprise to Children’s games
  3. The longer I work on this <Project> ... The less

    effort I Want to spend “Lazy”
  4. Additional Notes and Illustrations Design Excellence Patrick Seda Defining Moment

    (number 1) January 15, 1990: Crash of the entire AT&T long-distance network
  5. PATTERN NAME: Solution: Motivation: Lean Mobile Data Monstrous legacy data

    Create new endpoints specifically targeting your EXACT mobile needs
  6. Additional Notes and Illustrations Design Excellence Patrick Seda Lean Mobile

    Data Legacy Web Service   Application Context   UI for data presentation Data   /endpoint
  7. Additional Notes and Illustrations Design Excellence Patrick Seda Lean Mobile

    Data IMPROVED Web Service   Application Context   /endpoint UI for data presentation /endpoint2 Data  
  8. PATTERN NAME: Solution: Motivation: App Defines Api Impedance mismatch with

    data Define the structure the app wants, then write the API to match
  9. Additional Notes and Illustrations Design Excellence Patrick Seda App Defines

    API IMPROVED Web Service   Application Context   /endpoint UI for data presentation /endpoint2 Data   Defined by the app  
  10. PATTERN NAME: Solution: Motivation: Datasource Strategies Swappable data sources Hide

    data sources behind proxy objects, each of which is a swappable Strategy
  11. Additional Notes and Illustrations Design Excellence Patrick Seda Datasource Strategies

    Application Context   HTTP / XHR Web Service   WS Proxy Mock WS Proxy Mock Data Speakers Processing & UI Render /speakers getSpeakers() getSpeakers()
  12. PATTERN NAME: Solution: Motivation: Tap Mutex Deviations from intended UX

    Prevent users from misusing the UI by disallowing asynchronous events
  13. Additional Notes and Illustrations Design Excellence Patrick Seda Tap Mutex

    Speakers Speaker Details Application Context   Assemble, Create, & Render Navigation Callback
  14. PATTERN NAME: Solution: Motivation: No Harsh Waiting Inconsistent wait times

    Don’t allow activity indicators to exist for short durations, set a minimum lifetime
  15. PATTERN NAME: Solution: Motivation: Client-side Session An app is not

    a website Introduce a session timeout within the app, track UI interaction, not server hits
  16. PATTERN NAME: Solution: Motivation: Lifecycle Gatekeeper OS doesn’t understand your

    app Provide a single entry point for app state events, define dispatch behavior
  17. Additional Notes and Illustrations Design Excellence Patrick Seda Lifecycle Gatekeeper

    PAUSE Handler RESUME Handler Application Context   OS – App State Machine   RESUME Handler Lifecycle Gatekeeper RESUME