Cst594 Mobile Computing Native Platform API Comparison by: Dr. Tim Lindquist April 2, 2013 Platforms • iOS • Android • Windows Phone iPhone App Runtime Layers iOS • ARM processor (as with Android) running iOS, which is a trimmed version of OS X. • Objective-C runtime consists of dynamicallylinked libraries together with underlying C libs. • Devices have 3-sensors – Proximity sensor deactivates the display – Ambient light sensor for display intensity – 3-axis accelerometer sensor for orientation iOS Layers Cocoa Touch • Multi-tasking: – Home Background, (running but not executing) – Relaunch API support to save/restore state – App can support services requiring background execution – App can use notifications to alert the user – Notification source: local (gps time to turn) or remote (external server pushes mail notification) Cocoa Touch • Game Kit – Peer-to-peer connectivity over bluetooth for: • Multi-player games • Sharing information (contacts or other information) • Standard View Controllers (common UI) • • • • Display/Edit contacts Create/Edit calendar events Compose email or SMS messages Take a picture or shoot a video clip Cocoa Touch • Gesture Recognizers • App associates action with the following: – Tapping (any number of taps) – Pinching in or out for zoom control – Panning or dragging – Swiping – Rotating – Long Presses Cocoa Touch • Automatic Layout • Localization through string swapping • Mirroring UI elements for right-to-left languages • Storyboards • UI to design all views, including connections • Programmer can generate code for UI components that create, replace, or add components and/or wire-ups Cocoa Touch • Printing Support (network printers) • External Display Support • Display app content on a cable connected external device • Query and display and set screen resolutions Cocoa Touch Frameworks • Address Book UI Framework • Access to address book content and • UI components for creating and editing contacts • Event Kit view and edit calendar events • Game Kit • Bonjour discover and communication with services • Game Center (on-line service) for aliases, leaderboards, matchmaking, record player progress, and challenges Cocoa Touch Frameworks • iAd deliver banner ads through your app using Apple on-line service • Map Kit Map display • Directions -- routing • Annotations • Points of interest • Message UI and Twitter Frameworks • Email messages View and create • SMS message view and create Cocoa Touch Frameworks • UIKit Framework • • • • • • • • • App and UI management Graphics and windowing support Customization of standard UIKit controls Support for Text (cut, copy, paste) and Web content Animating UI content, Integration with other Apps, PDF creation Accelerometer data Camera and photo library Device, battery state, proximity sensor, remote control iOS Layers Media Layer • Graphics Technologies – Core Graphics (Quartz) 2D vector and image rendering – Core Animation, Manipulation of Video and Stills – OpenGL ES and GLKit (2D & 3D rendering) Media Layer • Audio Technologies • Media player and audio record (microphone). Manage audio playback and recording in Objective-C App • API access to iTunes Library and playlists • Virtual 3D audio positioning • Supports Audio formats: AAC, Apple Lossless, A-law, IMA/ADPCM, Linear PCM, micro-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, AES3-2003 Media Layer • Video Technologies • UI control provides interface for recording video on devices with camera • Media Player Framework play full or part screen movies • Objective-C interfaces for managing capture and playback of movies • Video Formats: H.264 in Low Complexity and Baseline Profile; m4v, mp4, .mov formats • MPEG-4 Video (Simple Profile) up to 2.5 Mbps 640x480 pixels, 30fps (.m4v, .mp4, and .mov) Media Layer: Audio Frameworks • AirPlay – Facilities for streaming audio to AirPlay speakers, receivers, and AppleTV. – Audio content played using any of the Core or Media layer audio facilities can be used with AirPlay. iOS Layers Core Services • iCloud Storage – Application can write user documents and data to a central location. – Documents and data are accessible from all of the user’s devices, without having to sync or transfer files explicitly. – iCloud also supports a (small) key-value data store that is not visible to the user. iCloud Core Services • Automatic Reference Counting as opposed to garbage collection. • Block Objects closures, also called lambda blocks. – In-line delegates/delegate methods, callbacks, handlers, asynchronous tasks. • File-Sharing Documents directory readable/writeable using iTunes from another device. Core Services • Grand Central Dispatch asynchronous programming that’s more efficient than threads. • In-App Purchase App can process financial transactions using iTunes account. • SQLite In-App connection-less database. • Core Data Xcode buildable schema, manages SQLite DB for app, MVC support Core Services • Telephony Framework – Interact with phone-based information – Information about cellular provider, – Notifications of cellular call events – Cellular radio information, such as signal strength. Core Services • Newsstand Kit Framework – For publishers to provide their own apps for reading magazines and news papers. • Pass Kit Framework – Support for downloadable passes. Companies can create passes, coupons, boarding passes, event tickets and coupons and discount cards for their businesses. – Framework objects connect directly to a companies web services. Android • Linux kernel • Runtime includes core libraries and Dalvik VM • Every Android app runs in its own process with its own VM • Android uses a set of C/C++ libraries. These are exposed to developers – C-library based on BSD – Media library is based on PacketVideo’s openCORE • Any application may publish its capabilities and then any other application can utilize those facilities Android API’s • Animation and Graphics – Access to Android’s graphics features such as OpenGL, hardware acceleration, and built-in UI animations. – Android APIs for applying animation to UI elements and drawing 2D and 3D graphics. – OpenGL OpenGL ES, which is OpenGL for embedded devices. Android API’s • Media and Camera – Add video, audio, and photo capabilities; APIs for playing and recording media. – Support for playing common audio, video and image types. Supports playing media from file resources, from standalone files in the filesystem, or from a network data stream. – Support for encoding audio with common formats – Camera capture and manage pictures & video Android Optional API Add-Ons • AdMob – Advertising network that helps app developers monetize and promote their mobile and tablet apps with ads. Android Optional API Add-Ons • Analytics App Tracking – Connect user interactions with paid ads, Google Play downloads, and subsequent in-app usage and Ecommerce transactions. Android Optional API Add-Ons • Cloud Messaging – A service that allows you to send data from your cloud server to your users' Android-powered device. Android Optional API Add-Ons • Play Services – Common access to Google services such as Maps and Google+; Single authorization, billing, licensing, and automatic updates. Android Optional API Add-Ons • Web Driver – W3C Web Driver Implementation. – Allows programs or scripts to introspect into, and control the behaviour of, a web browser. The WebDriver API is primarily intended to allow developers to write tests that automate a browser from a separate controlling process, Android Optional API Add-Ons • APK Expansion Library – Allows apk’s to be larger than 50MB so they may include media or other large resources. Cst594 Mobile Computing THANK YOU QUESTIONS ?