SlideShare uma empresa Scribd logo
1 de 34
Програмування під
мобільні платформи
Що таке мобільна програма?
• Програма, яка виконується на мобільному
  пристрої: смартфоні чи планшеті
• Доступна для користувача в будь-якому
  місці і в будь-який час
• Має вузький набір функцій
Мобільні платформи набирають
         популярність
Мобільні платформи набирають
         популярність
Мобільні програми набирають
        популярність
Види мобільних програм
•   Productivity        • Location-based
•   Utilities           • Games and
•   Social networking     entertainment
•   Communication       • Enterprise
•   Content browsing,   • …
•   Media
Типи мобільних програм
• Native apps
• Web apps
• Hybrid
Native apps
• Compiled binary deployed to device
• Use native framework
• Access to all device-specific features
Web apps
• Web-site displayed in mobile browser
• HTML5, CSS, Javascript
• Frameworks: jQuery mobile, Sencha Touch,
  etc.
• Can imitate native UI
• Can hide browser controls and be added to
  device screen alongside with other apps
Native vs. Web
Native                                     Web
• Better performance, compiled code        • Single app for all platforms
• Responsive native UI                     • Less development and lower cost
• Can work offline, require less           • No need to publish to app market (no
  bandwidth usage                            review process)
• Access to all device-specific features   • Don’t have to be installed
  (camera, motion sensors, location        • Easy to update
  services, contacts, calendar, local
  storage, etc.)
• Distribution through app markets
Hybrid apps
• Native app combined with web view
  component (“shell apps”)
• Frameworks: PhoneGap, Appcelerator
  Titanium
Основні мобільні ОС
• Android
• iOS
• Windows Phone 7

• Windows 8 (!) – not released yet
• Інші (менш популярні та ті, що втрачають позиції):
  Symbian, Blackberry OS, Samsung Bada, Meego, HP WebOS,
  Windows Mobile, …
Native apps development on
          different platforms
                   Android               iOS           Windows Phone 7
Desktop OS for     Windows               Mac OS X      Windows
development        Mac OS X
                   Linux
Main programming   Java                  Objective-C   C#
language
Framework          Android Application   Cocoa Touch   .NET/Silverlight
                   Framework
IDE                Eclipse               Xcode         Visual Studio
C# and Mobile Development
• Windows Phone 7 native apps
• Windows 8 RT – native Metro UI apps for
  tablets
• iOS/Android/WP7 development with Xamarin
• Back-end web-services for mobile apps with
  .NET
Xamarin
•   Based on Mono project
•   MonoTouch, Mono for Android, .NET
•   Allows to share business logic code
•   UI code is platform-dependent
•   Costs money ($ 399 for individuals and small
    companies, $999 for enterprise per platform)
                               http://xamarin.com/
Windows Phone 7 and Windows 8
                RT
•   C#, .NET, SilverLight
•   Metro UI
•   Visual Studio + SDK
•   Simulator
Процес розробки
•   SDK
•   IDE
•   Simulator
•   Device
App Distribution
• Publish to app market (App Store, Google
  Play, Windows Marketplace)
• Ad-hoc distribution for in-house enterprise
  apps
Особливості мобільних програм
• Mobile device is not desktop!
• Hardware constraints:
  Memory size, CPU speed, battery life, small screen,
  network availability
• Different UI and interaction
Mobile UI
•   Small screen
•   Touch interface, gestures
•   Consistency
•   Simplicity, focus on content and task
•   Specific UI elements
Mobile UI: Small Screen
• User interacts with single app at a time
• Apps usually have single window
• Use hierarchical structure to browse content,
  animated transition between screens
• Device orientation can change
Mobile UI: Gestures
•   Tap
•   Pinch in and out
•   Pan or drag
•   Swipe
•   Rotate
•   Touch and hold
•   Shake
Mobile UI: Consistency
• Provide native OS user experience
• Adhere to human interface guidelines
  •   http://developer.android.com/design/index.html
  •   http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/Int
      roduction/Introduction.html
  •   http://msdn.microsoft.com/en-us/library/hh202915(v=vs.92)

• Correctly use standard controls and icons
• Application consistency within itself
UI Elements (iOS)
    Similar to desktop (but adjusted for touch
    interaction):
•    Button                •   Slider
•    Label                 •   Activity indicator
•    Text field            •   Progress view
•    Text view             •   Alert
•    Web view
UI Elements (iOS)
• Segmented control
• Switch

• Stepper
• Search bar
• Network activity indicator
UI Elements (iOS)
• Navigation bar



• Toolbar



• Tab bar
UI Elements (iOS)
• Table view (plain and grouped)
UI Elements (iOS)
• Popover (iPad only)
UI Elements (iOS)
• Split view (iPad only)
UI Elements (iOS)
• Action sheet




• Picker
Application lifecycle (iOS)
Multitasking and background
             execution
• Apps are moved to background
  instead of quit
• Required to handle interruptions
  and state transitions
• Limited ability of running in
  background
• Apps in background can be killed
  by OS during low memory
  conditions
Moving to background
Device and features
•   Multi-touch
•   Sensors: accelerometer, gyroscope, magnetometer
•   Media (audio & video playback and recording)
•   Camera
•   GPS and location
•   Networking
•   Local storage: file system, SQLite, ORMs
•   OpenGL ES

Mais conteúdo relacionado

Mais procurados

Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Bala Subra
 
Introduction to Mobile Application Development on Android
Introduction to Mobile Application Development on AndroidIntroduction to Mobile Application Development on Android
Introduction to Mobile Application Development on Android
Julian Shen
 
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
 
J query mobile tech talk
J query mobile tech talkJ query mobile tech talk
J query mobile tech talk
woliverj
 

Mais procurados (20)

Introduction to mobile application development
Introduction to mobile application developmentIntroduction to mobile application development
Introduction to mobile application development
 
Industrial Training in Mobile Application
Industrial Training in Mobile ApplicationIndustrial Training in Mobile Application
Industrial Training in Mobile Application
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPT
 
The Challenge of Touchscreen Clutter - v2 - 9.26.2012
The Challenge of Touchscreen Clutter - v2 - 9.26.2012The Challenge of Touchscreen Clutter - v2 - 9.26.2012
The Challenge of Touchscreen Clutter - v2 - 9.26.2012
 
Introduction to Mobile Application Development on Android
Introduction to Mobile Application Development on AndroidIntroduction to Mobile Application Development on Android
Introduction to Mobile Application Development on Android
 
Tristan Nitot @DWS12 - The Web as a universal platform for mobile
Tristan Nitot @DWS12 - The Web as a universal platform for mobileTristan Nitot @DWS12 - The Web as a universal platform for mobile
Tristan Nitot @DWS12 - The Web as a universal platform for mobile
 
Trip Journal
Trip JournalTrip Journal
Trip Journal
 
Tug of war between Android app development and iPhone app development
Tug of war between Android app development and iPhone app developmentTug of war between Android app development and iPhone app development
Tug of war between Android app development and iPhone app development
 
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web Apps
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
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
 
Qa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbrunerQa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbruner
 
Mobile web development
Mobile web development Mobile web development
Mobile web development
 
J query mobile tech talk
J query mobile tech talkJ query mobile tech talk
J query mobile tech talk
 
Mobile architecture options
Mobile architecture optionsMobile architecture options
Mobile architecture options
 
Tk2323 lecture 1 introduction to mobile application
Tk2323 lecture 1   introduction to mobile applicationTk2323 lecture 1   introduction to mobile application
Tk2323 lecture 1 introduction to mobile application
 
Create great UIs for budget phones
Create great UIs for budget phonesCreate great UIs for budget phones
Create great UIs for budget phones
 
Levitum - Working With Us
Levitum - Working With UsLevitum - Working With Us
Levitum - Working With Us
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5
 

Semelhante a Mobile applications development

Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
Maulik Bamania
 
Midweek breather hybridapps
Midweek breather hybridappsMidweek breather hybridapps
Midweek breather hybridapps
strider1981
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Nick Landry
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS development
DataArt
 

Semelhante a Mobile applications development (20)

Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
 
Midweek breather hybridapps
Midweek breather hybridappsMidweek breather hybridapps
Midweek breather hybridapps
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstart
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile Architectures
 
IT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit VIT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit V
 
MobApp development 01 application platform.pptx
MobApp development 01 application platform.pptxMobApp development 01 application platform.pptx
MobApp development 01 application platform.pptx
 
Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application development
 
Optimized mobile apps
Optimized mobile appsOptimized mobile apps
Optimized mobile apps
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS development
 
Comparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworksComparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworks
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopment
 

Mais de Victor Matyushevskyy (20)

Design patterns part 2
Design patterns part 2Design patterns part 2
Design patterns part 2
 
Design patterns part 1
Design patterns part 1Design patterns part 1
Design patterns part 1
 
Multithreading and parallelism
Multithreading and parallelismMultithreading and parallelism
Multithreading and parallelism
 
Service oriented programming
Service oriented programmingService oriented programming
Service oriented programming
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
ASP.Net part 2
ASP.Net part 2ASP.Net part 2
ASP.Net part 2
 
Java script + extjs
Java script + extjsJava script + extjs
Java script + extjs
 
ASP.Net basics
ASP.Net basics ASP.Net basics
ASP.Net basics
 
Automated testing
Automated testingAutomated testing
Automated testing
 
Основи Баз даних та MS SQL Server
Основи Баз даних та MS SQL ServerОснови Баз даних та MS SQL Server
Основи Баз даних та MS SQL Server
 
Usability
UsabilityUsability
Usability
 
Windows forms
Windows formsWindows forms
Windows forms
 
Practices
PracticesPractices
Practices
 
06.1 .Net memory management
06.1 .Net memory management06.1 .Net memory management
06.1 .Net memory management
 
06 LINQ
06 LINQ06 LINQ
06 LINQ
 
05 functional programming
05 functional programming05 functional programming
05 functional programming
 
04 standard class library c#
04 standard class library c#04 standard class library c#
04 standard class library c#
 
#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)
 
#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)
 
#1 C# basics
#1 C# basics#1 C# basics
#1 C# basics
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Mobile applications development

  • 2. Що таке мобільна програма? • Програма, яка виконується на мобільному пристрої: смартфоні чи планшеті • Доступна для користувача в будь-якому місці і в будь-який час • Має вузький набір функцій
  • 6. Види мобільних програм • Productivity • Location-based • Utilities • Games and • Social networking entertainment • Communication • Enterprise • Content browsing, • … • Media
  • 7. Типи мобільних програм • Native apps • Web apps • Hybrid
  • 8. Native apps • Compiled binary deployed to device • Use native framework • Access to all device-specific features
  • 9. Web apps • Web-site displayed in mobile browser • HTML5, CSS, Javascript • Frameworks: jQuery mobile, Sencha Touch, etc. • Can imitate native UI • Can hide browser controls and be added to device screen alongside with other apps
  • 10. Native vs. Web Native Web • Better performance, compiled code • Single app for all platforms • Responsive native UI • Less development and lower cost • Can work offline, require less • No need to publish to app market (no bandwidth usage review process) • Access to all device-specific features • Don’t have to be installed (camera, motion sensors, location • Easy to update services, contacts, calendar, local storage, etc.) • Distribution through app markets
  • 11. Hybrid apps • Native app combined with web view component (“shell apps”) • Frameworks: PhoneGap, Appcelerator Titanium
  • 12. Основні мобільні ОС • Android • iOS • Windows Phone 7 • Windows 8 (!) – not released yet • Інші (менш популярні та ті, що втрачають позиції): Symbian, Blackberry OS, Samsung Bada, Meego, HP WebOS, Windows Mobile, …
  • 13. Native apps development on different platforms Android iOS Windows Phone 7 Desktop OS for Windows Mac OS X Windows development Mac OS X Linux Main programming Java Objective-C C# language Framework Android Application Cocoa Touch .NET/Silverlight Framework IDE Eclipse Xcode Visual Studio
  • 14. C# and Mobile Development • Windows Phone 7 native apps • Windows 8 RT – native Metro UI apps for tablets • iOS/Android/WP7 development with Xamarin • Back-end web-services for mobile apps with .NET
  • 15. Xamarin • Based on Mono project • MonoTouch, Mono for Android, .NET • Allows to share business logic code • UI code is platform-dependent • Costs money ($ 399 for individuals and small companies, $999 for enterprise per platform) http://xamarin.com/
  • 16. Windows Phone 7 and Windows 8 RT • C#, .NET, SilverLight • Metro UI • Visual Studio + SDK • Simulator
  • 17. Процес розробки • SDK • IDE • Simulator • Device
  • 18. App Distribution • Publish to app market (App Store, Google Play, Windows Marketplace) • Ad-hoc distribution for in-house enterprise apps
  • 19. Особливості мобільних програм • Mobile device is not desktop! • Hardware constraints: Memory size, CPU speed, battery life, small screen, network availability • Different UI and interaction
  • 20. Mobile UI • Small screen • Touch interface, gestures • Consistency • Simplicity, focus on content and task • Specific UI elements
  • 21. Mobile UI: Small Screen • User interacts with single app at a time • Apps usually have single window • Use hierarchical structure to browse content, animated transition between screens • Device orientation can change
  • 22. Mobile UI: Gestures • Tap • Pinch in and out • Pan or drag • Swipe • Rotate • Touch and hold • Shake
  • 23. Mobile UI: Consistency • Provide native OS user experience • Adhere to human interface guidelines • http://developer.android.com/design/index.html • http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/Int roduction/Introduction.html • http://msdn.microsoft.com/en-us/library/hh202915(v=vs.92) • Correctly use standard controls and icons • Application consistency within itself
  • 24. UI Elements (iOS) Similar to desktop (but adjusted for touch interaction): • Button • Slider • Label • Activity indicator • Text field • Progress view • Text view • Alert • Web view
  • 25. UI Elements (iOS) • Segmented control • Switch • Stepper • Search bar • Network activity indicator
  • 26. UI Elements (iOS) • Navigation bar • Toolbar • Tab bar
  • 27. UI Elements (iOS) • Table view (plain and grouped)
  • 28. UI Elements (iOS) • Popover (iPad only)
  • 29. UI Elements (iOS) • Split view (iPad only)
  • 30. UI Elements (iOS) • Action sheet • Picker
  • 32. Multitasking and background execution • Apps are moved to background instead of quit • Required to handle interruptions and state transitions • Limited ability of running in background • Apps in background can be killed by OS during low memory conditions
  • 34. Device and features • Multi-touch • Sensors: accelerometer, gyroscope, magnetometer • Media (audio & video playback and recording) • Camera • GPS and location • Networking • Local storage: file system, SQLite, ORMs • OpenGL ES