SlideShare a Scribd company logo
1 of 43
Mobile & Me
                              @tracypesin




Thursday, October 18, 12
Mobile is big




Thursday, October 18, 12
• 75% of people worldwide have access to a
                           mobile phone

                     • More than half of all US cellphones are
                           smartphones




Thursday, October 18, 12
iOS   Android           RIM         Windows Phone



                                                 4%
                                         10%
                                                            iOS
                                                            34%




                                       Android
                                        53%




                           US Smartphone market share, July 2012
Thursday, October 18, 12
• 400 million iOS devices sold
                     • A million new Android users each day
                     • 700,000 apps in Apple App Store, almost as
                           many in Google Play (Android)

                     • 30 billion iOS downloads, 25 billion Android

Thursday, October 18, 12
“Now we are a mobile
                        company”

                           Mark Zuckerburg, September 2012




Thursday, October 18, 12
• Should I get into developing mobile apps?
                     • And if so, on which platform?




Thursday, October 18, 12
bitly
          “The new way to bookmark,
         organize, and share the things
            you care about online.”




Thursday, October 18, 12
MLB.com
Thursday, October 18, 12
Vindigo
                   Launched in 2000
             First mobile local search app
                  Sync before you go!




Thursday, October 18, 12
2002:
          BREW vs J2ME




Thursday, October 18, 12
BREW

                     • Proprietary, native (C-language based)
                     • Close integration of hardware and software
                     • Closed system to distribute apps


Thursday, October 18, 12
iOS

                     • Proprietary, native (C-language based)
                     • Close integration of hardware and software
                     • Closed system to distribute apps


Thursday, October 18, 12
J2ME

                     •     Java language, runs in VM

                     •     More open app distribution system (apps can
                           be downloaded through a link)

                     •     Less consistent device capabilities, screen sizes




Thursday, October 18, 12
Android

                 •         Java language, runs in VM

                 •         More open app distribution system (apps can be
                           downloaded through a link)

                 •         Less consistent device capabilities, screen sizes




Thursday, October 18, 12
Can’t we just
               put it on the
               mobile web?




Thursday, October 18, 12
Can’t we just
               put it on the
               mobile web?
                    Maybe but it might
                     be sloooooww




Thursday, October 18, 12
Recurring themes...

                     • Open application ecosystem vs closed
                     • Integrated hardware vs OS portability
                     • Native vs Web


Thursday, October 18, 12
Open vs Closed



Thursday, October 18, 12
iOS: Closed source


                     • Developer only sees header files of Apple
                           libraries
                     • Makes debugging tough


Thursday, October 18, 12
Android: Open Source


                     • Can step through platform code if you have
                           an issue
                     • But... manufacturer modified versions slow
                           to update




Thursday, October 18, 12
Inter-app communication




                                     <intent-filter>
                                     <action android:name="android.intent.action.SEND" />
                                     <data android:mimeType="image/*" />
                                     <category android:name="android.intent.category.DEFAULT" />
                                     </intent-filter>


Thursday, October 18, 12
iOS: Pseudo-multitasking


                      • System “freezes” apps, restores state
                      • Apps can only update their data in
                           background once a day




Thursday, October 18, 12
Android: True multitasking



                     • Apps and services can run in
                           background
                     • Downside: performance, battery life


Thursday, October 18, 12
iOS: All apps reviewed by Apple



                     • Submit, cross fingers, pray to the Apple
                           gods
                     • Can take weeks to fix bugs


Thursday, October 18, 12
“We view Apps different than books or songs,
         which we do not curate. If you want to criticize a
         religion, write a book. If you want to describe sex,
         write a book or a song, or create a medical App.”


         “If your App is rejected, we have a Review Board
         that you can appeal to. If you run to the press and
         trash us, it never helps.”


                              - App Store Review Guidelines



Thursday, October 18, 12
Open vs Closed
                 App distribution: iOS




Thursday, October 18, 12
Android: No review process


                     • Fix bugs as they happen
                     • Apps can be downloaded via a link in a web
                           page

                     • Downsides: Piracy, Security


Thursday, October 18, 12
Integrated hardware/
                     software vs portability


Thursday, October 18, 12
iOS: Integrated hardware

                 • C/C++/Objective-C compiled to machine
                           language
                 • Static memory management (no garbage
                           collection)
                 • Automatic hardware acceleration for
                           graphics


Thursday, October 18, 12
Before ARC
     Thingie *aThingie = [[Thingie alloc] init];
     self.myThingie = aThingie;
     [aThingie release];



     ARC
     self.myThingie = [[Thingie alloc] init];




Thursday, October 18, 12
Android: Portable



                     • Java
                     • Garbage collected
                     • Can (and does) run on different processors


Thursday, October 18, 12
iOS: Minimal app porting


                     • iPad
                     • Retina display
                     • iPhone 5


Thursday, October 18, 12
Android: Device fragmentation

                     • Galaxies and HTCs and Droids oh my!
                     • Different screen sizes, multimedia codecs,
                           etc
                     • Big changes (like dropping the menu
                           button) are the developer’s problem



Thursday, October 18, 12
Integration vs Portability
                 Device fragmentation: Android

                                  9%
                             7%
                                              As of June 2012

                           19%                2.3 (Dec 2010)
                                              2.2 (June 2010)
                                       65%    4.0 (Oct 2011)
                                              Other




                 Manufacturer customized OS == SLOW upgrades


Thursday, October 18, 12
Why I chose iOS
                     • Deep, layered libraries with (generally)
                           great documentation
                     • Great toolset (though devs will always
                           complain)
                     • Minimal porting means more time on
                           features!
                     • Most companies still start iOS first
Thursday, October 18, 12
Native vs Web: Do we
                       even need an app?


Thursday, October 18, 12
“All of our developers are good at HTML. Only a
                           few of them are really good at Objective-C and
                           Android. ”
                                      - Facebook Mobile Engineering Manager
                                                            September 2011




Thursday, October 18, 12
"The biggest mistake we made as a
                 company was betting too much on HTML5
                 rather than native...
                 It turns out, ‘good enough’ wasn’t good
                 enough.”
                                              - Mark Zuckerburg
                                                 September 2012




Thursday, October 18, 12
Happy hybrids


                           • Not either/or!
                           • Can make some views web, others native


Thursday, October 18, 12
Web-friendly views

                     • New or temporary features
                     • Dynamically formatted, server-driven
                           content (er, HTML)
                     • Less performance intensive
                     • Leave the chrome native if possible

Thursday, October 18, 12
Some tools for hybrid
                              apps

                     • PhoneGap
                     • Titanium
                     • jQuery mobile


Thursday, October 18, 12
Thanks for listening!
                                      @tracypesin
                                tracy.pesin@gmail.com
                                 http://bit.ly/lwcMobile




Thursday, October 18, 12

More Related Content

Similar to Mobile & Me

The Android vs. Apple iOS Security Showdown
The Android vs. Apple iOS Security Showdown The Android vs. Apple iOS Security Showdown
The Android vs. Apple iOS Security Showdown Tom Eston
 
Responsive Web Design &amp; Workflow
Responsive Web Design &amp; WorkflowResponsive Web Design &amp; Workflow
Responsive Web Design &amp; Workflowhouhr
 
Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...
Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...
Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...R. Scott Blamey
 
Internship dotCloud
Internship dotCloudInternship dotCloud
Internship dotCloudJill Mee
 
GTUG/GDDDE 2011 Android Tablet Use Cases
GTUG/GDDDE 2011 Android Tablet Use CasesGTUG/GDDDE 2011 Android Tablet Use Cases
GTUG/GDDDE 2011 Android Tablet Use Casesndomrose
 
Embedded Android Workshop at AnDevConII
Embedded Android Workshop at AnDevConIIEmbedded Android Workshop at AnDevConII
Embedded Android Workshop at AnDevConIIOpersys inc.
 
Android the sweetmobility
Android the sweetmobilityAndroid the sweetmobility
Android the sweetmobilityindiangarg
 
Porting Tips: iOS to Android
Porting Tips: iOS to AndroidPorting Tips: iOS to Android
Porting Tips: iOS to Androidelhypnotoad
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Opersys inc.
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Opersys inc.
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with PieOpersys inc.
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeOpersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
DrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with DrupalDrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with Drupalzroger
 
Embedded Android Workshop at Embedded Linux Conference Europe 2011
Embedded Android Workshop at Embedded Linux Conference Europe 2011Embedded Android Workshop at Embedded Linux Conference Europe 2011
Embedded Android Workshop at Embedded Linux Conference Europe 2011Opersys inc.
 
Hyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and JavascriptHyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and Javascriptnlwebperf
 
Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Opersys inc.
 
Ruby and iOS: An inside look
Ruby and iOS: An inside lookRuby and iOS: An inside look
Ruby and iOS: An inside lookJeanine Jue
 

Similar to Mobile & Me (20)

The Android vs. Apple iOS Security Showdown
The Android vs. Apple iOS Security Showdown The Android vs. Apple iOS Security Showdown
The Android vs. Apple iOS Security Showdown
 
Responsive Web Design &amp; Workflow
Responsive Web Design &amp; WorkflowResponsive Web Design &amp; Workflow
Responsive Web Design &amp; Workflow
 
Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...
Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...
Welcome to the Cloud: An Introduction to Cloud Computing and how it Changes E...
 
Internship dotCloud
Internship dotCloudInternship dotCloud
Internship dotCloud
 
Android
AndroidAndroid
Android
 
GTUG/GDDDE 2011 Android Tablet Use Cases
GTUG/GDDDE 2011 Android Tablet Use CasesGTUG/GDDDE 2011 Android Tablet Use Cases
GTUG/GDDDE 2011 Android Tablet Use Cases
 
Embedded Android Workshop at AnDevConII
Embedded Android Workshop at AnDevConIIEmbedded Android Workshop at AnDevConII
Embedded Android Workshop at AnDevConII
 
Android the sweetmobility
Android the sweetmobilityAndroid the sweetmobility
Android the sweetmobility
 
Porting Tips: iOS to Android
Porting Tips: iOS to AndroidPorting Tips: iOS to Android
Porting Tips: iOS to Android
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with Pie
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC Europe
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
DrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with DrupalDrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with Drupal
 
Embedded Android Workshop at Embedded Linux Conference Europe 2011
Embedded Android Workshop at Embedded Linux Conference Europe 2011Embedded Android Workshop at Embedded Linux Conference Europe 2011
Embedded Android Workshop at Embedded Linux Conference Europe 2011
 
Hyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and JavascriptHyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and Javascript
 
Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011
 
Ruby and iOS: An inside look
Ruby and iOS: An inside lookRuby and iOS: An inside look
Ruby and iOS: An inside look
 
Ruby and iOS: An inside look
Ruby and iOS: An inside lookRuby and iOS: An inside look
Ruby and iOS: An inside look
 

Recently uploaded

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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"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
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
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
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"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...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
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
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Mobile & Me

  • 1. Mobile & Me @tracypesin Thursday, October 18, 12
  • 2. Mobile is big Thursday, October 18, 12
  • 3. • 75% of people worldwide have access to a mobile phone • More than half of all US cellphones are smartphones Thursday, October 18, 12
  • 4. iOS Android RIM Windows Phone 4% 10% iOS 34% Android 53% US Smartphone market share, July 2012 Thursday, October 18, 12
  • 5. • 400 million iOS devices sold • A million new Android users each day • 700,000 apps in Apple App Store, almost as many in Google Play (Android) • 30 billion iOS downloads, 25 billion Android Thursday, October 18, 12
  • 6. “Now we are a mobile company” Mark Zuckerburg, September 2012 Thursday, October 18, 12
  • 7. • Should I get into developing mobile apps? • And if so, on which platform? Thursday, October 18, 12
  • 8. bitly “The new way to bookmark, organize, and share the things you care about online.” Thursday, October 18, 12
  • 10. Vindigo Launched in 2000 First mobile local search app Sync before you go! Thursday, October 18, 12
  • 11. 2002: BREW vs J2ME Thursday, October 18, 12
  • 12. BREW • Proprietary, native (C-language based) • Close integration of hardware and software • Closed system to distribute apps Thursday, October 18, 12
  • 13. iOS • Proprietary, native (C-language based) • Close integration of hardware and software • Closed system to distribute apps Thursday, October 18, 12
  • 14. J2ME • Java language, runs in VM • More open app distribution system (apps can be downloaded through a link) • Less consistent device capabilities, screen sizes Thursday, October 18, 12
  • 15. Android • Java language, runs in VM • More open app distribution system (apps can be downloaded through a link) • Less consistent device capabilities, screen sizes Thursday, October 18, 12
  • 16. Can’t we just put it on the mobile web? Thursday, October 18, 12
  • 17. Can’t we just put it on the mobile web? Maybe but it might be sloooooww Thursday, October 18, 12
  • 18. Recurring themes... • Open application ecosystem vs closed • Integrated hardware vs OS portability • Native vs Web Thursday, October 18, 12
  • 19. Open vs Closed Thursday, October 18, 12
  • 20. iOS: Closed source • Developer only sees header files of Apple libraries • Makes debugging tough Thursday, October 18, 12
  • 21. Android: Open Source • Can step through platform code if you have an issue • But... manufacturer modified versions slow to update Thursday, October 18, 12
  • 22. Inter-app communication <intent-filter> <action android:name="android.intent.action.SEND" /> <data android:mimeType="image/*" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> Thursday, October 18, 12
  • 23. iOS: Pseudo-multitasking • System “freezes” apps, restores state • Apps can only update their data in background once a day Thursday, October 18, 12
  • 24. Android: True multitasking • Apps and services can run in background • Downside: performance, battery life Thursday, October 18, 12
  • 25. iOS: All apps reviewed by Apple • Submit, cross fingers, pray to the Apple gods • Can take weeks to fix bugs Thursday, October 18, 12
  • 26. “We view Apps different than books or songs, which we do not curate. If you want to criticize a religion, write a book. If you want to describe sex, write a book or a song, or create a medical App.” “If your App is rejected, we have a Review Board that you can appeal to. If you run to the press and trash us, it never helps.” - App Store Review Guidelines Thursday, October 18, 12
  • 27. Open vs Closed App distribution: iOS Thursday, October 18, 12
  • 28. Android: No review process • Fix bugs as they happen • Apps can be downloaded via a link in a web page • Downsides: Piracy, Security Thursday, October 18, 12
  • 29. Integrated hardware/ software vs portability Thursday, October 18, 12
  • 30. iOS: Integrated hardware • C/C++/Objective-C compiled to machine language • Static memory management (no garbage collection) • Automatic hardware acceleration for graphics Thursday, October 18, 12
  • 31. Before ARC Thingie *aThingie = [[Thingie alloc] init]; self.myThingie = aThingie; [aThingie release]; ARC self.myThingie = [[Thingie alloc] init]; Thursday, October 18, 12
  • 32. Android: Portable • Java • Garbage collected • Can (and does) run on different processors Thursday, October 18, 12
  • 33. iOS: Minimal app porting • iPad • Retina display • iPhone 5 Thursday, October 18, 12
  • 34. Android: Device fragmentation • Galaxies and HTCs and Droids oh my! • Different screen sizes, multimedia codecs, etc • Big changes (like dropping the menu button) are the developer’s problem Thursday, October 18, 12
  • 35. Integration vs Portability Device fragmentation: Android 9% 7% As of June 2012 19% 2.3 (Dec 2010) 2.2 (June 2010) 65% 4.0 (Oct 2011) Other Manufacturer customized OS == SLOW upgrades Thursday, October 18, 12
  • 36. Why I chose iOS • Deep, layered libraries with (generally) great documentation • Great toolset (though devs will always complain) • Minimal porting means more time on features! • Most companies still start iOS first Thursday, October 18, 12
  • 37. Native vs Web: Do we even need an app? Thursday, October 18, 12
  • 38. “All of our developers are good at HTML. Only a few of them are really good at Objective-C and Android. ” - Facebook Mobile Engineering Manager September 2011 Thursday, October 18, 12
  • 39. "The biggest mistake we made as a company was betting too much on HTML5 rather than native... It turns out, ‘good enough’ wasn’t good enough.” - Mark Zuckerburg September 2012 Thursday, October 18, 12
  • 40. Happy hybrids • Not either/or! • Can make some views web, others native Thursday, October 18, 12
  • 41. Web-friendly views • New or temporary features • Dynamically formatted, server-driven content (er, HTML) • Less performance intensive • Leave the chrome native if possible Thursday, October 18, 12
  • 42. Some tools for hybrid apps • PhoneGap • Titanium • jQuery mobile Thursday, October 18, 12
  • 43. Thanks for listening! @tracypesin tracy.pesin@gmail.com http://bit.ly/lwcMobile Thursday, October 18, 12