SlideShare a Scribd company logo
1 of 29
Native Development on
   iOS and Android
    Jan Kroon, Real Thinks B.V.

   @ mdevcon March 10, 2012
My Timeline
     Researcher         Project Manager        CTO        CEO     CEO   Business Development   Entrepreneur




                            Universität Bern
Mathematics & Physics   Phd Computer Science         Management                    Listener            Speaker
IMHO App Generators suck ...
If your goal is to create an amazing App

   •   You want to use the latest and the greatest features

   •   You want to test and tune performance

   •   You want your App to feel natural to users
So you develop a native App, and if you want to reach a
world market you develop native Apps on multiple
platforms!
FigureRunning App
Your body is the controller




compass / gyroscope   accellerometer
iOS and Android

          Xcode ~ Eclipse
            ObjC ~ Java
     iOS SDK ~ Android SDK
        project ~ Manifest
XIB files ~ XML User Interface files
    ViewControllers ~ Activities
TableViewController ~ List Activity?
         Instruments ~ ....
                 ...
            Jan ~ Hugo
Interesting Areas

•   User Navigation

•   Screens

•   Multi-tasking

•   Inter App Communication

•   Sensors

•   Apple / Google Services

•   Testing on Devices
Navigation

Ways to control an App:

• push hard buttons
• tap soft buttons, sliders, switches, ...
• gestures on content, e.g. swipe, pinch
• movements, e.g. shake to undo
• speech
How your brain works

•   Cortex makes a model of the world on six
    abstraction levels, and constantly predicts the
    next input of your senses.
                   Jeff Hawkins: On Intelligence

•   That’s why real world metaphores like
    buttons, tabs, sliders etc. are useful

•   That’s why consistency is important, the real
    world is pretty consistent

•   That’s why animations are valuable, if you
    touch real world objects they often move.
Navigation in iOS and Android

•   Apple has a tradition of writing excellent Human
    Interface Guidelines, controls all software and
    hardware, and bundles Apps that give a good
    example. (Contacts - TableView / NavigationBar,
    Music - TabBar, Weather - FlipSideView).

•   Google has a hard time. It controls only part of the
    software stack. Hardware manufacturers often add
    their own presentation layer and bundle their own
    Apps. And even worse carriers can determine to
    switch off certain capabilities or refuse bundled
    Apps in favor of their own Apps.
Android phones




HTC Sense      Samsung TouchWiz   Google Holo
Differences iOS and Android

•   Android users are used to use hard buttons for “home”,
    “back” and “menu”. iPhone users expect a navigation bar
    with a title and a “back button” or a “tab bar” and only
    use a hard button for quiting an App.

•   In Ice Cream Sandwich (Android 4.0) all hard buttons
    are replaced with three standard soft buttons “back”,
    “home” and “task manager”.

•   Apple distinguishes between a NavBar, TabBar and a
    ToolBar. Google introduced an Action Bar in Ice Cream
    Sandwich, that is a mix between a NavBar and a ToolBar?
FigureRunning Apps




       tab bar
FigureRunning Apps
     status bar
                     action bar
      nav bar




     tool bar
Screens

•   Older iOS devices have a screen of
    320 x 480 or 1024 x 768 pixels. New
    iOS devices have a Retina display of
    640 x 960 or 2048 x1536 pixels.

•   On Android you may stumble upon
    any size screen that was ever
    manufactured. That makes it very
    difficult to create pixel perfect
    designs. It also explains why the
    “menu” button is very popular.
Multi-tasking

•   FigureRunning App should continue working, also
    when a phone call is received or user chooses
    another song in the Music App.

•   On iOS policed multi-tasking is possible since
    version 4, but only in special cases, e.g. navigation,
    playing music, and task completion.

•   In Android unrestricted multi-tasking has always
    been available. This makes a developer’s life easy,
    but comes with a performance cost.
Inter App Communication

•   Share FigureRuns on Twitter and Facebook or send
    them attached to an email.

•   In iOS it is possible to do all that, without leaving the
    App. (URL scheme or make own UTI for attachment)

•   In Android it is necessary and normal to leave the
    App and switch to Twitter App to send a Tweet or
    Facebook App to put a post on a friend’s wall.
FigureRunning Apps
Sensors


• We encountered no problems at all. It was
  even possible to use each other’s
  algorithms.
• It seems that the closer you come to the
  hardware, the more similar iOS devices and
  Android devices behave.
Apple / Google Services

      App Store ~ Android Market Google Play
           In App Purchasing ~ In App Billing
                     iAd ~ AdMob
Push Notifications ~ Android Cloud to Device Messaging
             iCloud ~ No Google equivalent?
         Game Center ~ No Google equivalent?
Testing on Devices
Testing on Devices
•   We are testing the Android App with a big group
    of volonteers from all over the world.

•   Unfortunately many crashes only happen on
    specific phones.

•   It is often impossible to reproduce the problems
    on our own devices. So we are down to studying
    crash logs.

•   Clearly testing on iOS devices is a breeze
    compared to testing on Android devices, due to
    the fragmentation of the platform.
Conclusions

•   Android devices differ from iOS devices mainly in
    user experience and the software. The closer
    you get to network, sensors or processors the
    more similar the two platforms are.

•   Android development differs from iOS
    development in that Android development
    tools are not as advanced and integrated as
    Xcode.

•   It is practically impossible to write an App that will
    run flawless on all existing Android devices.
Recommendations

•   Make separate User Interaction Designs for iOS and
    Android versions.

•   Let a “native developer” translate your App.

•   Aim at a few popular Android phones, make sure
    your artwork looks great on those phones and test
    performance of your App on those phones. Don’t
    worry about the rest.

    Develop More Amazing Apps!
Questions?

@jankroon or jan@figurerunning.com
Back Up Slides
Similarities

•   An App consists of a bundle with code files and resource files (data, texts, images, sounds)

•   The App is created with a set of programming tools, named Integrated Development Environment (IDE).
    Most Android developers use Eclipse, all iOS Developers use Xcode. Typical tools are editors, syntax
    checker, static analyzer, simulators, debuggers, etc.

•   The code is written in an Object Oriënted programming language (Android developers write Java code,
    iOS developers write ObjC code) --- Objects, Messages, Inheritance, ..

•   A developer can use Frameworks that are made available by either Google (for Android) or Apple (for
    iOS). A Framework contains ready-made objects that a developer can integrate and use in the App. There
    are frameworks for WebViews, MapViews, ListViews, Sending Email or Tweets, Showing Movies, ...

•   The App is executed as a process in a Run Time Environment (RTE), that is logically separated (sandboxed)
    from all other running processes. In Android this RTE is named Dalvik, a Java Virtual Machine. In iOS it is the
    iOS run time.

•   ...
Differences
 iOS is much more consistent in it’s animations than Android:

   •     lifting one screen and taking another screen from underneath the first screen and place it on top (like
         if you take a book from within a pile of books, and place it on top of the pile) is used for switching
         between Apps

   •     a screen sliding in view from the right or left is used for moving through a hierarchy (as the result of a
         tap) or to view a collection (as a result of a swipe)

   •     a screen that slides up and down and partially covers the original screen is the way to display utility
         panels

   •     fading in and out of a screen, or flipping the screen is used for switching beteen screens within the
         App.

 Android has only recently begun to catch up with Apple in paying more attention to design and
 typography. Apple is fanatical about human interface guidelines. E.g. they teach never to put “Yes” or “No”
 buttons in an alert, because this forces users to read the question and may cause problems if they don’t.
 Putting “Cancel” and “Delete” in the buttons is a superior approach. This attention to detail makes the
 difference between “Good” and “Great”.

The run loop in iOS RTE juggles with Apps, your App is either running in the forground, running in the
background or suspended in the background. The run loop in Dalvik juggles with activities, i.e. the screens (and
what happens behind the screens) of your App or other running Apps. Android doesn’t show clearly
whether the next screen is from your own App or another App. I am often clueless about which App I am using
on Android, you get screens from Mail, Browser, Maps etc. without ever having started those Apps!
Inspiration
•   http://mashable.com/2011/03/21/cross-platform-mobile-frameworks/

•   http://www.slideshare.net/360conferences/nsnotificationcenter-vs-
    appdelegate

•   http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-
    button.html

•   http://gigaom.com/2012/02/19/clearly-its-time-to-say-bye-bye-to-buttons/

•   http://watchingapple.com/2007/06/up-right-out-and-spin-iphones-animated-
    transitions/

•   http://www.figurerunning.com

•   http://www.bgr.com/2012/02/22/google-to-sell-android-based-heads-up-
    display-glasses-by-years-end/

More Related Content

What's hot

Android 4.0 UI Design Tips
Android 4.0 UI Design TipsAndroid 4.0 UI Design Tips
Android 4.0 UI Design Tips
Justin Lee
 
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureSession 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architecture
Vu Tran Lam
 
iPads for Beginners
iPads for BeginnersiPads for Beginners
iPads for Beginners
karlaholt
 

What's hot (20)

10 Design Commandments for Mobile App Developers
10 Design Commandments for Mobile App Developers10 Design Commandments for Mobile App Developers
10 Design Commandments for Mobile App Developers
 
Mobile Outlook 2010 - Where Are We?
Mobile Outlook 2010 - Where Are We?Mobile Outlook 2010 - Where Are We?
Mobile Outlook 2010 - Where Are We?
 
Designing better user interfaces
Designing better user interfacesDesigning better user interfaces
Designing better user interfaces
 
Mobile design matters - iOS and Android
Mobile design matters - iOS and AndroidMobile design matters - iOS and Android
Mobile design matters - iOS and Android
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?
 
Android 4.0 UI Design Tips
Android 4.0 UI Design TipsAndroid 4.0 UI Design Tips
Android 4.0 UI Design Tips
 
iOS design: a case study
iOS design: a case studyiOS design: a case study
iOS design: a case study
 
HCI Guidelines for iOS Platforms
HCI Guidelines for iOS PlatformsHCI Guidelines for iOS Platforms
HCI Guidelines for iOS Platforms
 
An agile approach to iPhone design: Paper prototyping + user testing
An agile approach to iPhone design:  Paper prototyping + user testingAn agile approach to iPhone design:  Paper prototyping + user testing
An agile approach to iPhone design: Paper prototyping + user testing
 
Mobile application design trend & history
Mobile application design trend & historyMobile application design trend & history
Mobile application design trend & history
 
Mobile UX Design
Mobile UX DesignMobile UX Design
Mobile UX Design
 
Designing an App: From Idea to Market
Designing an App: From Idea to MarketDesigning an App: From Idea to Market
Designing an App: From Idea to Market
 
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureSession 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architecture
 
App Guide March 2013
App Guide March 2013App Guide March 2013
App Guide March 2013
 
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOPIntroduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
 
iPads for Beginners
iPads for BeginnersiPads for Beginners
iPads for Beginners
 
iOS Human Interface Guideline
iOS Human Interface GuidelineiOS Human Interface Guideline
iOS Human Interface Guideline
 
Part II TechSource Workshop: Apps
Part II TechSource Workshop:  AppsPart II TechSource Workshop:  Apps
Part II TechSource Workshop: Apps
 
Embracing mobile platforms | nascent at carmel ventures
Embracing mobile platforms | nascent at carmel venturesEmbracing mobile platforms | nascent at carmel ventures
Embracing mobile platforms | nascent at carmel ventures
 
ipad.science.trc
ipad.science.trcipad.science.trc
ipad.science.trc
 

Viewers also liked

Slide share test
Slide share testSlide share test
Slide share test
slideminer
 
The exploration of cork
The exploration of corkThe exploration of cork
The exploration of cork
luisamiguel
 

Viewers also liked (19)

Nisb ontmoetingsdagen 2013 sport en bewegen
Nisb ontmoetingsdagen 2013   sport en bewegenNisb ontmoetingsdagen 2013   sport en bewegen
Nisb ontmoetingsdagen 2013 sport en bewegen
 
Sekharraju1
Sekharraju1Sekharraju1
Sekharraju1
 
Slide share test
Slide share testSlide share test
Slide share test
 
Week12
Week12Week12
Week12
 
Los lugares
Los lugaresLos lugares
Los lugares
 
Paradigm shifts #4
Paradigm shifts #4Paradigm shifts #4
Paradigm shifts #4
 
The exploration of cork
The exploration of corkThe exploration of cork
The exploration of cork
 
Get connected with python
Get connected with pythonGet connected with python
Get connected with python
 
Xhtml
XhtmlXhtml
Xhtml
 
End of art 100 project
End of art 100 projectEnd of art 100 project
End of art 100 project
 
Verbosirregularestablaingles
VerbosirregularestablainglesVerbosirregularestablaingles
Verbosirregularestablaingles
 
Halloween2
Halloween2Halloween2
Halloween2
 
Shellfish
ShellfishShellfish
Shellfish
 
Shellfish
ShellfishShellfish
Shellfish
 
Jn wp wyt2012
Jn wp wyt2012Jn wp wyt2012
Jn wp wyt2012
 
Jn wp wpp2012
Jn wp wpp2012Jn wp wpp2012
Jn wp wpp2012
 
Jn wp wcpn2012
Jn wp wcpn2012Jn wp wcpn2012
Jn wp wcpn2012
 
Cvpw
CvpwCvpw
Cvpw
 
Jn wp wpd2012
Jn wp wpd2012Jn wp wpd2012
Jn wp wpd2012
 

Similar to Jan Kroon's talk @mdevcon 2012

Adapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile WorkflowAdapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile Workflow
Joseph Labrecque
 
Define & design apps for success en
Define & design apps for success enDefine & design apps for success en
Define & design apps for success en
Acrmnet s.r.l.
 
Presentation
PresentationPresentation
Presentation
Tony Vo
 
Apps for Teaching and Learning the Common Core
Apps for Teaching and Learning the Common CoreApps for Teaching and Learning the Common Core
Apps for Teaching and Learning the Common Core
Kristi Richburg
 

Similar to Jan Kroon's talk @mdevcon 2012 (20)

iOS vs android .pptx
iOS  vs android .pptxiOS  vs android .pptx
iOS vs android .pptx
 
20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx
 
Adapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile WorkflowAdapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile Workflow
 
I os application with android background
I os application with android backgroundI os application with android background
I os application with android background
 
IOS vs Android presentation by Saikrishna
IOS vs Android presentation by SaikrishnaIOS vs Android presentation by Saikrishna
IOS vs Android presentation by Saikrishna
 
All about android
All about androidAll about android
All about android
 
Define & design apps for success en
Define & design apps for success enDefine & design apps for success en
Define & design apps for success en
 
Apples’ iPhone, iPod touch and iPad Application Programming - CLASS 1
Apples’ iPhone, iPod touch and iPad Application Programming - CLASS 1Apples’ iPhone, iPod touch and iPad Application Programming - CLASS 1
Apples’ iPhone, iPod touch and iPad Application Programming - CLASS 1
 
Native mobile app development pros, cons, alternatives, and cost optimization
Native mobile app development pros, cons, alternatives, and cost optimizationNative mobile app development pros, cons, alternatives, and cost optimization
Native mobile app development pros, cons, alternatives, and cost optimization
 
Android Design Guidelines 1.1
Android Design Guidelines 1.1Android Design Guidelines 1.1
Android Design Guidelines 1.1
 
Presentation
PresentationPresentation
Presentation
 
Iphone vs android
Iphone vs androidIphone vs android
Iphone vs android
 
Comp4010 Lecture7 Designing AR Systems
Comp4010 Lecture7 Designing AR SystemsComp4010 Lecture7 Designing AR Systems
Comp4010 Lecture7 Designing AR Systems
 
Android vs Ios
Android vs Ios Android vs Ios
Android vs Ios
 
Ycs iphone-development
Ycs iphone-developmentYcs iphone-development
Ycs iphone-development
 
Android and Jelly Beans
Android and Jelly Beans Android and Jelly Beans
Android and Jelly Beans
 
iOS Human Interface Guidlines for iOS-Platforms
iOS Human Interface Guidlines for iOS-PlatformsiOS Human Interface Guidlines for iOS-Platforms
iOS Human Interface Guidlines for iOS-Platforms
 
Apps for Teaching and Learning the Common Core
Apps for Teaching and Learning the Common CoreApps for Teaching and Learning the Common Core
Apps for Teaching and Learning the Common Core
 
Best iOS Application Development Tools.pdf
Best iOS Application Development Tools.pdfBest iOS Application Development Tools.pdf
Best iOS Application Development Tools.pdf
 
iOS App Development Presented by Edifyself
iOS App Development Presented by EdifyselfiOS App Development Presented by Edifyself
iOS App Development Presented by Edifyself
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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, ...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Jan Kroon's talk @mdevcon 2012

  • 1. Native Development on iOS and Android Jan Kroon, Real Thinks B.V. @ mdevcon March 10, 2012
  • 2. My Timeline Researcher Project Manager CTO CEO CEO Business Development Entrepreneur Universität Bern Mathematics & Physics Phd Computer Science Management Listener Speaker
  • 3. IMHO App Generators suck ... If your goal is to create an amazing App • You want to use the latest and the greatest features • You want to test and tune performance • You want your App to feel natural to users So you develop a native App, and if you want to reach a world market you develop native Apps on multiple platforms!
  • 5. Your body is the controller compass / gyroscope accellerometer
  • 6. iOS and Android Xcode ~ Eclipse ObjC ~ Java iOS SDK ~ Android SDK project ~ Manifest XIB files ~ XML User Interface files ViewControllers ~ Activities TableViewController ~ List Activity? Instruments ~ .... ... Jan ~ Hugo
  • 7. Interesting Areas • User Navigation • Screens • Multi-tasking • Inter App Communication • Sensors • Apple / Google Services • Testing on Devices
  • 8. Navigation Ways to control an App: • push hard buttons • tap soft buttons, sliders, switches, ... • gestures on content, e.g. swipe, pinch • movements, e.g. shake to undo • speech
  • 9. How your brain works • Cortex makes a model of the world on six abstraction levels, and constantly predicts the next input of your senses. Jeff Hawkins: On Intelligence • That’s why real world metaphores like buttons, tabs, sliders etc. are useful • That’s why consistency is important, the real world is pretty consistent • That’s why animations are valuable, if you touch real world objects they often move.
  • 10. Navigation in iOS and Android • Apple has a tradition of writing excellent Human Interface Guidelines, controls all software and hardware, and bundles Apps that give a good example. (Contacts - TableView / NavigationBar, Music - TabBar, Weather - FlipSideView). • Google has a hard time. It controls only part of the software stack. Hardware manufacturers often add their own presentation layer and bundle their own Apps. And even worse carriers can determine to switch off certain capabilities or refuse bundled Apps in favor of their own Apps.
  • 11. Android phones HTC Sense Samsung TouchWiz Google Holo
  • 12. Differences iOS and Android • Android users are used to use hard buttons for “home”, “back” and “menu”. iPhone users expect a navigation bar with a title and a “back button” or a “tab bar” and only use a hard button for quiting an App. • In Ice Cream Sandwich (Android 4.0) all hard buttons are replaced with three standard soft buttons “back”, “home” and “task manager”. • Apple distinguishes between a NavBar, TabBar and a ToolBar. Google introduced an Action Bar in Ice Cream Sandwich, that is a mix between a NavBar and a ToolBar?
  • 14. FigureRunning Apps status bar action bar nav bar tool bar
  • 15. Screens • Older iOS devices have a screen of 320 x 480 or 1024 x 768 pixels. New iOS devices have a Retina display of 640 x 960 or 2048 x1536 pixels. • On Android you may stumble upon any size screen that was ever manufactured. That makes it very difficult to create pixel perfect designs. It also explains why the “menu” button is very popular.
  • 16. Multi-tasking • FigureRunning App should continue working, also when a phone call is received or user chooses another song in the Music App. • On iOS policed multi-tasking is possible since version 4, but only in special cases, e.g. navigation, playing music, and task completion. • In Android unrestricted multi-tasking has always been available. This makes a developer’s life easy, but comes with a performance cost.
  • 17. Inter App Communication • Share FigureRuns on Twitter and Facebook or send them attached to an email. • In iOS it is possible to do all that, without leaving the App. (URL scheme or make own UTI for attachment) • In Android it is necessary and normal to leave the App and switch to Twitter App to send a Tweet or Facebook App to put a post on a friend’s wall.
  • 19. Sensors • We encountered no problems at all. It was even possible to use each other’s algorithms. • It seems that the closer you come to the hardware, the more similar iOS devices and Android devices behave.
  • 20. Apple / Google Services App Store ~ Android Market Google Play In App Purchasing ~ In App Billing iAd ~ AdMob Push Notifications ~ Android Cloud to Device Messaging iCloud ~ No Google equivalent? Game Center ~ No Google equivalent?
  • 22. Testing on Devices • We are testing the Android App with a big group of volonteers from all over the world. • Unfortunately many crashes only happen on specific phones. • It is often impossible to reproduce the problems on our own devices. So we are down to studying crash logs. • Clearly testing on iOS devices is a breeze compared to testing on Android devices, due to the fragmentation of the platform.
  • 23. Conclusions • Android devices differ from iOS devices mainly in user experience and the software. The closer you get to network, sensors or processors the more similar the two platforms are. • Android development differs from iOS development in that Android development tools are not as advanced and integrated as Xcode. • It is practically impossible to write an App that will run flawless on all existing Android devices.
  • 24. Recommendations • Make separate User Interaction Designs for iOS and Android versions. • Let a “native developer” translate your App. • Aim at a few popular Android phones, make sure your artwork looks great on those phones and test performance of your App on those phones. Don’t worry about the rest. Develop More Amazing Apps!
  • 27. Similarities • An App consists of a bundle with code files and resource files (data, texts, images, sounds) • The App is created with a set of programming tools, named Integrated Development Environment (IDE). Most Android developers use Eclipse, all iOS Developers use Xcode. Typical tools are editors, syntax checker, static analyzer, simulators, debuggers, etc. • The code is written in an Object Oriënted programming language (Android developers write Java code, iOS developers write ObjC code) --- Objects, Messages, Inheritance, .. • A developer can use Frameworks that are made available by either Google (for Android) or Apple (for iOS). A Framework contains ready-made objects that a developer can integrate and use in the App. There are frameworks for WebViews, MapViews, ListViews, Sending Email or Tweets, Showing Movies, ... • The App is executed as a process in a Run Time Environment (RTE), that is logically separated (sandboxed) from all other running processes. In Android this RTE is named Dalvik, a Java Virtual Machine. In iOS it is the iOS run time. • ...
  • 28. Differences iOS is much more consistent in it’s animations than Android: • lifting one screen and taking another screen from underneath the first screen and place it on top (like if you take a book from within a pile of books, and place it on top of the pile) is used for switching between Apps • a screen sliding in view from the right or left is used for moving through a hierarchy (as the result of a tap) or to view a collection (as a result of a swipe) • a screen that slides up and down and partially covers the original screen is the way to display utility panels • fading in and out of a screen, or flipping the screen is used for switching beteen screens within the App. Android has only recently begun to catch up with Apple in paying more attention to design and typography. Apple is fanatical about human interface guidelines. E.g. they teach never to put “Yes” or “No” buttons in an alert, because this forces users to read the question and may cause problems if they don’t. Putting “Cancel” and “Delete” in the buttons is a superior approach. This attention to detail makes the difference between “Good” and “Great”. The run loop in iOS RTE juggles with Apps, your App is either running in the forground, running in the background or suspended in the background. The run loop in Dalvik juggles with activities, i.e. the screens (and what happens behind the screens) of your App or other running Apps. Android doesn’t show clearly whether the next screen is from your own App or another App. I am often clueless about which App I am using on Android, you get screens from Mail, Browser, Maps etc. without ever having started those Apps!
  • 29. Inspiration • http://mashable.com/2011/03/21/cross-platform-mobile-frameworks/ • http://www.slideshare.net/360conferences/nsnotificationcenter-vs- appdelegate • http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu- button.html • http://gigaom.com/2012/02/19/clearly-its-time-to-say-bye-bye-to-buttons/ • http://watchingapple.com/2007/06/up-right-out-and-spin-iphones-animated- transitions/ • http://www.figurerunning.com • http://www.bgr.com/2012/02/22/google-to-sell-android-based-heads-up- display-glasses-by-years-end/

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n