Post on 30-Jun-2015
transcript
Програмування під мобільні платформи
Що таке мобільна програма?
• Програма, яка виконується на мобільному пристрої: смартфоні чи планшеті
• Доступна для користувача в будь-якому місці і в будь-який час
• Має вузький набір функцій
Мобільні платформи набирають популярність
Мобільні платформи набирають популярність
Мобільні програми набирають популярність
Види мобільних програм
• Productivity• Utilities• Social networking• Communication• Content
browsing,
• Media• Location-based• Games and
entertainment• Enterprise• …
Типи мобільних програм
• 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. 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
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 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
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/Introduction/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)
• Button• Label• Text field• Text view• Web view• Slider
• Activity indicator• Progress view• Alert
Similar to desktop (but adjusted for touch interaction):
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