Rebooting the EU App Economy / Fraunhofer HHI, Berlin, Germany / 13th November 2013 Mark Frawley, Mobile Developer, Jimdo "HTML5 and Native: Pros, Cons, and Small Examples" Mark Frawley is a veteran mobile/web developer with years of experience in mobile, and web development. Recently his interests and work have moved towards mobile (native and web) apps, working with Objective-C/Ruby for the iOS and HTML5 for mobile web platforms. He believes beautifully and thoughtfully designed products are what drive profit margins and value in any company. He was previously lead mobile developer at Hostelworld.
- 1. HTML5 and Native Pros, cons and small examples
2. Me Present: iOS dev @Jimdo Featured by Apple in 40+ countries on initial release incl. Germany + USA Mostly 5 star reviews! 170k+ downloads 3. In the PastLead Mobile Developer @Hostelworld Cross-platform strategy: One small HTML5 codebase, Titanium, PhoneGap, web, some native extensions When we started these apps, mobile was 0.5% of revenue, today it is about 15% (3/4 years later) 4. The Native Nerds HTML5 is just so broken, audio doesnt work, animations are laggy, same origin restrictions, storage restrictions.. The HTML5 Nerds Programming for a closed OS/app ecosystem is so 90s. I want to be in control of my release process. "We are a web company, we should leverage those skills 5. The Users They dont care or even realize whether something is an app or a web app, they DO care about getting the job done, and how painful/painless that experience is. - Me 6. Are Users Stupid?Opponents of the usability movement claim that it focuses on stupid users and that most users can easily overcome complexity. In reality, even smart users prefer pursuing their own goals to navigating idiosyncratic designs. - Jakob Nielsen 7. Native: Pros Not having to say no to our designer all the time ;) Animations are always nice and smooth, no crazy CSS voodoo found via StackOverflow. Apples documentation is amazingly detailed and correct. 8. Native: Pros... Bleeding edge features readily available (blurred backgrounds in iOS7) Threading, networking, audio, 3D graphics, camera, address book, linking to other apps... no restrictions 9. Native: Cons Long development time for features GUI creation tools (Storyboard, Interface Builder) not up to scratch... Native apps crash more (source: Crittercism market analysis) Opaque, sloooow approval process (for iOS) 10. Native: Cons... Being featured wont necessarily make you rich. You just wont believe how much code is needed to do certain things, like display a list. Affiliate referrals are tricky to attribute for iOS (adjust.io) 11. HTML5 Pros Prototyping is fast You can leverage your existing dev teams to some extent, keep a generalist, not specialist culture. If you have a HTML5 mobile app, you have a mobile website for free! Porting between platforms can take days instead of months/years. 12. HTML5 : Pros... Most apps are technically simple, dont require 3D, multiple audio streams. Mobile is > 90% webkit, so testing in Chrome with those fancy web developer tools works well. Remote debugging is also now possible, inspect the DOM, add breakpoints. 13. HTML5 : The cons (Cracks knuckles) Getting stuff to feel native/smooth is hard, requires mobile web specialist knowledge (touchstart, touchmove, touchend), webkit CSS transitions, backface culling switches. If theres a browser bug/change (iOS7 broke a lot), youre boned. Little documentation around performance 14. HTML5 : The Bad You find yourself reinventing the wheel (emulating native view controller transitions, navigation controller stack history, app localisation) The nail in the coffin will come from user reviews: Whats the point in having an app if it does exactly the same as the website? 15. Theres no right answer Use HTML5 if: your app is simple, your interface is going to be mostly custom. Use a native app if: you can afford it you want to add value with native-enabled features (image filters, offline storage etc) 16. But dont take my word for it Lets try building a simple app using both HTML5 and natively for iOS using XCode. git remote add origin https://firlefans@bitbucket. org/firlefans/berlin_demo_html5.git