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

Don't Fear The Hybrid!

Patrick Seda
October 17, 2014

Don't Fear The Hybrid!

Making Kickass Mobile Enterprise Apps

Patrick Seda

October 17, 2014
Tweet

More Decks by Patrick Seda

Other Decks in Technology

Transcript

  1. Patrick Seda @pxtrick [email protected] •  Lead Mobile Architect @propelics • 

    Titanium Fanboy … Appc Titan •  Creator of Mr. Edison Children’s App
  2. What is Enterprise? •  A Business with multiple divisions • 

    Business strategy is based upon cohesive interaction •  Divisions are financially dependent on each other •  Core set of metrics and measures
  3. What is Enterprise? •  A Business with multiple divisions • 

    Business strategy is based upon cohesive interaction •  Divisions are financially dependent on each other •  Core set of metrics and measures
  4. Reasonable Expectations •  Heightened Security •  Interact with Existing Data

    Sources •  Handle offline / poor connection, intermittent data sync •  App architecture had BETTER support future expansion •  Charts and graphs!
  5. Charting Libraries Google Charts Common Charts : Visual Styling :

    Interactivity : Cost : NOTE : Where: Excellent Excellent Excellent FREE Must be online to use ! (developers.google.com/chart)! !
  6. Charting Libraries D3.js Common Charts : Visual Styling : Interactivity

    : Cost : Where: Excellent Excellent Excellent FREE ! (d3js.org)! !
  7. Charting Libraries Highcharts Common Charts : Visual Styling : Interactivity

    : Cost : Where: Excellent Excellent Excellent Freemium … $390 - $4500 ! (highcharts.com)! !
  8. Charting Libraries gRaphael Common Charts : Visual Styling : Interactivity

    : Cost : Where: Good Limited Limited FREE ! (g.raphael.com)! !
  9. Interaction // Event handler in HTML/JS.! function render(e) {…};! Ti.App.addEventListener(‘renderChart’,

    render);! (In HTML/JS) // Send data to the chart.! Ti.App.fireEvent(‘renderChart’, {…});! (In App) App-to-Chart Communication: with Events
  10. Interaction // Event handler in app.! function chartCB(e) {…};! Ti.App.addEventListener(‘chartTapped’,

    chartCB);! (In App) // Send data to the app.! Ti.App.fireEvent(‘chartTapped’, {…});! (In HTML/JS) with Events Chart-to-App Communication:
  11. Interaction // No event handler, just the method to render

    data.! function render(chartInfo) {…};! (In HTML/JS) // Send data to the chart.! var data = JSON.stringify(chartInfo);! webView.evalJS(‘render(‘ + data + ‘)’);! (In App) App-to-Chart Communication: without Events
  12. The Real World “The WebView is one of the most

    EXPENSIVE components to create in terms of resources” - Titanium docs
  13. The Real World “Including WebViews in your TableViewRows is a

    RECIPE FOR SLUGGISH performance.” - Titanium docs
  14. WebView Event Quiz When is the “load” event fired? A. 

    After the WebView contents have loaded B.  After the WebView contents have rendered C.  Never
  15. WebView Event Quiz When is the “load” event fired? A. 

    After the WebView contents have loaded B.  After the WebView contents have rendered C.  Never
  16. WebView Event Quiz When do the contents start loading? A. 

    After the Window has been laid out B.  After the WebView has been laid out C.  Before the WebView has been laid out
  17. WebView Event Quiz When do the contents start loading? A. 

    After the Window has been laid out B.  After the WebView has been laid out C.  Before the WebView has been laid out * “postlayout” event
  18. WebView Event Quiz When is the WebView laid out? A. 

    Before the Window “postlayout” event B.  After the WebView “focus” event C.  Whenever the OS feels like it
  19. WebView Event Quiz When is the WebView laid out? A. 

    Before the Window “postlayout” event B.  After the WebView “focus” event C.  Whenever the OS feels like it