application development for mobile and ubiquitous …ts2/admuc/lecture1213/9...application...

52
Department of Computer Science Institute for System Architecture, Chair for Computer Networks Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing. Thomas Springer Technische Universität Dresden Chair of Computer Networks

Upload: others

Post on 10-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Department of Computer Science Institute for System Architecture, Chair for Computer Networks

Application Development for Mobile and Ubiquitous Computing

9. Platforms

Android, iOS and WP7

Dr. Ing. Thomas Springer Technische Universität Dresden

Chair of Computer Networks

Page 2: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Adaptation and

Context-

awareness

Mobile Internet

Mobile Middleware

Application Development

Enabling Technologies and Challenges

Disconnected

Operations

Mobile

Databases

Location-

based

Services

Communication

Mechanisms

Android iOS

.Net Compact

Framework/

Windows

Phone 7

Mobile

Web AppsJava ME

Cross-Platform Development

Mobile Business Apps

Lecture Structure

Dr. Thomas Springer Slide 2 Application Development -7. Communication Mechanisms

Page 3: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Created by: Sun Microsystems, acquired by Oracle Corporation in 2010

Target devices: cellular phones, PDAs, embedded devices

Operating System: any system

Approach: open source, no hardware restrictions

Programming: Java

Development: any hardware

Development tools: various IDEs and development kits

App Provisioning: Over the air provisioning by vendor

Developer Program: free

Dr. Thomas Springer 3 Application Development - 9. Platforms

Reviewing Java ME

Mobile Device

Hardware

Operating System

CLDC

Configuration, KVM

Midlet Suite Midlet Suite ...

MIDP Profile

Optional Packets

Page 4: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

ANDROID

Page 5: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Created by: Open Handset Alliance, driven by Google

First Release: Android 1.0 beta in November 2007

Current version: 4.2 (Jelly Bean)

Target devices: smartphones and tablets from different vendors

Operating System: Linux Kernel

Approach: open source (Apache 2.0 license, some libs excluded (e.g. Google Maps), heterogeneous hardware

Programming: Java

Development: any hardware

Development tools: Eclipse Plugin + Android SDK

Dr. Thomas Springer 5 Application Development - 9. Platforms

Android Overview

Page 6: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Android Architecture

Application Framework allows reuse and exchange of components

Libraries

• Media Libraries supporting many popular formats, (MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG)

• SQLite - lightweight relational database engine

• Google Maps support

• Integrated Browser based on WebKit

• Optimized graphics libraries (2D library, 3D library based on OpenGL

Special VM (Dalvik VM)

Linux Kernel (based on version 2.6)

• threading

• low-level memory management

• hardware drivers

• power management

Dr. Thomas Springer 6 Application Development - 9. Platforms

Mobile Device

Dalvik VM +

Core libraries

Hardware

Libraries

App

.apk

App

.apk...

Application Framework

Linux Kernel

Page 7: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Dalvik Virtual Machine

Alternative Java runtime implementation

• no Sun/Oracle certification

• basically just the syntax of the programming language is the same

• Dalvik byte code

o must be compiled for Dalvik VM

• no full Java ME, no full Java SE

o four major libraries 'lang', 'util', 'io', 'net' fully available

• Cross-compiler for Java standard bytecode

Optimized for mobile computers

• memory management

• every application runs in its own process

• optimized for many parallel VMs

Dr. Thomas Springer 7 Application Development - 9. Platforms

Page 8: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Anatomy of an Android application

Four building blocks

• Activities, Services, Content Providers, BroadcastReceiver

Android Apps run in separate processes

Inter-process communication based on AIDL interfaces

Used components have to be declared in the Android Manifest file

Process

Dalvik VM

Local Service

Activity A

Process

Dalvik VM

Remote Service

Inter-process

communication

AIDL

Activity Bintent

broadcast

intent

se

rvic

e

Bin

de

r

Dr. Thomas Springer 8 Application Development - 9. Platforms

Page 9: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Building Blocks - Activities

Activity: • a single screen of the

application • extends the Activity class • consists of user interface

elements (views) that respond to events

• may return a value to another activity

• When a new screen opens, the previous is put onto a history stack.

• Methods of activity reflect lifecycle

9

Page 10: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Building Blocks - Services

Service: • Means for

• Performing tasks in background (startService)

• Expose functionality to other apps (bindService)

• Creation of new Thread in onCreate() method

• Local and Remote Services

• When connected, communication is done by an interface exposed by the service; the interface is either based on Java (local) or based on AIDL (Android Interface Definition Language) for access from other processes (remote).

10

Page 11: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Intent: • passive data structure holding an abstract description of an

operation to be performed • Used to

o start Activity or Service o broadcast to any interested BroadcastReceiver

• consists of an action and data (+further data) o ACTION_VIEW content://contacts/people/1 -- Display information

about the person whose identifier is "1". o ACTION_DIAL tel:123 -- Display the phone dialer with the given

number filled in.

• Intent Filter express ability of component to handle particular intent types

BroadcastReceiver: • Broadcast intents represent events propagated by the system

(e.g. battery low, screen off, boot completed)

• BroadcastReceiver is special intent filter for system messages

Dr. Thomas Springer 11 Application Development - 9. Platforms

Building Blocks - Intents

Page 12: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Android Manifest

AndroidManifest.xml necessary for every application

Describes the application‘s elements and when they should be initialized or activated

Includes a list of permissions the application is offering or needing (e.g. for access to network or contacts data); so on installation, the user can grant or deny these.

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.my_domain.app.helloactivity">

<application android:label="@string/app_name">

<activity android:name=".HelloActivity">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

</manifest>

Dr. Thomas Springer 12 Application Development - 9. Platforms

Page 13: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

UI is based on Screens

Activities create and control screens (one activity per screen)

• contain application logic, layout and views

Views as visible elements of UI

• Base class android.view.View

Layouts arrange views on screen

• Base class android.view.ViewGroup, (i.e. layout is group of views)

Dr. Thomas Springer 13 Application Development - 9. Platforms

Android UI Creation

Page 14: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Dr. Thomas Springer 14 Application Development - 9. Platforms

Android UI Creation

XML-based description of UIs

Alternatively UI creation in code

Support of touch-based interactions

Event-mechanism to handle interactions

• E.g. view.setOnClickListener(callback)

Page 15: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Java.net.* APIs can be used

• Provided as part of Android platform

• Base for HTTP conections is HTTPClient

Alternative libraries can be used

• e.g. Apache HttpComponents project

Android.net.ConnectivityManager

• Monitors connectivity state

• Sends broadcast intent if connection state changes

• Provides methods for accessing network state

o getActiveNetworkInfo()

o getAllNetworkInfo()

o getNetworkInfo(int networkType)

Dr. Thomas Springer 15 Application Development - 9. Platforms

Android Network Communication

Page 16: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

SQLite

• Local data base with SQL and transaction support

• Data base maintained in single file

• Base class android.database.sqlite.SQLiteDatabase

• execute SQLite queries using the SQLiteDatabase query() methods

Shared Preferences

• Base class android.content.SharedPreferences

• Store private primitive data in key-value pairs

Internal Storage

• Store private data on the device memory as files.

External Storage

• Store public data on the shared external storage as files.

Dr. Thomas Springer 16 Application Development - 9. Platforms

Android Persistent Storage

Page 17: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

ContentProvider:

• Sharing of data between applications

o Abstraction layer on top of DB or files (interface android.content.ContentProvider)

o Content organized like on web server – content URIs for access

- e.g. content://de.tudrn.exampleprovider/images/content_id

o Implement a standard set of methods for allowing other applications to store and retrieve data.

o ContentProvider implementation for common data types

o Access via ContentResolvers

Dr. Thomas Springer 17 Application Development - 9. Platforms

Android Persistent Storage

ContentProvider

query()

insert()

update()

delete()

Content Consumer

data source (DB) data source (files)

openFile()

...

Content Resolver

query()

insert()

update()

delete()

openInputStream(Uri, ...)

openOutputStream(Uri,…)

getContentResolver()

Page 18: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Eclipse plugin + Android SDK

• Project management

• Device emulator

• Debugger

Dr. Thomas Springer 18 Application Development - 9. Platforms

Android Development Tools

Page 19: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Google Play Store for app provisioning

Development is free

Transaction fee for selling applications in the android market

• 30% of the application price. For example, if you sell your application at a price of $10.00, the fee will be $3.00, and you will receive $7.00 in payment.

Dr. Thomas Springer 19 Application Development - 9. Platforms

Android App Provisioning

Page 20: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

IOS

Page 21: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

iOS (formerly iPhone OS)

Created by: Apple Inc.

First Release: June 2007

Current Version: iOS 6.0.1

Target devices: iPhone, iPad, iPod touch, Apple TV

Operating System: based on Mach/BSD Kernel

Approach: closed source, restricted hardware

Programming: Objective-C, C, (C++)

Development: Apple Hardware: “Develop for Mac on a Mac”

Development tools: Xcode + iOS SDK

Dr. Thomas Springer 21 Application Development - 9. Platforms

iOS Overview

Page 22: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Apple Hardware

Apple iPad

UMTS, LTE, GSM, Wi-Fi, BT

A-GPS, Accelerometer, light sensor, Camera

Display 1024 x 768 px / 2048 x 1536 px

Apple iPhone 5

UMTS, LTE, GSM, Wi-Fi, BT

A-GPS, Compass

Accelerometer, Gyro,

Light Sensor

Display 1136 x 640 px

1st Camera @ 8 MP

2nd Front Camera [Apple Inc.]

Dr. Thomas Springer Application Development - 9. Platforms 22

Page 23: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Created in the early 80s by Stepstone

Extends C with object-oriented constructs

• Extensions based on Smalltalk

• Objective-C code can be mixed with C-code

Objective-C vs. Java

• Separate files for interface (header - .h) and implementation (.m) of classes

• No namespaces/packages

• Messages to invoke methods

• Pointer syntax for explicit handling of pointers

• No method overloading (same method name/different parameter type)

• No garbage collection (iOS), explicit memory management required (supported by compiler)

Dr. Thomas Springer 23 Application Development - 9. Platforms

Objective-C

Page 24: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

iOS Architecture

Cocoa Touch: Objective-C APIs for lower layers, e.g., multi touch, camera, web view, accelerometer,...

That’s what you use mostly!

Media: OpenGL ES, Core Audio, OpenAL, PDF, PNG, JPG, TIFF, Quartz 2D

For performance optimisation

Core Services: Address book, SQL lite, network, location services, threading, NS Object

Core OS: OS X Kernel, BSD, Mach 3.0, file system, power management, security

Limited access for developers

Dr. Thomas Springer 24 Application Development - 9. Platforms

Mobile Device

Hardware

App

.ipa

App

.ipa...

Media

Mach/BSD Kernel

Custom Frameworks

UIKit

FoundationCore Services

Cocoa Touch

Page 25: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

iOS Application Anatomy

Cocoa Touch Frameworks in iOS:

• Foundation (NS… prefix)

o Data types and structures (Strings, Array, Maps,...)

o Services & functionality (Date, Calendar, Timer,...)

• UIKit

o UI related objects (“views”)

Based on design patterns:

• Model-View-Controller – defines the overall app structure

• Delegation - facilitates the transfer of information and data from one object to another

• Target-action - translates user interactions with buttons and controls into code that your app can execute.

Dr. Thomas Springer Application Development - 9. Platforms 25

Page 26: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Model View Controller

Model

• Encapsulate data and basic behaviour

• Stores application data (persistently)

View

• Present information to user

• Allow users to edit model data

Controller

• Mediates access of views to models

• Contains busines logic for processing user input

• Set-up and coordination tasks

Dr. Thomas Springer 26 Application Development - 9. Platforms

Controller

View Model

user action update

update notify

no direct interaction between

View and Model

Page 27: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Delegate Design Pattern

Protocols

• Similar to interfaces in Java

• Define methods that are to be implemented by other class

Delegation = mechanism for customization and notification

• delegation over subclassing

• Advantages

o easier switch at runtime (exchange delegate object vs. instantiation of a different view class)

o Views are completely reusable

• View holds reference to controller (defined as Outlet)

• Controller implements methods of delegate-protocol

• View invokes methods on its delegate object (controller)

Dr. Thomas Springer 27 Application Development - 9. Platforms

Controller

View

will...

should...

did...

will...

should...

did...

delegate

Page 28: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Target-Action Design Pattern

Target-Action – mechanism for notification

• Actions represent events created by users interacting with the UI (e.g. button pressed)

• Controller implements action handling

o Defined by (IBAction)actionName

• View dynamically invokes methods when actions happen

• No return values (IBAction compiles to void)

Dr. Thomas Springer 28 Application Development - 9. Platforms

Controller

View

target

action

Page 29: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

UIApplication(Singleton)

ApplicationDelegate<UIApplicationDelegate>

holds reference to delegate

id <UIApplicationDelegate>

.delegate

didFinishedLaunching {

init ViewController

}

UIViewController

UIView

defined in .xib or directly

created in code

.view

UIViewController

UIView

defined in .xib or directly

created in code

1

2

3

.view

set to UIWindow

One Screen per ViewController

Similar to Android Activities

ContainerView-Controller can control several ViewController (e.g. Navigation-ViewController)

Dr. Thomas Springer 29 Application Development - 9. Platforms

iOS Application Anatomy

Page 30: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Based on Interface Builder

• .xib files for describing view hierarchies (.nib is binary form)

• One .xib describes typically one screen

• Created/Edited with Interface Builder

• No direct manipulation of .xib/xml

UIKit class library provides set of predefined Views, ViewControllers and Controls

Dr. Thomas Springer 31 Application Development - 9. Platforms

iOS UI Creation

Page 31: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Tools for iOS Development: Interface Builder

Visual editor

• Assembling UI

• Nib-file generation

Inspectors for

• Identity

• Size, position and layout

• Attributes

• Connections

Dr. Thomas Springer Application Development - 9. Platforms 32

Page 32: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

iOS Libraries

Root Class: NSObject (defined in foundation lib)

Dr. Thomas Springer 33 Application Development - 9. Platforms

UIKit library

NSObject

NSString

NSSet

NSArray

NSDictonary

NSNumber

NSURLNSDate

UIView

UIViewController

UIControl

UIButton

foundation library

UIApplication

Page 33: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Part of foundation library

• NSURLConnection, NSURLRequest, NSURLMutableRequest

Dr. Thomas Springer 34 Application Development - 9. Platforms

iOS Network Communication

Page 34: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Key-Value Storage

• NSUserDefaults (simple Hash synchronized with file)

• Singleton

• Automatically synchronized by system

• stored in App sandbox

Framework Core Data

• Runtime Objects synchronized with SQLite

• Abstraction layer for objects

• Core data objects are mapped to relational DB

SQLite

Files in Sandbox

iCloud

• Key-Value Storage (Hash) with automatic synchronization to iCloud

• Data objects derived from UIDocument, can easily be synchronized with iCloud

Dr. Thomas Springer 36 Application Development - 9. Platforms

iOS Persistent Storage

Page 35: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

iOS Development Tools: XCode

Dr. Thomas Springer Application Development - 9. Platforms 38

IDE for Mac and iOS development Manage projects

Code editing

Building (on device & simulator)

Debugging (on device & simulator)

Repository management

Performance tuning

Page 36: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Tools for iOS Development Instruments

• Performance analysis tool (incl. graphical display)

o Memory usage

o Disk activity

o Network activity

o Graphics performance

Dr. Thomas Springer Application Development - 9. Platforms 39

Page 37: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Tools for iOS Development iOS Simulator

• Simulator for iPhone / Retina & iPad

o Choice of iOS versions

Dr. Thomas Springer Application Development - 9. Platforms 40

Page 38: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

iOS Developer Program

o Company ($299/year)

o Individual ($99/year)

o Limited to 100 devices

Dr. Thomas Springer Application Development - 9. Platforms 41

Page 39: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

WINDOWS PHONE

Page 40: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Windows Phone 7/8

Created by: Microsoft

First Release: September 2010

Target devices: Smartphones

Operating System:

• based on Win CE 7 (WP7)

• Windows NT (WP8)

Approach: closed source, restricted hardware

Programming: C#

Development: any hardware, Windows

Development tools: Microsoft Visual Studio 2012

Dr. Thomas Springer 43 Application Development - 9. Platforms

Windows Phone Overview

Page 41: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Hardware from multiple vendors supported

But strict resource specifications

• Resolution

o 1280x720, 800x480, 480x320

• Touch screen

• Sensors & Services

o GPS, Compass, Acceleration Sensor, Light Sensor, WLAN, FM Radio, Camera

• Memory

o At least 256 MB RAM, 8GB Flash

• CPU (ARMv7)

o At least 1 GHz

• Set of Keys

o Power, volume, camera, back, start, search

Dr. Thomas Springer 44 Application Development - 9. Platforms

Windows Phone Supported Hardware

Page 42: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Applications

• Several frameworks for UI

• All based on CLR

App Model

• App management, licensing, updates

UI Model

• Shell frame, session manager, Direct3D, compositor

Cloud Integration

• Bing, Location, Push notifications, …

Kernel

• Security, Networking, Storage, Sensor integration

Hardware foundation

Dr. Thomas Springer 45 Application Development - 9. Platforms

Windows Phone Architecture

Mobile Device

Hardware

App

.xap

App

.xap...

App Model

Hardware Foundation

Silverlight

Kernel

UI ModelCloud

Integration

XNA HTML/JavaScript

Common Language Runtime

Frameworks

Page 43: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

App provided as bundle – XAP file (ZIP archive)

• DDL with code

• Resources (images, app icon, etc.)

• Manifest for App description

• No exe, App is executed by host process

• Host process provides sandbox

o Separates Apps

o Restricts access to device resources

o Manages own files

o Manages system resources for App

Dr. Thomas Springer 46 Application Development - 9. Platforms

Windows Phone App Model

Page 44: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Apps are based on the .Net Compact framework • Adapted compared to Windows Mobile • UI Model changed completely for Windows Phone

Mobile version of .Net Framework

• tailored to resource limitations of mobile devices • same programming model

Specific runtime environment • adapted to limited memory, processing power and portability

Based on Common Language Infrastructure (CLI)

• standard for programming language and platform-independent applications

• binary compatible with standard .Net framework code • supported languages: C# and Visual Basic .Net • open to further languages which can be compiled to CLI-code

Particular layer for device platform and operating system independence

Windows Phone App Anatomy

Dr. Thomas Springer 47 Application Development - 9. Platforms

Page 45: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

2 major building blocks

• Compact Framework Class Libraries (Common Language Intermediary)

o object-oriented libraries organized in hierarchical name space

o provides basic functionality and interfaces for XML processing, Web services, and for developing web-based applications

o language independent, factored into a series of DLL files

o only used libraries are integrated

• Common Language Runtime (CLR)

o comparable with Java VM – runtime executes intermediary byte code

o memory management, thread management, security model, exception handling

o Common Type System

- language-independent type system

- enables interoperability of different programming languages and platforms

Dr. Thomas Springer 48 Application Development - 9. Platforms

.Net Compact Framework Building Blocks

Page 46: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Network, Web Services and XML

Multiple Protocol support • System.Net.Sockets class abstracts from transport protocols • TCP, UDP and HTTP supported • Standard mechanisms for encryption and authentication • Handling of IP-Addresses

Web Services well supported

• based on Visual Studio .Net features o parses WSDL documents o generates easy-to-use client proxy classes o System.Net.*

XML processing

• simple XML processing – XmlReader, XmlWriter • maximum performance, noncached, forward only XML reading and

writing • XML DOM – XmlDocument class • in-memory tree for more complex operations on document • System.Xml.*

Dr. Thomas Springer 53 Application Development - 9. Platforms

Page 47: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Persistent Memory

File Access using System.IO.* classes and operations

Active Data Objects (ADO.Net)

• classes for management of relational data sets

• DataSets in memory can be manipulated

• DataAdapters allow access two different types of data sources

Microsoft SQL Server CE

• lightweight version of SQL Server for mobile devices

• uses 1MB up to 3MB memory

• SQL Server in backend as master DB

• Data replicated on lightweigth DB

• ActiveSync component coordinates synchronization

Dr. Thomas Springer 54 Application Development - 9. Platforms

Page 48: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Windows Phone UI Creation

Completely changed in WP • Silverlight

• XNA Framework

• HTML/JavaScript

Metro design

• Originated in Windows Media Center and Zune

• Inspired by public transport signs

• Objectives

o Clean, Light, Open, Fast

o Content, not Crome

o Integrated hardware and software (integration of phone keys)

o Soulful and Alive (personalized, continuously updated)

• Style guides for UI design

Dr. Thomas Springer 55 Application Development - 9. Platforms

Page 49: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Windows Phone UI Creation

UI Model

• Based on Silverlight 3

• Subset of „Classical Silverlight“

Frame contains several pages for App

• Web-like navigation

• All viewed pages on stack (from multiple apps)

• User can navigate back and forth

Dr. Thomas Springer 56 Application Development - 9. Platforms

Frame

1-n Page(s)

Content Area

Page 50: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Development Environment

Visual Studio 2012/Visual Studio Express 2012 for Windows Phone

Dr. Thomas Springer 57 Application Development - 9. Platforms

Page 51: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

Android iOS Windows Phone

Vendor Google Inc. Apple Inc. Microsoft

Current Version

4.2 (Jelly Bean) 6.0.1 8.0

Device hardware

not restricted, various vendors (smartphones, tablets)

Restricted to Apple devices (iPod, iPhone, iPad, Apple TV)

Various vendors, strictly defined hardware requirements

OS Linux Kernel Mach/BSD Kernel WP7 - Win CE, WP8 – Windows NT

App runtime Dalvik VM Native code on Mach/BSD Kernel

Common Language Runtime

Programming Language

Java Objective-C, C (C++) C#

Open source YES (Apache 2.0 license, some libs excluded, e.g. Google Maps)

NO NO

Development restrictions

Any hardware and OS Apple Hardware and OS required

Any hardware, Windows

Developer program

development free Company $299/year, Individual $99/year

99$ per year, free for students

Dr. Thomas Springer 58 Application Development - 9. Platforms

Platform Comparision

Page 52: Application Development for Mobile and Ubiquitous …ts2/admuc/lecture1213/9...Application Development for Mobile and Ubiquitous Computing 9. Platforms Android, iOS and WP7 Dr. Ing

References

Android

• Arno Becker, Markus Pant: Android 2 – Grundlagen und Programmierung. Dpunkt Verlag, 2. aktualisierte Auflage, 2010

• http://developer.android.com

• http://code.google.com/android

iOS

• Cocoa fundamentals: http://developer.apple.com/library/mac/ #documentation/cocoa/conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html

• Bill Dudney, Chris Adamson: Entwickeln mit dem iPhone SDK. Oreilly, 2010

Windows Phone 7/8

• msdn.microsoft.com/de-de/library/cc656764.aspx

• Ivo Salmre: Writing Mobile Code-Essential Software Engineering for Building Mobile Applications, Addison-Wesley, 2005

• Patrick Getzmann, Simon Hackfort, Peter Nowak: Entwickeln für Windows Phone 7 – Architektur, Frameworks, APIs, Microsoft Press, 2011

Dr. Thomas Springer 59 Application Development - 9. Platforms