mobile applications development

34
Програмування під мобільні платформи

Upload: victor-matyushevskyy

Post on 30-Jun-2015

1.731 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Mobile applications development

Програмування під мобільні платформи

Page 2: Mobile applications development

Що таке мобільна програма?

• Програма, яка виконується на мобільному пристрої: смартфоні чи планшеті

• Доступна для користувача в будь-якому місці і в будь-який час

• Має вузький набір функцій

Page 3: Mobile applications development

Мобільні платформи набирають популярність

Page 4: Mobile applications development

Мобільні платформи набирають популярність

Page 5: Mobile applications development

Мобільні програми набирають популярність

Page 6: Mobile applications development

Види мобільних програм

• Productivity• Utilities• Social networking• Communication• Content

browsing,

• Media• Location-based• Games and

entertainment• Enterprise• …

Page 7: Mobile applications development

Типи мобільних програм

• Native apps• Web apps• Hybrid

Page 8: Mobile applications development

Native apps

• Compiled binary deployed to device• Use native framework• Access to all device-specific features

Page 9: Mobile applications development

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

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

Hybrid apps

• Native app combined with web view component (“shell apps”)

• Frameworks: PhoneGap, Appcelerator Titanium

Page 12: Mobile applications development

Основні мобільні ОС• 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

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

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

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

Windows Phone 7 and Windows 8 RT

• C#, .NET, SilverLight• Metro UI• Visual Studio + SDK• Simulator

Page 17: Mobile applications development

Процес розробки

• SDK• IDE• Simulator• Device

Page 18: Mobile applications development

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

Особливості мобільних програм

• 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

Mobile UI

• Small screen• Touch interface, gestures• Consistency• Simplicity, focus on content and task• Specific UI elements

Page 21: Mobile applications development

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

Mobile UI: Gestures

• Tap• Pinch in and out• Pan or drag• Swipe• Rotate• Touch and hold• Shake

Page 23: Mobile applications development

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

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

UI Elements (iOS)

• Segmented control• Switch

• Stepper• Search bar• Network activity indicator

Page 26: Mobile applications development

UI Elements (iOS)

• Navigation bar

• Toolbar

• Tab bar

Page 27: Mobile applications development

UI Elements (iOS)• Table view (plain and grouped)

Page 28: Mobile applications development

UI Elements (iOS)

• Popover (iPad only)

Page 29: Mobile applications development

UI Elements (iOS)

• Split view (iPad only)

Page 30: Mobile applications development

UI Elements (iOS)• Action sheet

• Picker

Page 31: Mobile applications development

Application lifecycle (iOS)

Page 32: Mobile applications development

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

Moving to background

Page 34: Mobile applications development

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