CS1: Wireless Communication and Mobile Programming Mobile Application Development: A Quick Survey Dr. Khaled Mahmud Laurentian University International Global Experience Program Summer 2016
Agenda Mobile Devices Mobile OS Framework IDE App Store Geolocation (c) Khaled Mahmud
Reference Mobile application development Open Handset Alliance http://en.wikipedia.org/wiki/Mobile_application_development Open Handset Alliance http://www.openhandsetalliance.com/ (c) Khaled Mahmud
Devices (Running Mobile OS) Smartphone Tablet MP3 player Camera Smart TV Media player CD/DVD player Set-top boxes VoIP phone Home automation and security system Smart Gadgets (watches) (c) Khaled Mahmud
Mobile OS OS Owner Device- Smartphone Device- Tablet Android Google Samsung Galaxy, LG Nexus, HTC One Google Nexus iOS Apple iPhone iPad Windows 10 Mobile Microsoft Nokia Lumia 950 BlackBerry (OS 10, Tablet QNX) Blackberry (formerly RIM) Blackberry Z10 Ubuntu Touch Canonical Firefox OS Mozilla Tizen Linux Foundation Sailfish Jolla (c) Khaled Mahmud
Requirements for Mobile OS Support for Touchscreen Cellular Bluetooth Wi-Fi GPS mobile navigation Camera, Video camera Speech recognition Voice recorder Music player Near field communication (NFC) and infrared blaster (c) Khaled Mahmud
World-wide Smartphone Sales (Percentage share) (c) Khaled Mahmud http://en.wikipedia.org/wiki/Mobile_operating_system
World-wide Smartphone Sales (c) Khaled Mahmud
Android Releases and sweet names Open source Development language Cupcake (1.5) Frozen Yogurt ("Froyo") (2.2) Ginger Bread (2.3) Honeycomb (3.0) Ice Cream Sandwich (4.0) Jelly Bean (4.2) KitKat (4.4) Lollipop Marshmallow Nugat Open source Promoted by OHA Development language Java (c) Khaled Mahmud
Android Development SDK: Android SDK Language: Java IDE: Any Java IDE (recommended: Eclipse, plug-in available) Android Studio Emulator: available (c) Khaled Mahmud
iOS Closed source Language(s): Devices Objective C Swift Devices All developed by Apple iPhone, iPod Touch, iPad Second-generation Apple TV Multitasking is supported through background APIs Not true multi-tasking like desktop (c) Khaled Mahmud
iOS Development SDK: iOS SDK Framework: Cocoa Touch IDE: Xcode Needs Mac OS X (Lion) device Framework: Cocoa Touch IDE: Xcode Simulator: Freely available Requires Apple ID Actual device development: Requires subscription: Developer Program ($99/year) (c) Khaled Mahmud
iOS Architecture Four abstraction layers Core OS layer Core Services layer Media layer, and Cocoa Touch layer (c) Khaled Mahmud
iOS User Interface UI is based on Multi-touch gestures Swipe, tap, pinch, and reverse pinch Each has specific definitions within the context of the iOS Control elements Sliders, switches, and buttons (c) Khaled Mahmud
Windows 10 Mobile Closed source Current market share is less than 1% Feature Metro-design Resizable tile Removable storage NFC VoIP integrated in the OS core FM radio Targeted for PCs, mobile devices, Xbox, (c) Khaled Mahmud http://en.wikipedia.org/wiki/Windows_Phone
Windows Development Language: C/C++, C# SDK: Windows Phone SDK 10 IDE: Visual Studio 2015, … Emulator: Available Game development framework: Using XNA Beginners start here http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners (c) Khaled Mahmud
Blackberry 10 Based on QNX (Unix-like) Targeted for both smartphone and tablet Closed source Language(s) C/ C++: Native SDK C++/Qt: Cascades SDK HTML5/Javascript/CSS: Webworks SDK ActionScript: Adobe AIR Java: Android runtime Devices All developed by Blackberry (RIM) Z10, Q10 (c) Khaled Mahmud http://en.wikipedia.org/wiki/
Ubuntu Touch Mobile version of Ubuntu: Designed for touch screen Target: Smartphones, tablets, mobile, GPS smartnav, in-vehicle infotainment First device: BQ Aquaris M10 (tablet) UI platform: QT 5-based, also uses Maemo, MeeGo frameworks Because of Linux kernel, the system can be easily ported to Android smartphones (c) Khaled Mahmud
Bada By Samsung Closed source Reconfigurable kernel architecture Already stopped development! (c) Khaled Mahmud http://en.wikipedia.org/wiki/
Open Handset Alliance (OHA) Consortium of 84 firms to develop open standards for mobile devices Member firms include Google, HTC, Sony, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung Electronics, LG Electronics, T-Mobile, Sprint Nextel, Nvidia, and Wind River Systems Android is the flagship software of the alliance Competes against mobile platforms from Apple, Microsoft, Nokia (Symbian), HP (formerly Palm), and Samsung Electronics (Bada) (c) Khaled Mahmud
APP Stores Apple App Store Google Play Windows Store Developer: 70% Apple: 30% Google Play Windows Store Blackberry App World (c) Khaled Mahmud
Android Features Storage Connectivity: Messaging Web browser SQLite (lightweight relational data base) Connectivity: GSM/GPRS/EDGE, CDMA, UMTS, WiFi, WiMAX Messaging SMS, MMS Web browser With JavaScript engine Media support H.263, MP3, MP4, AMR, AAC, WAV, MIDI, Ogg Vorbis, JPEG, GIF, PNG, BMP Multi-touch Multi tasking Flash support Tethering Hardware support Camera Accelerometer sensor Digital Compass Proximity sensor GPS (c) Khaled Mahmud
Android Architecture 4 layers (5 sections) Linus kernel Libraries Android runtime Application framework Applications (c) Khaled Mahmud http://en.wikipedia.org/wiki/Android_%28operating_system%29
Android Architecture Diagram Applications and Widgets Home Contacts Browser Widgets Apps… Application Framework Activity Manager Window Manager Content Provider View System Notification Manager Package Manager Telephony Manger Resource Location Manager Sensor Manager Libraries Android Runtime Surface Manager Media Framework SQLite Core Libraries OpenGL | ES FreeType WebKit Dalvik Virtual Machine SGL SSL libc Linux kernel Display Driver Bluetooth Driver Camera Driver Binder (IPC) Driver Flash Memory Driver Keypad Driver USB Driver WiFi Driver Audio Driver Power Management (c) Khaled Mahmud
Android Interfaces and Architecture (c) Khaled Mahmud https://source.android.com/devices/
Accessing Hardware Capabilities Wireless device Modem Touch screen Camera Accelerometer sensor Digital Compass Proximity sensor GPS Battery (c) Khaled Mahmud
Locating in Mobile Device W3C Geolocating API Cleint-side Consults of Location Information Servers Common sources of location information IP address Wi-Fi and Bluetooth MAC address Radio-Frequency Identification (RFID) Wi-Fi connection location Device Global Positioning System (GPS), and GSM/CDMA cell IDs http://en.wikipedia.org/wiki/W3C_Geolocation_API (c) Khaled Mahmud
GPS Software in Mobile devices iGO (paid) iOS, Wndows, Android Google maps for Mobile (free) Android, iOS Apple Maps (free) iOS BlackBerry Maps BlackBerry 10 Ovi Maps Symbian OS (c) Khaled Mahmud