Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Advanced iOS Engineering - The Junction Talk

2,472 views

Published on

Slides from a talk our iOS Product Manager, Nadav Wizman, gave at Advanced iOS Engineering event at The Junction (@thejunction32).

Read the blog post: http://blog.onavo.com/?p=443

Published in: Technology
  • Be the first to comment

Advanced iOS Engineering - The Junction Talk

  1. 1. Does WebApp come Native to me? <ul><li>Nadav Wizman </li></ul><ul><li>iOS Development Leader </li></ul><ul><li>[email_address] </li></ul>The Junction Advanced iOS Engineering 28 July, 2011
  2. 2. Agenda <ul><li>Onavo </li></ul><ul><li>OnavoApp ’ s Evolution </li></ul><ul><li>The Challenge </li></ul><ul><li>Possibilities </li></ul><ul><li>The Spectrum </li></ul><ul><li>Conclusion </li></ul><ul><li>My Thoughts </li></ul><ul><li>Q & A </li></ul>
  3. 3. So, who is Onavo? Onavo puts smartphone and tablet users in control of their mobile data usage
  4. 4. POC BETA WebApp Launch 05/10 02/11 04/11 WebApp Container + Native
  5. 5. <ul><li>App launched 3 months ago. </li></ul><ul><li>Winner @ The Next Web Start-up Rally </li></ul>OnavoApp ’ s evolution
  6. 6. The Challenge A GOOD product Developer Easy-to-make. Impressive. Familiar. Fast-to-make. As good as others. Pretty. Functional. Best. Worth money. Cross platform. Functional. Wide. Easy-to-update..... Gorgeous. Really-pretty. Free. Easy-to-use. Valuable. Easy-to-install. Cheap. Cool. Recommended by Apple. Common. Unique. In The AppStore... User
  7. 7. The Challenge Categories of “ A GOOD product ” <ul><li>UX </li></ul><ul><li>Native Abilities </li></ul><ul><li>Distribution </li></ul><ul><li>Dynamic </li></ul><ul><li>Cross Platform </li></ul><ul><li>Development </li></ul>
  8. 8. The Possibilities WebApp Container Native
  9. 9. UX “ A GOOD product ” categories Pretty good Still, lacks in loading time and responsiveness Amazing ! Also.. the users expect nothing less. Container Native WebApp
  10. 10. UX “ A GOOD product ” categories Pretty good Still, lacks in loading time and responsiveness Amazing ! Also.. the users expect nothing less. Container Native WebApp I highly recommend using advanced, well-established, amazing frameworks like Sencha Touch or Appcelerator ’ s Titanium Mobile
  11. 11. Native Abilities “ A GOOD product ” categories Nope. none. nada. (some pseudo abilities, but not really) Fully. Yes we can! Container Native WebApp
  12. 12. Native Abilities “ A GOOD product ” categories Nope. none. nada. (some pseudo abilities, but not really) Fully. Yes we can! Container Native WebApp * Reminder: App Purchase / In-App Payments are also a Native Abilities
  13. 13. Distribution “ A GOOD product ” categories Yes we can! Nope. none. nada. 1,000,000 WebApp users? i don ’ t see it Yes, it ’ s crowded, yes, it ’ s noisy, and you have to work hard to get noticed - but it ’ s still THE go-to place for users looking for new apps * Must read Apple ’ s guidelines. Container WebApp Native
  14. 14. Distribution “ A GOOD product ” categories Yes we can! Nope. none. nada. 1,000,000 WebApp users? i don ’ t see it Yes, it ’ s crowded, yes, it ’ s noisy, and you have to work hard to get noticed - but it ’ s still THE go-to place for users looking for new apps * Must read Apple ’ s guidelines. Container WebApp Native There are nice solution to manage iOS native beta distribution like TestFlight .
  15. 15. Dynamic “ A GOOD product ” categories Change it. now bring it back. now put something new.. Hardly. Apple ’ s approve is required on each-and-every update Like a charm Container Native WebApp
  16. 16. Cross Platform “ A GOOD product ” categories Well. no. (keep in mind, iOS is a range of devices YES, with a bit more effort As far as possible Container Native WebApp
  17. 17. Cross Platform “ A GOOD product ” categories Well. no. (keep in mind, iOS is a range of devices YES, with a bit more effort As far as possible Container Native WebApp Frameworks like Sencha , PhoneGap provide very impressive Cross-Platform. appcelerator ’ s Titanium Mobile translates your web code into different, cross-platform native Apps
  18. 18. Development Tools, Community & Support “ A GOOD product ” categories Amazing development, design, debugging tools. VAST amount of developers. A bit of both. major part is still developed as Web. Improving tools & frameworks, substantial developers community... until you get stuck *stackoverflow.com is you friend Container Native WebApp
  19. 19. In a nutshell WebApp <ul><li>Offline! </li></ul><ul><li>CACHE-MANIFEST. </li></ul><ul><li>Local Storage/DB. </li></ul><ul><li>Graphics / effects. </li></ul><ul><li>Touch Events. </li></ul><ul><li>Rich Content. </li></ul><ul><li>Completely Cross-platform. </li></ul>
  20. 20. In a nutshell Offline WebApp Cache Storage CACHE MANIFEST /main/home /main/app.js /settings/home /settings/app.js http://img.example.com/logo.png http://img.example.com/check.pn g http://img.example.com/cross.p ng var db = openDatabase(&quot;Database_Name&quot;, &quot;Database_Version&quot;); database.executeSql(&quot;SELECT * FROM thejunction&quot;, function(result1) { database.executeSql(&quot;DROP TABLE thejunction&quot;, function(result2) { alert(&quot;My second database query finished executing!&quot;); }); }); localStorage.setItem( ‘ userName ’ , ‘ TheJunction ’ ); alert( “ Hello “ + localStorage.userName); localStorage.removeItem( ‘ userName ’ );
  21. 21. In a nutshell JS-Native communication Container Native code can set JS variables and call it ’ s functions JS code can trigger Native code callback (with params)
  22. 22. Conclusions Lots of Questions to be asked.
  23. 23. My Thoughts Best practices <ul><li>Read the Guidelines </li></ul><ul><li>In-App Analytics </li></ul><ul><li>Know your competition </li></ul><ul><li>Treat BETA and product differently </li></ul><ul><li>iOS is not just iPhone 4 </li></ul><ul><li>Go Native </li></ul>
  24. 24. Q & A Nadav Wizman [email_address] @nadavwiz

×