Advanced iOS Engineering - The Junction Talk

2,329 views
2,263 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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,329
On SlideShare
0
From Embeds
0
Number of Embeds
225
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×