mobile applications development
TRANSCRIPT
![Page 1: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/1.jpg)
Програмування під мобільні платформи
![Page 2: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/2.jpg)
Що таке мобільна програма?
• Програма, яка виконується на мобільному пристрої: смартфоні чи планшеті
• Доступна для користувача в будь-якому місці і в будь-який час
• Має вузький набір функцій
![Page 3: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/3.jpg)
Мобільні платформи набирають популярність
![Page 4: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/4.jpg)
Мобільні платформи набирають популярність
![Page 5: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/5.jpg)
Мобільні програми набирають популярність
![Page 6: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/6.jpg)
Види мобільних програм
• Productivity• Utilities• Social networking• Communication• Content
browsing,
• Media• Location-based• Games and
entertainment• Enterprise• …
![Page 7: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/7.jpg)
Типи мобільних програм
• Native apps• Web apps• Hybrid
![Page 8: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/8.jpg)
Native apps
• Compiled binary deployed to device• Use native framework• Access to all device-specific features
![Page 9: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/9.jpg)
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
![Page 10: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/10.jpg)
Native vs. WebNative Web
• Better performance, compiled code
• Responsive native UI • Can work offline, require less
bandwidth usage• Access to all device-specific
features (camera, motion sensors, location services, contacts, calendar, local storage, etc.)
• Distribution through app markets
• Single app for all platforms• Less development and lower
cost• No need to publish to app
market (no review process)• Don’t have to be installed• Easy to update
![Page 11: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/11.jpg)
Hybrid apps
• Native app combined with web view component (“shell apps”)
• Frameworks: PhoneGap, Appcelerator Titanium
![Page 12: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/12.jpg)
Основні мобільні ОС• Android • iOS• Windows Phone 7
• Windows 8 (!) – not released yet• Інші (менш популярні та ті, що втрачають
позиції): Symbian, Blackberry OS, Samsung Bada, Meego, HP WebOS, Windows Mobile, …
![Page 13: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/13.jpg)
Native apps development on different platforms
Android iOS Windows Phone 7
Desktop OS for development
WindowsMac OS XLinux
Mac OS X Windows
Main programming language
Java Objective-C C#
Framework Android Application Framework
Cocoa Touch .NET/Silverlight
IDE Eclipse Xcode Visual Studio
![Page 14: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/14.jpg)
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
![Page 15: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/15.jpg)
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/
![Page 16: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/16.jpg)
Windows Phone 7 and Windows 8 RT
• C#, .NET, SilverLight• Metro UI• Visual Studio + SDK• Simulator
![Page 17: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/17.jpg)
Процес розробки
• SDK• IDE• Simulator• Device
![Page 18: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/18.jpg)
App Distribution
• Publish to app market (App Store, Google Play, Windows Marketplace)
• Ad-hoc distribution for in-house enterprise apps
![Page 19: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/19.jpg)
Особливості мобільних програм
• Mobile device is not desktop!• Hardware constraints:
Memory size, CPU speed, battery life, small screen, network availability
• Different UI and interaction
![Page 20: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/20.jpg)
Mobile UI
• Small screen• Touch interface, gestures• Consistency• Simplicity, focus on content and task• Specific UI elements
![Page 21: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/21.jpg)
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
![Page 22: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/22.jpg)
Mobile UI: Gestures
• Tap• Pinch in and out• Pan or drag• Swipe• Rotate• Touch and hold• Shake
![Page 23: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/23.jpg)
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/Introduction/Introduction.html
• http://msdn.microsoft.com/en-us/library/hh202915(v=vs.92)
• Correctly use standard controls and icons
• Application consistency within itself
![Page 24: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/24.jpg)
UI Elements (iOS)
• Button• Label• Text field• Text view• Web view• Slider
• Activity indicator• Progress view• Alert
Similar to desktop (but adjusted for touch interaction):
![Page 25: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/25.jpg)
UI Elements (iOS)
• Segmented control• Switch
• Stepper• Search bar• Network activity indicator
![Page 26: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/26.jpg)
UI Elements (iOS)
• Navigation bar
• Toolbar
• Tab bar
![Page 27: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/27.jpg)
UI Elements (iOS)• Table view (plain and grouped)
![Page 28: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/28.jpg)
UI Elements (iOS)
• Popover (iPad only)
![Page 29: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/29.jpg)
UI Elements (iOS)
• Split view (iPad only)
![Page 30: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/30.jpg)
UI Elements (iOS)• Action sheet
• Picker
![Page 31: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/31.jpg)
Application lifecycle (iOS)
![Page 32: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/32.jpg)
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
![Page 33: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/33.jpg)
Moving to background
![Page 34: Mobile applications development](https://reader035.vdocuments.us/reader035/viewer/2022062514/559282991a28ab39678b46c1/html5/thumbnails/34.jpg)
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