SlideShare a Scribd company logo
1 of 37
Download to read offline
Mobile Apps
                         Native, Web, or Both?




                                                 Bill Heyman
                                                 CodeMorphic, Inc.

Tuesday, May 11, 2010
Smartphones 2010
                        Two major players in Smartphone market
                         support state-of-the-art web standards:




Tuesday, May 11, 2010
iPhone
                    • Arrived 2007
                    • 3 models (iPhone, iPod touch, iPad)
                    • Tied to a single US carrier (AT&T)
                    • Installed base 85M (includes iPod touch)
                    • Almost 200K apps available
                    • Tightly controlled
Tuesday, May 11, 2010
Android
                    • Arrived 2008
                    • 25 different phones (plus other devices)
                    • All major US carriers
                    • Installed base of 8M and increasing
                    • Heading toward 50K apps
                    • Generally open, loosely controlled
Tuesday, May 11, 2010
Web Commonality
                 WebKit-based browser
                 As of Android OS 2.0, both iPhone and Android
                 support new web standard and HTML5 features,
                 such as:

                             <video>         local database

          geolocation                                 canvas
                                   <audio>
                        offline app caching      transitions

Tuesday, May 11, 2010
App Spectrum

            Web



                        Uses web standard technologies:

                             HTML, CSS, JavaScript

Tuesday, May 11, 2010
App Spectrum

            Web                                               Native




                        Uses tools & compiled languages that are
                                targeted for the device.


Tuesday, May 11, 2010
App Spectrum

            Web                        Hybrid                   Native


                        Combines Web and Native technologies.

                          Generally, the web technologies are
                              wrapped by a native shell.

Tuesday, May 11, 2010
Hybrid Apps ~ Native

                             Hybrid                Native


                    • Packaged in a Native App shell
                    • Installed like Native Apps
                    • Distributed like Native Apps
                        But developed with non-native technologies.
Tuesday, May 11, 2010
App Spectrum

            Web             Hybrid     Native




Tuesday, May 11, 2010
Web                Web Apps

                        Two types of mobile web apps:
                        1. Traditional
                        2. Offline




Tuesday, May 11, 2010
Web                Traditional Web

                        1. Thin-client apps (mobile browser-based)
                        2. Require a persistent Internet connection
                        3. Processing and persistence mostly on the
                           server-side (PHP, Python, Ruby, ...)




Tuesday, May 11, 2010
Web                           Offline Web
                        1. Thicker-clients (mobile browser-based)
                        2. No persistent Internet connection
                           required
                        3. App web pages are stored on device; user
                           can quickly reference via a bookmark
                        4. Makes use of HTML5:
                          •   application cache (manifest)
                          •   local database
Tuesday, May 11, 2010
App Spectrum

            Web             Hybrid     Native




Tuesday, May 11, 2010
Native          Native Apps


   1. Thick-client apps
   2. Developed in standard
      development
                                XCode       Eclipse
      languages, as defined
      by the platform          C/C++        Java/JVM
                              Objective-C


Tuesday, May 11, 2010
Native         Native Apps

  3. May include an in-app
     web browser.
     (Custom formatting)
  4. The web browser
     doesn’t have to use
     the full screen.        UIWebView   WebView
     (Custom control)

Tuesday, May 11, 2010
Native                     Native Apps

              5. Direct access to the native capabilities
                 of the device...

                    accelerometer               file system
                                     camera
                          audio recording     graphics

                        as limited by the device provider

Tuesday, May 11, 2010
Native                    Native Apps

              6. May be distributed as an application and
                 marketed through the App Store or
                 Market




                        as limited by the device provider

Tuesday, May 11, 2010
App Spectrum

            Web             Hybrid     Native




Tuesday, May 11, 2010
Hybrid           Hybrid Apps

                        1. Thick Client Apps
                        2. Use Native wrappers as an app package
                        3. Provide an in-app web browser to display
                           Web content to the user (HTML, CSS,
                           JavaScript)



Tuesday, May 11, 2010
Hybrid       Hybrid Apps

                 Some Web hybrid wrapper frameworks include:




                                       Appcelerator
                         PhoneGap
                                        Titanium
      Both give access via JavaScript to some device features,
               previously reserved for Native apps.
Tuesday, May 11, 2010
PhoneGap

                        http://phonegap.com
                        FOSS framework
                        minimalist philosophy
                        easy to use: put files in the www folder




Tuesday, May 11, 2010
Hybrid        Hybrid Aps

                 Some Web hybrid wrapper frameworks include:




                                       Appcelerator
                         PhoneGap
                                        Titanium


Tuesday, May 11, 2010
Appcelerator
                                 Titanium
                        http://appcelerator.com
                        Commercial open source framework
                          not necessarily “free as in beer”
                        extensive JavaScript libraries
                        AIR-like: supports desktop, too...



Tuesday, May 11, 2010
Hybrid           Hybrid Apps

           Some Non-Web hybrid wrapper frameworks include:



                        Adobe AIR      Unity       rhomobile
                          Flash

                               MonoTouch       Corona
                               MonoDroid
Tuesday, May 11, 2010
Hybrid              The Good
                        1. Quicker learning curve, can re-use your
                           existing skills
                        2. Easier to target apps for both iPhone and
                           Android
                        3. Use existing HTML/CSS/JavaScript tools
                           for development and testing



Tuesday, May 11, 2010
Hybrid                The Bad

                        1. Slower performance (compared to Native)
                        2. App doesn’t quite feel right, sluggish, non-
                           responsive
                        3. Some device features may not be available
                           or not quite as accessible



Tuesday, May 11, 2010
Hybrid              The Ugly




                        The Elephant in the Corner of the Room
Tuesday, May 11, 2010
What’s with the
                             elephant?
                    • Apple’s iPhone OS is closed & restrictive
                    • API, device feature usage is limited
                    • Restrictive NDAs required to develop on
                        unreleased software
                    • App distribution is controlled by Apple
                    • If Apple doesn’t like your app...
                                         Sorry, Charlie!
Tuesday, May 11, 2010
Bad Apple
                        Apple sets the rules...
                           ... and can change the rules at any time!

                        Like, just last week:



                                              te d
                          3.3.1 — Applications may only use Documented APIs in the




                                            c
                          manner prescribed by Apple and must not use or call any




                                          da
                          private APIs. Applications must be originally written in




                              e
                          Objective-C, C, C++, or JavaScript as executed by the




                            R
                          iPhone OS WebKit engine, and only code written in C, C++,
                          and Objective-C may compile and directly link against the
                          Documented APIs (e.g., Applications that link to
                          Documented APIs through an intermediary translation or
                          compatibility layer or tool are prohibited).


Tuesday, May 11, 2010
Section 3.3.1


                        Adobe AIR      Unity       rhomobile
                          Flash

                               MonoTouch       Corona
                               MonoDroid


Tuesday, May 11, 2010
Section 3.3.1



                        ??
                        PhoneGap
                                   Appcelerator
                                    Titanium




Tuesday, May 11, 2010
Why?

               As a developer, why put up with
                     Apple’s restrictions?
                    • Market: 85M devices (10x Android)
                    • App Store Exposure
                    • Large Market = Great Potential $$$
                   Apple’s restrictions do not apply to pure Web
                       applications (traditional and offline)
Tuesday, May 11, 2010
A few words on
                    • Android provides access to more device
                        features than iPhone.
                    • You choose how to distribute your app:
                     • Via Google Market
                     • Via your own mechanism (web site)
                    • Android drawback:
                         Plethora of devices and device capabilities,
                               screen sizes, resolutions, etc.
Tuesday, May 11, 2010
What to do?
                    1. Style your Web site using mobile-specific
                       proportions and style sheets.
                    2. Consider if there are portions of your Web
                       site that could be useful offline for mobile
                       users.
                    3. Best bets for Hybrid packaging: PhoneGap
                       and Appcelerator Titanium
                    4. Determine if a user may be better served
                       with a Native app.
Tuesday, May 11, 2010
Looking toward 2011
                    • More WebKit technologies:
                     • WebGL
                     • SVG
                    • Android market penetration increasing
                        quickly.
                    • Another major player?
                                                         7
Tuesday, May 11, 2010
Thank You!
                        For mobile app development questions,
                                please contact me at:


                                    Bill Heyman
                                    @byteCoder
                               bill@codemorphic.com


Tuesday, May 11, 2010

More Related Content

Similar to CodeMorphic at MinneWebCon 2010

Overview of Mobile Development Platforms
Overview of Mobile Development PlatformsOverview of Mobile Development Platforms
Overview of Mobile Development PlatformsMike Wolfson
 
Putting Web Into Native App
Putting Web Into Native AppPutting Web Into Native App
Putting Web Into Native AppBess Ho
 
Hybrid app development
Hybrid app developmentHybrid app development
Hybrid app developmentHarshul Shah
 
Primers on mobile application development
Primers on mobile application developmentPrimers on mobile application development
Primers on mobile application developmentSatta Nathan
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012marcocasario
 
W3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web StandardsW3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web Standardsbrucelawson
 
France ug 11302010
France ug 11302010France ug 11302010
France ug 11302010FranckThomas
 
Informix User Group France - 30/11/2010 - Informix &amp; Open Source - J Roy
Informix User Group France - 30/11/2010 - Informix &amp; Open Source - J RoyInformix User Group France - 30/11/2010 - Informix &amp; Open Source - J Roy
Informix User Group France - 30/11/2010 - Informix &amp; Open Source - J RoyNicolas Desachy
 
UGIF 12 2010 - France UG
UGIF 12 2010 - France UGUGIF 12 2010 - France UG
UGIF 12 2010 - France UGUGIF
 
Mozilla And Open Web
Mozilla And Open WebMozilla And Open Web
Mozilla And Open WebBrian King
 
Developing cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phoneDeveloping cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phoneColin Eberhardt
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?Reto Meier
 
Building Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapBuilding Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapSimon MacDonald
 
Flash platform fitc
Flash platform fitcFlash platform fitc
Flash platform fitcMark Doherty
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationTom Deryckere
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsRomin Irani
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile WebMrJ1971
 

Similar to CodeMorphic at MinneWebCon 2010 (20)

Overview of Mobile Development Platforms
Overview of Mobile Development PlatformsOverview of Mobile Development Platforms
Overview of Mobile Development Platforms
 
Putting Web Into Native App
Putting Web Into Native AppPutting Web Into Native App
Putting Web Into Native App
 
Hybrid app development
Hybrid app developmentHybrid app development
Hybrid app development
 
Jax 2011 keynote
Jax 2011 keynoteJax 2011 keynote
Jax 2011 keynote
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
 
Primers on mobile application development
Primers on mobile application developmentPrimers on mobile application development
Primers on mobile application development
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012
 
W3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web StandardsW3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web Standards
 
France ug 11302010
France ug 11302010France ug 11302010
France ug 11302010
 
Informix User Group France - 30/11/2010 - Informix &amp; Open Source - J Roy
Informix User Group France - 30/11/2010 - Informix &amp; Open Source - J RoyInformix User Group France - 30/11/2010 - Informix &amp; Open Source - J Roy
Informix User Group France - 30/11/2010 - Informix &amp; Open Source - J Roy
 
UGIF 12 2010 - France UG
UGIF 12 2010 - France UGUGIF 12 2010 - France UG
UGIF 12 2010 - France UG
 
Mozilla And Open Web
Mozilla And Open WebMozilla And Open Web
Mozilla And Open Web
 
Firefox OS
Firefox OSFirefox OS
Firefox OS
 
Developing cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phoneDeveloping cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phone
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
Building Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapBuilding Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGap
 
Flash platform fitc
Flash platform fitcFlash platform fitc
Flash platform fitc
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElements
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile Web
 

Recently uploaded

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 

Recently uploaded (20)

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
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
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?
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 

CodeMorphic at MinneWebCon 2010

  • 1. Mobile Apps Native, Web, or Both? Bill Heyman CodeMorphic, Inc. Tuesday, May 11, 2010
  • 2. Smartphones 2010 Two major players in Smartphone market support state-of-the-art web standards: Tuesday, May 11, 2010
  • 3. iPhone • Arrived 2007 • 3 models (iPhone, iPod touch, iPad) • Tied to a single US carrier (AT&T) • Installed base 85M (includes iPod touch) • Almost 200K apps available • Tightly controlled Tuesday, May 11, 2010
  • 4. Android • Arrived 2008 • 25 different phones (plus other devices) • All major US carriers • Installed base of 8M and increasing • Heading toward 50K apps • Generally open, loosely controlled Tuesday, May 11, 2010
  • 5. Web Commonality WebKit-based browser As of Android OS 2.0, both iPhone and Android support new web standard and HTML5 features, such as: <video> local database geolocation canvas <audio> offline app caching transitions Tuesday, May 11, 2010
  • 6. App Spectrum Web Uses web standard technologies: HTML, CSS, JavaScript Tuesday, May 11, 2010
  • 7. App Spectrum Web Native Uses tools & compiled languages that are targeted for the device. Tuesday, May 11, 2010
  • 8. App Spectrum Web Hybrid Native Combines Web and Native technologies. Generally, the web technologies are wrapped by a native shell. Tuesday, May 11, 2010
  • 9. Hybrid Apps ~ Native Hybrid Native • Packaged in a Native App shell • Installed like Native Apps • Distributed like Native Apps But developed with non-native technologies. Tuesday, May 11, 2010
  • 10. App Spectrum Web Hybrid Native Tuesday, May 11, 2010
  • 11. Web Web Apps Two types of mobile web apps: 1. Traditional 2. Offline Tuesday, May 11, 2010
  • 12. Web Traditional Web 1. Thin-client apps (mobile browser-based) 2. Require a persistent Internet connection 3. Processing and persistence mostly on the server-side (PHP, Python, Ruby, ...) Tuesday, May 11, 2010
  • 13. Web Offline Web 1. Thicker-clients (mobile browser-based) 2. No persistent Internet connection required 3. App web pages are stored on device; user can quickly reference via a bookmark 4. Makes use of HTML5: • application cache (manifest) • local database Tuesday, May 11, 2010
  • 14. App Spectrum Web Hybrid Native Tuesday, May 11, 2010
  • 15. Native Native Apps 1. Thick-client apps 2. Developed in standard development XCode Eclipse languages, as defined by the platform C/C++ Java/JVM Objective-C Tuesday, May 11, 2010
  • 16. Native Native Apps 3. May include an in-app web browser. (Custom formatting) 4. The web browser doesn’t have to use the full screen. UIWebView WebView (Custom control) Tuesday, May 11, 2010
  • 17. Native Native Apps 5. Direct access to the native capabilities of the device... accelerometer file system camera audio recording graphics as limited by the device provider Tuesday, May 11, 2010
  • 18. Native Native Apps 6. May be distributed as an application and marketed through the App Store or Market as limited by the device provider Tuesday, May 11, 2010
  • 19. App Spectrum Web Hybrid Native Tuesday, May 11, 2010
  • 20. Hybrid Hybrid Apps 1. Thick Client Apps 2. Use Native wrappers as an app package 3. Provide an in-app web browser to display Web content to the user (HTML, CSS, JavaScript) Tuesday, May 11, 2010
  • 21. Hybrid Hybrid Apps Some Web hybrid wrapper frameworks include: Appcelerator PhoneGap Titanium Both give access via JavaScript to some device features, previously reserved for Native apps. Tuesday, May 11, 2010
  • 22. PhoneGap http://phonegap.com FOSS framework minimalist philosophy easy to use: put files in the www folder Tuesday, May 11, 2010
  • 23. Hybrid Hybrid Aps Some Web hybrid wrapper frameworks include: Appcelerator PhoneGap Titanium Tuesday, May 11, 2010
  • 24. Appcelerator Titanium http://appcelerator.com Commercial open source framework not necessarily “free as in beer” extensive JavaScript libraries AIR-like: supports desktop, too... Tuesday, May 11, 2010
  • 25. Hybrid Hybrid Apps Some Non-Web hybrid wrapper frameworks include: Adobe AIR Unity rhomobile Flash MonoTouch Corona MonoDroid Tuesday, May 11, 2010
  • 26. Hybrid The Good 1. Quicker learning curve, can re-use your existing skills 2. Easier to target apps for both iPhone and Android 3. Use existing HTML/CSS/JavaScript tools for development and testing Tuesday, May 11, 2010
  • 27. Hybrid The Bad 1. Slower performance (compared to Native) 2. App doesn’t quite feel right, sluggish, non- responsive 3. Some device features may not be available or not quite as accessible Tuesday, May 11, 2010
  • 28. Hybrid The Ugly The Elephant in the Corner of the Room Tuesday, May 11, 2010
  • 29. What’s with the elephant? • Apple’s iPhone OS is closed & restrictive • API, device feature usage is limited • Restrictive NDAs required to develop on unreleased software • App distribution is controlled by Apple • If Apple doesn’t like your app... Sorry, Charlie! Tuesday, May 11, 2010
  • 30. Bad Apple Apple sets the rules... ... and can change the rules at any time! Like, just last week: te d 3.3.1 — Applications may only use Documented APIs in the c manner prescribed by Apple and must not use or call any da private APIs. Applications must be originally written in e Objective-C, C, C++, or JavaScript as executed by the R iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited). Tuesday, May 11, 2010
  • 31. Section 3.3.1 Adobe AIR Unity rhomobile Flash MonoTouch Corona MonoDroid Tuesday, May 11, 2010
  • 32. Section 3.3.1 ?? PhoneGap Appcelerator Titanium Tuesday, May 11, 2010
  • 33. Why? As a developer, why put up with Apple’s restrictions? • Market: 85M devices (10x Android) • App Store Exposure • Large Market = Great Potential $$$ Apple’s restrictions do not apply to pure Web applications (traditional and offline) Tuesday, May 11, 2010
  • 34. A few words on • Android provides access to more device features than iPhone. • You choose how to distribute your app: • Via Google Market • Via your own mechanism (web site) • Android drawback: Plethora of devices and device capabilities, screen sizes, resolutions, etc. Tuesday, May 11, 2010
  • 35. What to do? 1. Style your Web site using mobile-specific proportions and style sheets. 2. Consider if there are portions of your Web site that could be useful offline for mobile users. 3. Best bets for Hybrid packaging: PhoneGap and Appcelerator Titanium 4. Determine if a user may be better served with a Native app. Tuesday, May 11, 2010
  • 36. Looking toward 2011 • More WebKit technologies: • WebGL • SVG • Android market penetration increasing quickly. • Another major player? 7 Tuesday, May 11, 2010
  • 37. Thank You! For mobile app development questions, please contact me at: Bill Heyman @byteCoder bill@codemorphic.com Tuesday, May 11, 2010