SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Why the Web Won’t Do
iOS   Android
iOS   Android   Nokia
iOS   Android   Nokia   WP7
iOS      Android      Nokia   WP7

         The Problem



PalmOS   Blackberry   J2ME    More!
Efficiency
Efficiency




battery
Efficiency




battery    network
Efficiency




battery    network     offline
Efficiency




battery    network     offline
ive OS
Nat
row ser
B

    ive OS
Nat
t library
     Scr ip
J ava

      row ser
    B

        ive OS
   Nat
our app
    Y

            t library
     Scr ip
J ava

      row ser
    B

        ive OS
   Nat
Android                     Qt                    iPhone
    layout.xml,           QML, JavaScript           Core Animation,
     Activities,                                   Interface Builder,
     resources                                        Core Audio,
                                                   UIViewController

  Native/JS layer          Native/JS layer          Native/JS layer

             Application-specific shared code
                      Portable JavaScript & SQL

JS APIs to services      JS APIs to services      JS APIs to services

      Java                 JavaScript              Objective-C
SQLite 3, Facebook,        SQLite 3, C++,           Core Location,
    networking              Facebook,             SQLite 3, Facebook,
                            networking                networking
In your onCreate() or onResume():
mJSCore.setCurrentScreen(this, "EPGScreen");
mJSCore.fireJSEvent("native2jsScreenProxy.onResume()");



In your shared JavaScript:

jsCore.js2nativeScreenProxy.showMoodSelectionScreen_(id);



In your Android Activity:
public void showMoodSelectionScreen_(int eventID) {
   // your Android code here
}
What we’ve learned
What we’ve learned


Porting effort halved
What we’ve learned


Porting effort halved

More robust product
What we’ve learned


Porting effort halved

More robust product

    Focus on UI
Thanks
I’ve been @twhume

http://tomhume.org/
http://www.futureplatforms.com

Weitere ähnliche Inhalte

Ähnlich wie Why the web won't do

baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析joylite
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Heiko Behrens
 
Evolving Mobile Architectures
Evolving Mobile ArchitecturesEvolving Mobile Architectures
Evolving Mobile Architecturessgleadow
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Gergely Kis
 
Learn how to develop for Android, beyond the Hello World android app - Cape T...
Learn how to develop for Android, beyond the Hello World android app - Cape T...Learn how to develop for Android, beyond the Hello World android app - Cape T...
Learn how to develop for Android, beyond the Hello World android app - Cape T...Joseph Kandi
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
 
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011MongoDB
 
Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012jobandesther
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfJAX London
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发Zhang Xiaoxue
 
React Native - CirebonDev
React Native - CirebonDevReact Native - CirebonDev
React Native - CirebonDevAyat Maulana
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is NativeJustin Mancinelli
 
Lo mejor y peor de React Native @ValenciaJS
Lo mejor y peor de React Native @ValenciaJSLo mejor y peor de React Native @ValenciaJS
Lo mejor y peor de React Native @ValenciaJSMarcel Kalveram
 
Great cup of java
Great  cup of javaGreat  cup of java
Great cup of javaCIB Egypt
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax Worldrajivmordani
 
HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗Bobby Chen
 
Isomorphic JS - new silver bullet
Isomorphic JS - new silver bulletIsomorphic JS - new silver bullet
Isomorphic JS - new silver bulletimevs
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFrançois Le Droff
 

Ähnlich wie Why the web won't do (20)

baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析
 
Node.JS briefly introduced
Node.JS briefly introducedNode.JS briefly introduced
Node.JS briefly introduced
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
 
Evolving Mobile Architectures
Evolving Mobile ArchitecturesEvolving Mobile Architectures
Evolving Mobile Architectures
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)
 
Learn how to develop for Android, beyond the Hello World android app - Cape T...
Learn how to develop for Android, beyond the Hello World android app - Cape T...Learn how to develop for Android, beyond the Hello World android app - Cape T...
Learn how to develop for Android, beyond the Hello World android app - Cape T...
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
 
Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发
 
React Native - CirebonDev
React Native - CirebonDevReact Native - CirebonDev
React Native - CirebonDev
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is Native
 
Lo mejor y peor de React Native @ValenciaJS
Lo mejor y peor de React Native @ValenciaJSLo mejor y peor de React Native @ValenciaJS
Lo mejor y peor de React Native @ValenciaJS
 
Great cup of java
Great  cup of javaGreat  cup of java
Great cup of java
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax World
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗
 
Isomorphic JS - new silver bullet
Isomorphic JS - new silver bulletIsomorphic JS - new silver bullet
Isomorphic JS - new silver bullet
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
 

Mehr von twh

X-Construction Lite: HCI Evaluation
X-Construction Lite: HCI EvaluationX-Construction Lite: HCI Evaluation
X-Construction Lite: HCI Evaluationtwh
 
Making Sense of Sensors
Making Sense of SensorsMaking Sense of Sensors
Making Sense of Sensorstwh
 
Algorithmic art
Algorithmic artAlgorithmic art
Algorithmic arttwh
 
Mobile apps and live data
Mobile apps and live dataMobile apps and live data
Mobile apps and live datatwh
 
Eduserv 2010
Eduserv 2010Eduserv 2010
Eduserv 2010twh
 
Capitalising on Popular Culture
Capitalising on Popular CultureCapitalising on Popular Culture
Capitalising on Popular Culturetwh
 
Mobile Mountains - OverTheAir 2009
Mobile Mountains - OverTheAir 2009Mobile Mountains - OverTheAir 2009
Mobile Mountains - OverTheAir 2009twh
 
Agile2009
Agile2009Agile2009
Agile2009twh
 
Mobile User Experience
Mobile User ExperienceMobile User Experience
Mobile User Experiencetwh
 
Knocking Down Walls
Knocking Down WallsKnocking Down Walls
Knocking Down Wallstwh
 
Revenue Opportunities in Mobile
Revenue Opportunities in MobileRevenue Opportunities in Mobile
Revenue Opportunities in Mobiletwh
 
Feel the FP-ness
Feel the FP-nessFeel the FP-ness
Feel the FP-nesstwh
 
Knitting Design & Development Together
Knitting Design & Development TogetherKnitting Design & Development Together
Knitting Design & Development Togethertwh
 
Strengths, Weakness and Trade-offs of Mobile Platforms
Strengths, Weakness and Trade-offs of Mobile PlatformsStrengths, Weakness and Trade-offs of Mobile Platforms
Strengths, Weakness and Trade-offs of Mobile Platformstwh
 
£5 Apps Sanitised
£5 Apps Sanitised£5 Apps Sanitised
£5 Apps Sanitisedtwh
 

Mehr von twh (15)

X-Construction Lite: HCI Evaluation
X-Construction Lite: HCI EvaluationX-Construction Lite: HCI Evaluation
X-Construction Lite: HCI Evaluation
 
Making Sense of Sensors
Making Sense of SensorsMaking Sense of Sensors
Making Sense of Sensors
 
Algorithmic art
Algorithmic artAlgorithmic art
Algorithmic art
 
Mobile apps and live data
Mobile apps and live dataMobile apps and live data
Mobile apps and live data
 
Eduserv 2010
Eduserv 2010Eduserv 2010
Eduserv 2010
 
Capitalising on Popular Culture
Capitalising on Popular CultureCapitalising on Popular Culture
Capitalising on Popular Culture
 
Mobile Mountains - OverTheAir 2009
Mobile Mountains - OverTheAir 2009Mobile Mountains - OverTheAir 2009
Mobile Mountains - OverTheAir 2009
 
Agile2009
Agile2009Agile2009
Agile2009
 
Mobile User Experience
Mobile User ExperienceMobile User Experience
Mobile User Experience
 
Knocking Down Walls
Knocking Down WallsKnocking Down Walls
Knocking Down Walls
 
Revenue Opportunities in Mobile
Revenue Opportunities in MobileRevenue Opportunities in Mobile
Revenue Opportunities in Mobile
 
Feel the FP-ness
Feel the FP-nessFeel the FP-ness
Feel the FP-ness
 
Knitting Design & Development Together
Knitting Design & Development TogetherKnitting Design & Development Together
Knitting Design & Development Together
 
Strengths, Weakness and Trade-offs of Mobile Platforms
Strengths, Weakness and Trade-offs of Mobile PlatformsStrengths, Weakness and Trade-offs of Mobile Platforms
Strengths, Weakness and Trade-offs of Mobile Platforms
 
£5 Apps Sanitised
£5 Apps Sanitised£5 Apps Sanitised
£5 Apps Sanitised
 

Kürzlich hochgeladen

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Kürzlich hochgeladen (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Why the web won't do

Hinweis der Redaktion

  1. Thanks Rudy. I’ve been thinking about the different ways we talk about web sites, and mobile apps. I’ve noticed something.\n\nWhen we talk about web sites, what words do we use? We talk about going to a site; navigating it; surfing it; browsing.\nThe metaphors we use are geographical, and imply that we think of the web as a place we visit.\nIf you think about commercial places you visit, you have expectations. Hotels have a front desk.\nRestaurants have tables with menus. Airports have check-in gates. They align on a basic set of expectations and differentiate\non other stuff.\n
  2. How do we talk about mobile apps? We start them, we stop them, we use them, we download them.\nIn our language, apps are objects we collect, keep and employ for a purpose. Sometimes we become\nso familiar with them that we make them verbs. You hammer a nail, you text a friend or google a girl you’re stalking.\n\nWhat do we expect from tools? That they fulfil a single purpose very well. A hammer is the best thing\npossible for banging in a nail. \n\nI think these metaphors hold - we don’t talk about browsing an app, and it seems strange to discuss\nstarting or stopping a web site. We have distinct mental models for these things. This means something.\n\n
  3. Hi, my name’s Tom Hume. I’m the Founder of Future Platforms. We’re an 11-year old software company\nbased in Brighton. We’ve spent more than a decade launching mobile apps. In the last year alone\nwe’ve worked for Nokia, Orange, the BBC, LastMinute, CNBC Europe, the AA, and a host of\nsmaller startups.\n\nAnd in the last year we’ve worked on iPhone, Android, Windows Phone 7, Nokia Qt,\nHP WebOS, J2ME, HTML5, Widget Runtime, WebSDK and probably a couple of others I’ve forgotten.\nWe’re unusual in that we go very broad; we have a team with a deep understanding of the principles\nof mobile app development, and a strong track record of applying this to new platforms.\n
  4. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  5. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  6. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  7. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  8. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  9. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  10. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  11. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  12. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  13. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  14. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  15. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  16. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  17. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  18. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  19. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  20. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  21. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  22. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  23. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  24. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  25. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  26. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  27. And wow, it hurts. You know what the problem is: it’s fragmentation. Right now there are a couple of\nreally popular target platforms, iOS and Android, and a couple of others that look credible (Nokia, WP7).\n\nWell, it’s not just Apple fanboys who want to use apps. It turns out that they have broad appeal, no\nmatter what phone you own.\n\nHandsets are converging around a couple of form factors; they’re differentiating in software.\n\nAnd it’s not getting better. Every year we think it might be, then someone else launches a new\nplatform (thanks, HP), or an old one seems to get a new lease of life, like Blackberry.\n\nWriting a single app for 8 platforms is hard, not to mention expensive.\n
  28. But wait, there’s an answer; and it’s been staring us in the face all along. Every one of these\ndevices has a web browser; the web is a cross-platform means of consuming media. We\ncan write our apps for web browsers, and they’ll work across a range of operating systems\nand platforms - just like on the desktop.\n\nMartin Sorrell of WPP drew a nice distinction when he spoke at MWC this year; his view is that\nyou’ll have a fat head of apps for tasks people need to do repeatedly, fast or well; and a long\ntail of content best served through sites.\n\nThe web is great for delivering media across devices, including mobile devices.\nBut apps aren’t media. They’re not destinations, remember, they’re tools. And what do you want from tools?\n\n
  29. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  30. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  31. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  32. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  33. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  34. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  35. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  36. You want efficiency.\nWhen it comes to mobile, you want the best possible use of your limited battery.\nYou want to be minimising your use of the network, allowing for its cost, patchy coverage,\nand physical limitations.\nAnd you don’t want to be stopped from using your tool if there’s no network at all.\nYou have to cope with the offline use case.\n\nAnd there’s another thing. You want consistency with the rest of your device. You want your\napp to look, feel and behave like the rest of your phone, because that’s where your expectations\nof behaviour and performance are set.\n\nAs providers of content, we tend to take a worldview with ourselves at the centre: we think\nour content should present consistently across platforms. If you do this at the expense of the\nexperience for individual users, you’re failing them.\n\n
  37. And if you’re building your app using web technologies - that is, if you’re using the web\nto produce something which mimics a native app or tries to fool the user into thinking\nit is one, here’s what you’re doing:\n\nYou’re taking the operating system. And you’re running a browser on top, probably\ninside an application framework like the excellent PhoneGap. And then you’re probably\nusing a third party JavaScript library like JQuery on top of that. And then you’re writing\nyour app.\n\nAll these layers, to create something that looks like the thing at the bottom of the stack.\n\nThis doesn’t work - it doesn’t perform or feel like a native app. And it’s wasteful and\ninefficient. If you don’t believe me, go and download the demonstration apps from \nsome of the vendors of these toolkits, and run them on the best hardware you can find.\nSee how they’re a bit sluggish; a bit slow. Realise that these are apps written by the folks\nwho wrote the platform - they’re probably at peak efficiency. Consider that these apps\naren’t doing anything other than user-interface work that might slow them down (yours will).\n\nWe went through all this last year. Like everyone, we were suffering from platform fatigue.\nWe wanted an answer; it’d be good for our staff, good for our margins, and good for our\ncustomers if this worked. We’ve launched a few web apps for mobile; we’ve tried this approach,\nand we found that if you weren’t ambitious with your user interface, and weren’t trying to\nmake something look like a native app, then it was OK. But we wanted better than that, so\nwe had a think about it.\n\nAnd we came up with something counterintuitive. We want to keep the effort involved in \nworking across platforms down; that means sharing some code. We need a consistent\nenvironment in which to execute that code, whether native apps are written in Java, Objective-C\nor C#. And the web browser is there, on every platform.\n\nBut we strongly believe that UI needs to be native. So we thought you could turn everything on its head.\n
  38. And if you’re building your app using web technologies - that is, if you’re using the web\nto produce something which mimics a native app or tries to fool the user into thinking\nit is one, here’s what you’re doing:\n\nYou’re taking the operating system. And you’re running a browser on top, probably\ninside an application framework like the excellent PhoneGap. And then you’re probably\nusing a third party JavaScript library like JQuery on top of that. And then you’re writing\nyour app.\n\nAll these layers, to create something that looks like the thing at the bottom of the stack.\n\nThis doesn’t work - it doesn’t perform or feel like a native app. And it’s wasteful and\ninefficient. If you don’t believe me, go and download the demonstration apps from \nsome of the vendors of these toolkits, and run them on the best hardware you can find.\nSee how they’re a bit sluggish; a bit slow. Realise that these are apps written by the folks\nwho wrote the platform - they’re probably at peak efficiency. Consider that these apps\naren’t doing anything other than user-interface work that might slow them down (yours will).\n\nWe went through all this last year. Like everyone, we were suffering from platform fatigue.\nWe wanted an answer; it’d be good for our staff, good for our margins, and good for our\ncustomers if this worked. We’ve launched a few web apps for mobile; we’ve tried this approach,\nand we found that if you weren’t ambitious with your user interface, and weren’t trying to\nmake something look like a native app, then it was OK. But we wanted better than that, so\nwe had a think about it.\n\nAnd we came up with something counterintuitive. We want to keep the effort involved in \nworking across platforms down; that means sharing some code. We need a consistent\nenvironment in which to execute that code, whether native apps are written in Java, Objective-C\nor C#. And the web browser is there, on every platform.\n\nBut we strongly believe that UI needs to be native. So we thought you could turn everything on its head.\n
  39. And if you’re building your app using web technologies - that is, if you’re using the web\nto produce something which mimics a native app or tries to fool the user into thinking\nit is one, here’s what you’re doing:\n\nYou’re taking the operating system. And you’re running a browser on top, probably\ninside an application framework like the excellent PhoneGap. And then you’re probably\nusing a third party JavaScript library like JQuery on top of that. And then you’re writing\nyour app.\n\nAll these layers, to create something that looks like the thing at the bottom of the stack.\n\nThis doesn’t work - it doesn’t perform or feel like a native app. And it’s wasteful and\ninefficient. If you don’t believe me, go and download the demonstration apps from \nsome of the vendors of these toolkits, and run them on the best hardware you can find.\nSee how they’re a bit sluggish; a bit slow. Realise that these are apps written by the folks\nwho wrote the platform - they’re probably at peak efficiency. Consider that these apps\naren’t doing anything other than user-interface work that might slow them down (yours will).\n\nWe went through all this last year. Like everyone, we were suffering from platform fatigue.\nWe wanted an answer; it’d be good for our staff, good for our margins, and good for our\ncustomers if this worked. We’ve launched a few web apps for mobile; we’ve tried this approach,\nand we found that if you weren’t ambitious with your user interface, and weren’t trying to\nmake something look like a native app, then it was OK. But we wanted better than that, so\nwe had a think about it.\n\nAnd we came up with something counterintuitive. We want to keep the effort involved in \nworking across platforms down; that means sharing some code. We need a consistent\nenvironment in which to execute that code, whether native apps are written in Java, Objective-C\nor C#. And the web browser is there, on every platform.\n\nBut we strongly believe that UI needs to be native. So we thought you could turn everything on its head.\n
  40. And if you’re building your app using web technologies - that is, if you’re using the web\nto produce something which mimics a native app or tries to fool the user into thinking\nit is one, here’s what you’re doing:\n\nYou’re taking the operating system. And you’re running a browser on top, probably\ninside an application framework like the excellent PhoneGap. And then you’re probably\nusing a third party JavaScript library like JQuery on top of that. And then you’re writing\nyour app.\n\nAll these layers, to create something that looks like the thing at the bottom of the stack.\n\nThis doesn’t work - it doesn’t perform or feel like a native app. And it’s wasteful and\ninefficient. If you don’t believe me, go and download the demonstration apps from \nsome of the vendors of these toolkits, and run them on the best hardware you can find.\nSee how they’re a bit sluggish; a bit slow. Realise that these are apps written by the folks\nwho wrote the platform - they’re probably at peak efficiency. Consider that these apps\naren’t doing anything other than user-interface work that might slow them down (yours will).\n\nWe went through all this last year. Like everyone, we were suffering from platform fatigue.\nWe wanted an answer; it’d be good for our staff, good for our margins, and good for our\ncustomers if this worked. We’ve launched a few web apps for mobile; we’ve tried this approach,\nand we found that if you weren’t ambitious with your user interface, and weren’t trying to\nmake something look like a native app, then it was OK. But we wanted better than that, so\nwe had a think about it.\n\nAnd we came up with something counterintuitive. We want to keep the effort involved in \nworking across platforms down; that means sharing some code. We need a consistent\nenvironment in which to execute that code, whether native apps are written in Java, Objective-C\nor C#. And the web browser is there, on every platform.\n\nBut we strongly believe that UI needs to be native. So we thought you could turn everything on its head.\n
  41. Here’s what we’ve done. We’ve created a bridge for each platform, to allow native code\nto talk to a JavaScript interpreter. Every platform has a web browser; they all let you run\nJavaScript. We then write our application logic in JavaScript, and have a consistent set\nof libraries to handle basic functionality - location lookups, database use, networking.\nAll the stuff that should be the same in web browsers, but isn’t quite.\n\nAnd then we write the user interface, as native. So it’s fast; efficient; and we can do\nevery trick in the book, every new piece of sparkle that Apple or Google roll out to their\noperating systems once or twice a year - it’s all there for us.\n\n\n
  42. I’m not going to dwell on this, but here’s how simple the code is. \nA couple of lines of boilerplate code, then a single line of JavaScript can call into your Android UI.\nAnd you shift as much code as possible into JavaScript\n
  43. And this isn’t theoretical; it’s not something we’ve trialled; our largest app launch of the year,\nthe official app for Glastonbury Festival, uses it.\n\nThis is a complex app, with a very snappy user interface for scrolling through an EPG of \nbands playing over 3 days. 1500 different acts, lots of data. It’s also designed to be offline;\nthe app syncs data down and stores it locally, so you can turn off your networking or\nbe comfortable in the festival site, which has poor coverage\n\nWe share all the application logic, all the syncing code, between the Android and Qt versions.\nYou can’t tell; they’re native apps.\n\nAnd our pessimistic early modelling showed us that we could save 30% effort when working\nacross 3 platforms with this approach; we think that with practice, and having done this\non one large app, we can increase that significantly.\n
  44. And this isn’t theoretical; it’s not something we’ve trialled; our largest app launch of the year,\nthe official app for Glastonbury Festival, uses it.\n\nThis is a complex app, with a very snappy user interface for scrolling through an EPG of \nbands playing over 3 days. 1500 different acts, lots of data. It’s also designed to be offline;\nthe app syncs data down and stores it locally, so you can turn off your networking or\nbe comfortable in the festival site, which has poor coverage\n\nWe share all the application logic, all the syncing code, between the Android and Qt versions.\nYou can’t tell; they’re native apps.\n\nAnd our pessimistic early modelling showed us that we could save 30% effort when working\nacross 3 platforms with this approach; we think that with practice, and having done this\non one large app, we can increase that significantly.\n
  45. And this isn’t theoretical; it’s not something we’ve trialled; our largest app launch of the year,\nthe official app for Glastonbury Festival, uses it.\n\nThis is a complex app, with a very snappy user interface for scrolling through an EPG of \nbands playing over 3 days. 1500 different acts, lots of data. It’s also designed to be offline;\nthe app syncs data down and stores it locally, so you can turn off your networking or\nbe comfortable in the festival site, which has poor coverage\n\nWe share all the application logic, all the syncing code, between the Android and Qt versions.\nYou can’t tell; they’re native apps.\n\nAnd our pessimistic early modelling showed us that we could save 30% effort when working\nacross 3 platforms with this approach; we think that with practice, and having done this\non one large app, we can increase that significantly.\n
  46. What did we notice doing this?\n\nThe Android port happened last; and it was the fastest (took half the time of Qt or iOS)\nWe got to fix back-end bugs once, in the JavaScript; fixes worked everywhere.\nOur testing effort on the back-end was effectively doubled-up. When our testers looked at Android, \nthey were implicitly testing the Qt back-end and vice versa.\n\nAnd our developers could focus their effort on the user interface, where it’s needed most.\n\n\n\n\n\n- obfuscation was tricky\n- probably not appropriate for single-platform apps\n- tooling\n\n
  47. What did we notice doing this?\n\nThe Android port happened last; and it was the fastest (took half the time of Qt or iOS)\nWe got to fix back-end bugs once, in the JavaScript; fixes worked everywhere.\nOur testing effort on the back-end was effectively doubled-up. When our testers looked at Android, \nthey were implicitly testing the Qt back-end and vice versa.\n\nAnd our developers could focus their effort on the user interface, where it’s needed most.\n\n\n\n\n\n- obfuscation was tricky\n- probably not appropriate for single-platform apps\n- tooling\n\n
  48. What did we notice doing this?\n\nThe Android port happened last; and it was the fastest (took half the time of Qt or iOS)\nWe got to fix back-end bugs once, in the JavaScript; fixes worked everywhere.\nOur testing effort on the back-end was effectively doubled-up. When our testers looked at Android, \nthey were implicitly testing the Qt back-end and vice versa.\n\nAnd our developers could focus their effort on the user interface, where it’s needed most.\n\n\n\n\n\n- obfuscation was tricky\n- probably not appropriate for single-platform apps\n- tooling\n\n
  49. What did we notice doing this?\n\nThe Android port happened last; and it was the fastest (took half the time of Qt or iOS)\nWe got to fix back-end bugs once, in the JavaScript; fixes worked everywhere.\nOur testing effort on the back-end was effectively doubled-up. When our testers looked at Android, \nthey were implicitly testing the Qt back-end and vice versa.\n\nAnd our developers could focus their effort on the user interface, where it’s needed most.\n\n\n\n\n\n- obfuscation was tricky\n- probably not appropriate for single-platform apps\n- tooling\n\n
  50. So why am I telling you this? Let me be honest - we’re a software business, and I talk at events\nlike these because it’s the best way for me to reach an audience of potential customers and\nshow off about how great we are. And I hope that someone out there will come and have a\nchat afterwards, and we can work on something.\n\nBut what I’ve shown you today isn’t for sale. It’s not proprietary; it isn’t patented. You could take this\napproach and use it yourself, and that would be fine - we’ve road-tested it for you and checked\nthat it works. You can download the apps which use it and look at them yourself.\n\nNext time you hear the issue of web vs native apps being debated, I’d like you to consider\nthat it isn’t that simple; that there a difference between how we use web sites and how we use\napps that is both psychological and technical. And I’d like you to be aware that there’s lots\nof ways to deliver a great user experience, and lots of ways to do so cost-effectively.\n\nThanks\n