SlideShare una empresa de Scribd logo
1 de 43
Web plus Native
   in 2012
 @jhugman – James Hugman
Who is this guy?

    • Software Engineer
    • Programming: 20y, Mobile: 4y
    • Won awards for apps
    • Technology agnostic



@jhugman
Order of
           Ceremonies
    • Latest results in Web v Native
    • Issues in cross platform
      development
    • Interesting projects
    • Predictions


@jhugman
Web vs Native


    • Web: Developer friendly           (except, when it’s not)




    • Native: User friendly   (except, when it’s not)




@jhugman
Web
    • Cross platform*
    • Existing libraries
    • Faster to develop*
    • Buzzword compliant
    • Massive developer mindshare


@jhugman                   * Caveat emptor
Native


    • Better user experience
    • Tight device integration




@jhugman
Gartner Hype Cycle
                 Peak of Inflated Expectations



                                     Plateau of Productivity


                            Slope of Enlightenment
              Trough of
              Disillusion
 Technology
 Trigger

@jhugman
Cross-platform
              fallacies


    • “Write Once, Run Anywhere”
    • HTML5 is the answer




@jhugman
Web based UIs


    • PhoneGap
    • Trigger.io




@jhugman
Building UI with
            HTML

    • Webkit fragmentation
    • Desktop ≠ Mobile
    • High profile failures




@jhugman
Write Once, Run
              Anywhere

    • UI metaphors differ between
      platforms
    • Negative messages to users:
      • “We don’t care [enough] about
        you”


@jhugman
Important
           exceptions

    • When app is document focused
    • When utility trumps usability
    • Games




@jhugman
Why Cross
            Platform?
    • For developers:
      • Less to learn
      • Less code to write
    • For business:
      • Lower cost of ownership


@jhugman
Why Cross
    Platform*… Sucks?

    • For developers            fewer tools




    • For users   UX is compromised




    • For designers          Design is compromised




@jhugman
Something better

    • Native, platform specific UIs
    • Share as much other code as
      possible




@jhugman
Architecture Sketch

             Presentation Layer


           Application Logic Layer



              Native API Layer



@jhugman
Architecture Sketch


    • Implementation language
    • Execution language




@jhugman
Technologies
    • Titanium
                            JS
    • Ejecta                     UI in code

    • Kirin       Portable Biz
                     Logic

    • Calatrava
    • j2ObjC


@jhugman
Javascript based
Building UI in Code
           Presentation Layer
           implemented in Javascript



           Application Logic
                  Javascript



               Native APIs
                    Native




@jhugman
Titanium

    • The big hitter
    • Implement everything in Javascript
    • Execute UI in native




@jhugman
Titanium
    + Good coverage of native APIs
    + Reasonable docs
    - Implement UI in JS, so crappy tools
    - Lists are hard to get right
    - Not easy to style


@jhugman
Ejecta

    • HTML <canvas> and <audio> APIs
    • Implement in Javascript
    • Executed using native OpenGL and
      OpenAL



@jhugman
Ejecta
    + Lots of existing libraries (e.g.
      Three.js, processing.js)
    + Faster than WebView’s <canvas>
    - Incomplete APIs for Graphics &
      Audio
    - iOS and Web only

@jhugman
Honourable
            mention


    • MonoTouch & MonoDroid




@jhugman
Mixed languages
Heterogenous
              Teams

    • Multiple people
    • Different skill sets
    • Only small overlaps in skill sets




@jhugman
Shared App Logic
           Presentation Layer
            implemented in native



           Application Logic
                   shared



              Native APIs
                   Native




@jhugman
Shared App Logic
     Obj-C      Java       HTML




             Application
               Logic
                shared




@jhugman
Calatrava

    • Application logic in Javascript
    • Rubyist & Web developers version
    • Progressively enhance screens




@jhugman
Calatrava
    + Start with HTML. Switch to native
      when needed.
    - Limited interaction between JS &
      Native
    - Not very extensible
    - Limited access to APIs
    - Bundles a JS engine per app

@jhugman
Shared App Logic
   Your Obj-C     Your Java




     Calatrava
                 Your Shared
                  Javascript



@jhugman
Shared App Logic
   Your Obj-C    Your Java




       Kirin
                Your Shared
                 Javascript



@jhugman
Kirin

    • Native mobile developers version
    • Designed for multi-disciplinary
      teams
    • Designed to be friendly to both
      ecosystems


@jhugman
Kirin

    + Very extensible
    + Built on top of node.js and npm.
    - Limited access to APIs (currently)




@jhugman
Shared App Logic
           Presentation Layer
            implemented in native



           Application Logic
                   shared



              Native APIs
                   Native




@jhugman
j2ObjC

    • Java -> Objective C compiler
    • Google 20% project
    • Write in Java, execute natively on
      two platforms



@jhugman
j2ObjC + GWT

    + Great tooling
    + Very extensible
    - Alpha release; Buggy
    - Not a tool suite



@jhugman
Predictions
    • HTML5 on mobile will get better,
      slowly
    • Good but not great cross-platform
      solutions continue in small shops
    • Building multiple native clients will
      be accepted as the cost of doing
      business

@jhugman
Summary

    • Business need will drive cross-
      platform
    • HTML UIs still difficult to make nice
    • Fertile ground for experimentation



@jhugman
Thanks
James Hugman – @jhugman
Links
    • Titanium: appcelerator.com
    • Ejector.js: impactjs.com/ejecta/
      overview
    • Calatrava: calatrava.github.com
    • Kirin: github.com/kirinjs/kirin
    • j2objc: code.google.com/p/j2objc

@jhugman
Questions?



@jhugman

Más contenido relacionado

La actualidad más candente

Famo.us - build native quality apps using html5 within a day
Famo.us - build native quality apps using html5 within a dayFamo.us - build native quality apps using html5 within a day
Famo.us - build native quality apps using html5 within a dayDebnath Sinha
 
Nightmapper's presentation
Nightmapper's presentationNightmapper's presentation
Nightmapper's presentationBadoo
 
Js foo famo.us- build native quality apps using html5 within a day
Js foo  famo.us- build native quality apps using html5 within a dayJs foo  famo.us- build native quality apps using html5 within a day
Js foo famo.us- build native quality apps using html5 within a dayDebnath Sinha
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React NativeWaqqas Jabbar
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React NativeSambhu Lakshmanan
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapRamesh Nair
 
WappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS MeetupWappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS MeetupWienke Giezeman
 
PhoneGap: a brief history and apologia
PhoneGap: a brief history and apologiaPhoneGap: a brief history and apologia
PhoneGap: a brief history and apologialorinbeer
 
Phonegap
PhonegapPhonegap
PhonegapTim Kim
 
React Native in a nutshell
React Native in a nutshellReact Native in a nutshell
React Native in a nutshellBrainhub
 
Android development war stories
Android development war storiesAndroid development war stories
Android development war storiesLope Emano
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community SupportWilliam Grosso
 
Gradle and Your Android Wearable Projects
Gradle and Your Android Wearable ProjectsGradle and Your Android Wearable Projects
Gradle and Your Android Wearable ProjectsCommonsWare
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?Mark Russell
 
Building Hybrid Applications using PhoneGap
Building Hybrid Applications using PhoneGapBuilding Hybrid Applications using PhoneGap
Building Hybrid Applications using PhoneGapPrajyot Mainkar
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react nativeDani Akash
 
When Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable AppsWhen Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable AppsCommonsWare
 
Going Native With React
Going Native With ReactGoing Native With React
Going Native With ReactEric Nograles
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularTodd Anglin
 
Mobile development with JBoss Tools
Mobile development with JBoss ToolsMobile development with JBoss Tools
Mobile development with JBoss ToolsGorkem Ercan
 

La actualidad más candente (20)

Famo.us - build native quality apps using html5 within a day
Famo.us - build native quality apps using html5 within a dayFamo.us - build native quality apps using html5 within a day
Famo.us - build native quality apps using html5 within a day
 
Nightmapper's presentation
Nightmapper's presentationNightmapper's presentation
Nightmapper's presentation
 
Js foo famo.us- build native quality apps using html5 within a day
Js foo  famo.us- build native quality apps using html5 within a dayJs foo  famo.us- build native quality apps using html5 within a day
Js foo famo.us- build native quality apps using html5 within a day
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
WappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS MeetupWappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS Meetup
 
PhoneGap: a brief history and apologia
PhoneGap: a brief history and apologiaPhoneGap: a brief history and apologia
PhoneGap: a brief history and apologia
 
Phonegap
PhonegapPhonegap
Phonegap
 
React Native in a nutshell
React Native in a nutshellReact Native in a nutshell
React Native in a nutshell
 
Android development war stories
Android development war storiesAndroid development war stories
Android development war stories
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
Gradle and Your Android Wearable Projects
Gradle and Your Android Wearable ProjectsGradle and Your Android Wearable Projects
Gradle and Your Android Wearable Projects
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
 
Building Hybrid Applications using PhoneGap
Building Hybrid Applications using PhoneGapBuilding Hybrid Applications using PhoneGap
Building Hybrid Applications using PhoneGap
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react native
 
When Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable AppsWhen Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable Apps
 
Going Native With React
Going Native With ReactGoing Native With React
Going Native With React
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
Mobile development with JBoss Tools
Mobile development with JBoss ToolsMobile development with JBoss Tools
Mobile development with JBoss Tools
 

Similar a Web and Native in 2012

Make Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck LessMake Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck Lessjhugman
 
Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersKinoma
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Sacha Leprêtre
 
Language Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to ProductionLanguage Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to ProductionKinoma
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIjhugman
 
Writing Frameworks for Fun and Profit
Writing Frameworks for Fun and ProfitWriting Frameworks for Fun and Profit
Writing Frameworks for Fun and Profitjhugman
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserAutodesk
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Kazuhiro Ogura
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application developmentwebprogr.com
 
Apache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application DevelopmentApache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application Developmentthedumbterminal
 
Current state of mobile development february 2013
Current state of mobile development february 2013Current state of mobile development february 2013
Current state of mobile development february 201359offers
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform libraryKostis Dadamis
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Igalia
 
Android Development...Using Web Technologies
Android Development...Using Web TechnologiesAndroid Development...Using Web Technologies
Android Development...Using Web TechnologiesCommonsWare
 

Similar a Web and Native in 2012 (20)

Make Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck LessMake Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck Less
 
Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software Developers
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
 
Language Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to ProductionLanguage Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to Production
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UI
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
From Web to Mobile with Stage 3D
From Web to Mobile with Stage 3DFrom Web to Mobile with Stage 3D
From Web to Mobile with Stage 3D
 
Writing Frameworks for Fun and Profit
Writing Frameworks for Fun and ProfitWriting Frameworks for Fun and Profit
Writing Frameworks for Fun and Profit
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the Browser
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application development
 
Apache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application DevelopmentApache Cordova, Hybrid Application Development
Apache Cordova, Hybrid Application Development
 
Current state of mobile development february 2013
Current state of mobile development february 2013Current state of mobile development february 2013
Current state of mobile development february 2013
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform library
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
Android Development...Using Web Technologies
Android Development...Using Web TechnologiesAndroid Development...Using Web Technologies
Android Development...Using Web Technologies
 

Último

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 

Web and Native in 2012

  • 1. Web plus Native in 2012 @jhugman – James Hugman
  • 2. Who is this guy? • Software Engineer • Programming: 20y, Mobile: 4y • Won awards for apps • Technology agnostic @jhugman
  • 3. Order of Ceremonies • Latest results in Web v Native • Issues in cross platform development • Interesting projects • Predictions @jhugman
  • 4. Web vs Native • Web: Developer friendly (except, when it’s not) • Native: User friendly (except, when it’s not) @jhugman
  • 5. Web • Cross platform* • Existing libraries • Faster to develop* • Buzzword compliant • Massive developer mindshare @jhugman * Caveat emptor
  • 6. Native • Better user experience • Tight device integration @jhugman
  • 7. Gartner Hype Cycle Peak of Inflated Expectations Plateau of Productivity Slope of Enlightenment Trough of Disillusion Technology Trigger @jhugman
  • 8. Cross-platform fallacies • “Write Once, Run Anywhere” • HTML5 is the answer @jhugman
  • 9. Web based UIs • PhoneGap • Trigger.io @jhugman
  • 10. Building UI with HTML • Webkit fragmentation • Desktop ≠ Mobile • High profile failures @jhugman
  • 11. Write Once, Run Anywhere • UI metaphors differ between platforms • Negative messages to users: • “We don’t care [enough] about you” @jhugman
  • 12. Important exceptions • When app is document focused • When utility trumps usability • Games @jhugman
  • 13. Why Cross Platform? • For developers: • Less to learn • Less code to write • For business: • Lower cost of ownership @jhugman
  • 14. Why Cross Platform*… Sucks? • For developers fewer tools • For users UX is compromised • For designers Design is compromised @jhugman
  • 15. Something better • Native, platform specific UIs • Share as much other code as possible @jhugman
  • 16. Architecture Sketch Presentation Layer Application Logic Layer Native API Layer @jhugman
  • 17. Architecture Sketch • Implementation language • Execution language @jhugman
  • 18. Technologies • Titanium JS • Ejecta UI in code • Kirin Portable Biz Logic • Calatrava • j2ObjC @jhugman
  • 20. Building UI in Code Presentation Layer implemented in Javascript Application Logic Javascript Native APIs Native @jhugman
  • 21. Titanium • The big hitter • Implement everything in Javascript • Execute UI in native @jhugman
  • 22. Titanium + Good coverage of native APIs + Reasonable docs - Implement UI in JS, so crappy tools - Lists are hard to get right - Not easy to style @jhugman
  • 23. Ejecta • HTML <canvas> and <audio> APIs • Implement in Javascript • Executed using native OpenGL and OpenAL @jhugman
  • 24. Ejecta + Lots of existing libraries (e.g. Three.js, processing.js) + Faster than WebView’s <canvas> - Incomplete APIs for Graphics & Audio - iOS and Web only @jhugman
  • 25. Honourable mention • MonoTouch & MonoDroid @jhugman
  • 27. Heterogenous Teams • Multiple people • Different skill sets • Only small overlaps in skill sets @jhugman
  • 28. Shared App Logic Presentation Layer implemented in native Application Logic shared Native APIs Native @jhugman
  • 29. Shared App Logic Obj-C Java HTML Application Logic shared @jhugman
  • 30. Calatrava • Application logic in Javascript • Rubyist & Web developers version • Progressively enhance screens @jhugman
  • 31. Calatrava + Start with HTML. Switch to native when needed. - Limited interaction between JS & Native - Not very extensible - Limited access to APIs - Bundles a JS engine per app @jhugman
  • 32. Shared App Logic Your Obj-C Your Java Calatrava Your Shared Javascript @jhugman
  • 33. Shared App Logic Your Obj-C Your Java Kirin Your Shared Javascript @jhugman
  • 34. Kirin • Native mobile developers version • Designed for multi-disciplinary teams • Designed to be friendly to both ecosystems @jhugman
  • 35. Kirin + Very extensible + Built on top of node.js and npm. - Limited access to APIs (currently) @jhugman
  • 36. Shared App Logic Presentation Layer implemented in native Application Logic shared Native APIs Native @jhugman
  • 37. j2ObjC • Java -> Objective C compiler • Google 20% project • Write in Java, execute natively on two platforms @jhugman
  • 38. j2ObjC + GWT + Great tooling + Very extensible - Alpha release; Buggy - Not a tool suite @jhugman
  • 39. Predictions • HTML5 on mobile will get better, slowly • Good but not great cross-platform solutions continue in small shops • Building multiple native clients will be accepted as the cost of doing business @jhugman
  • 40. Summary • Business need will drive cross- platform • HTML UIs still difficult to make nice • Fertile ground for experimentation @jhugman
  • 42. Links • Titanium: appcelerator.com • Ejector.js: impactjs.com/ejecta/ overview • Calatrava: calatrava.github.com • Kirin: github.com/kirinjs/kirin • j2objc: code.google.com/p/j2objc @jhugman

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. * caveat emptor\n
  6. This year, has been different. Both sides has given ground to the other, but most importantly the users needs have been taken into consideration\n
  7. Where is 3d printing? Drones?\nAugmented Reality, HTML5? \n\nMention \nFinancial Times measured success.\nfacebook HTML5 failure\n
  8. \n
  9. All with implementation languages/tools of HTML, CSS, JS.\nAll with execution languages of HTML, CSS, JS.\n\nVery popular, due to low barrier to entry. \n
  10. Are web UIs for mobile ready for building non-trivial apps yet?\n * Webkit fragmentation still a problem\n * Webkit on desktop browsers really good, so easy to mistake.\n * Touch events are still horrible\n * position: fixed still not widely implemented.\n * High profile failures. (Facebook)\n
  11. * UI metaphors differ between platforms.\n * Despite what your boss thinks, users notice and dislike this.\n * It&apos;s confusing. \n * It&apos;s jarring. \n * It says &quot;We don&apos;t care enough^H^H^H^H about *you*&quot;. \n * It&apos;s nothing positive.\n * This is a problem if you have a Buy button anywhere in your app.\n
  12. * Users will forgive stylised web pages \n * if web metaphors are very well established (e.g. document focused), and \n * the users&apos;/client&apos;s care about utility above every else. i.e. &quot;good enough&quot; is &quot;good enough&quot;.\n e.g. Google Maps versus iOS6 Maps. \n e.g. Any website you don&amp;#x2019;t care enough about their app.\n * Or you&apos;re building a game.\n * Or maybe your brand is so strong.\n
  13. \n
  14. * First generation Cross platform, including html\n\n
  15. \n
  16. \n
  17. Implementation Language: What language/tools does the app dev use? \ne.g. You write Titanium apps&amp;#x2019; UI in Javascript \nExecution Language: What language/tools does the underlying implementation use\ne.g. Ti UIs are rendered natively.\n
  18. All of these projects make claims about how much time\n
  19. Optimizes for javascript access. \nOften at the expense of the other language.\n
  20. UIs Implemented in code: \nPoor tooling compared to native.\n- e.g. Easy to get wrong for different screen sizes\nLots of traffic between JS &amp; native; either slow, or prone to memory leaks.\n
  21. \n
  22. Any time you&amp;#x2019;re implementing in JS, lists will be hard to get right.\nPromises WORA, although doesn&amp;#x2019;t do a great job\n\n\n
  23. \n
  24. This is really just for Games.\nPossible to extend, but not for the faint hearted.\nNo text. \n\nEarly days for the project.\n
  25. \n
  26. \n
  27. Stretch the skills of a single developer.\n
  28. Realistic \n
  29. \n
  30. Named after Santiago Calatrava, famous for his bridges.\n
  31. Very early stages of development\nDocs are not very good.\n\nContributions welcome.\n
  32. Calatrava is a very web centric.\n \nCurrently a very limited javascript to native bridge\nNeeds changes to the core to add extra features that use the bridge\n\nThis will make device access slow to add.\n
  33. Much more generalized js to native bridge.\n
  34. Named after the river creature from Japanese myth. A chimera with the body of dragon and a tail of a deer.\n
  35. Documentation lacking.\nContributions welcome.\n
  36. Realistic \n
  37. \n
  38. Currently a standalone compiler. Not a tool suite.\n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n