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.
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 Past
Lead 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 doesn’t work, animations
are laggy, same origin restrictions, storage restrictions.. ”
The HTML5 Nerds
”Programming for a closed OS/app ecosystem is so 90’s.”
“I want to be in control of my release process.”
"We are a web company, we should leverage those skills”
5. The Users
They don’t 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.
8. 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.
● Apple’s documentation is amazingly
detailed and correct.
9. 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
10. 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)
11. Native: Cons...
● Being featured won’t necessarily make you
rich.
● You just won’t believe how much code is
needed to do certain things, like display a
list.
● Affiliate referrals are tricky to attribute for
iOS (adjust.io)
12. 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.
13. HTML5 : Pros...
● Most apps are technically simple, don’t
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.
14. 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 there’s a browser bug/change (iOS7 broke
a lot), you’re boned.
● Little documentation around performance
15. 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: “What’s the point in having an app
if it does exactly the same as the website?”
16. There’s 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)
17. But don’t take my word for it
Let’s 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