PlatformComparisonLindquist1Apr2013x - Tim Lindquist

rodscarletSoftware and s/w Development

Dec 14, 2013 (3 years and 6 months ago)

62 views

Native Platform API

Comparison





by:


Dr. Tim Lindquist










April 2, 2013

Cst594 Mobile Computing

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 dynamically
-
linked 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 Layou
t


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


D
isplay app content on a
cable connected

external
device


Query and display and set screen resolutions

Cocoa Touch Frameworks


Address Book UI Framework



A
ccess 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.


A
llows
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 ?

Cst594 Mobile Computing