Multitasking and Background Execution

Size: px
Start display at page:

Download "Multitasking and Background Execution"

Transcription

1 Multitasking and Background Execution Fall, 2012 Prof. Massimiliano "Max" Pala

2 Introduction Spawning Threads and Tasks Background Execution User hits 'home' button the app is sent in the background Can continue to execute tasks, but no interaction with the user When the application is sent to the background and then to the foreground again, several delegate (UIApplicationDelegate) messages applicationdidenterbackground: applicationwillenterforeground: Several Messages are sent to the application as well UIApplicationDidEnterBackgroundNotification UIApplicationWillEnterForegroundNotification You can use the default notification center to register for these notifications

3 Multitasking Availability Not all the devices are capable of multitasking ios not updated, hardware not powerful enough To correctly handle the lack of multitasking capabilities you need to check for it Send the ismultitaskingsupported message to the UIDevice - (BOOL) ismultitaskingsupported { BOOL ret = NO; if ([[ UIDevice currentdevice] respondstoselector:@selector(ismultitaskingsupported:)]) { ret = [[UIDevice currentdevice] ismultitaskingsupported]; return ret;

4 Multitasking Availability (cont.) - (BOOL)applicationDidFinishLaunchingWithOptions: (NSDictionary *) launchoptions { self.mutitaskingok = [self ismultitaskingsupported]; self.window = [[UIWindow alloc] initwithframe:. if (self.multitaskingok == YES) { // Do something with it..

5 Blocks dispatch_queue_t queue = dispatch_get_global_queue(dispatch_queue_priority_default,0); dispatch_async(queue, ^(void) { ) Blocks are first class objects retain the value of the variables in the scope copy Do not need to setup NSInteger (^subtract)(nsinteger val, NSInteger from) = ^(NSInteger a, NSInteger b) { return a - b; ; subtract(5,2);

6 Shortcut for threads creation Problem: you want to create threads easily Solution: use the performselectorinbackgroundwithobjects instance method of NSObject [self ) withobject:nil]; -(void) firstcounter { NSUInteger counter = 0; for ( counter = 0; counter < 1000; counter++) { NSLog(@"Counter = %lu", (unsigned long)counter);

7 Executing tasks with GCD Grand Central Dispatch (CGD) is a low-level C API that works with block objects At the heart of CGD are dispatch queues run tasks sync, async, after a certain delay, etc.. All methods available in GCD start with dispatch_ keyword dispatch_async, dispatch_async_f, dispatch_after, etc. Different Queues: Main queue - main thread for UI operations Concurrent queues - use this instead of threads Serial queues - operate in FIFO mode (not on the main thread, though)

8 Long-running tasks in Background Application is sent to the background Still needs to finish a task Solution: borrow some time from ios to complete the task UIApplication has two useful instance method beginbackgroundtaskwithexpirationhandler: endbackgroundtask: The backgroundtimeremaining property of UIApplication contains the number of seconds the app has to finish the job DBL_MAX - when the app is in the foreground or fully suspended You can call the method as many times as you need each call must be followed by endbackgroundtask: failure to do so, may cause your app to be terminated! Background tasks should be short / small

9 Long-running tasks in Background Cleaning up tasks 1. End any threads or timers 2. End the background task by calling endbackgroundtask: method of UIApplication 3. Mark our task as ended Assign UIBackgroundTaskInvalid to the task identifiers One more thing to do When the app is put in the foreground again, we need to ensure that we get rid of the background task

10 Example #import mybackgroundappdelegate : UIResponder (nonatomic, strong) UIWindow (nonatomic, unsafe_unretained) UIBackgroundTaskIdentifier (nonatomic, strong) NSTimer #import mytimer; -(void) applicationdidenterbackground:(uiapplication *)application { if ([self ismultitaskingsupported] == NO) return; self.mytimer = [NSTimer scheduledtimerwithtimeinterval:1.0f target:self selector:@selector(timermethod:) userinfo:nil repeats:yes]; self.backtaskid = [application beginbackgroundtaskwithexpirationhandler:^(void) { [self endbackgroundtask]; ];

11 Example (cont.) -(void) timermethod:(nstimer *)sender { NSTimeInterval timeremaining = [[UIApplication sharedapplication] backgroundtimeremaining]; if (timeremaining == DBL_MAX) { NSLog(@"Background time.. undefined!"); else { NSLog(@"Remaining time = %.02f Seconds", timeremaining); -(void) endbackgroundtask { dispatch_queue_t mainqueue = dispatch_get_main_queue(); _weak mybackgroundappdelegate *weakself = self; dispatch_async(mainqueue, ^(void) { mybackgroundappdelegate *strongself = weakself; if (strongself!= nil) { [strongself.mytimer invalidate]; [[UIApplication sharedapplication] endbackgroundtask:self.backtaskid]; strongself.backtaskid = UIBackgroundTaskInvalid; );

12 Notifications in Background Problem: presenting an alert even when the application is not running Solution Instantiate a UILocalNotification object Schedule it to be delivered by using the schedulelocalnotification: instance method of UIApplication Use the cancelalllocalnotifications instance method of UIApplication to cancel the delivery of all pending local notifications If the application is running, then no notification is give to the user Pay attention to the locale - changes in the locale could affect the time, and, therefore, the delivery of your local notifications

13 Example #import myappdelegate : UIResponder (nonatomic, strong) UIWindow #import -(BOOL) applicationdidfinishlaunchingwithoptions:(nsdictionary *)opts { id schedulelocalnotification = [opts valueforkey:uiapplicationlaunchoptionslocalnotificationkey]; if (scheduledlocalnotification!= nil) { // Here our app is not running, but we received the local notification NSString *message Notification Woke Me Up!"; [[UIAlertView alloc] initwithtitle:@"notification" message:message delegate:nil cancelbuttontitle:@"ok" otherbuttontitles:nil] show]; else { (continue.)

14 Example else { // Here, our app was not awaken by a local notification // Let's schedule one! NSString *message new instant message is available. Would you like to read it?"; [self localnotificationwithmessage:message actionbuttontitle:@"yes" launchimage:nil applicationbadge:1 secondsfromnow:10.0f userinfo:nil]; message new local notification in 10 seconds!"; [[[UIAlertView alloc] initwithtitle:@"set Up" message:message delegate:nil cancelbuttontitle:@"ok" otherbuttontitles:nil] show]; return YES; -(void) didreceivelocalnotification:(uilocalnotification *)notification { NSString *message notification: delivered!"; [[[UIAlertView alloc] initwithtitle:@"local Notification" message:message delegate:nil cancelbuttontitle:@"ok" ] show];

15 Background Tasks Problem: you want the application to be able to continue to play audio files even when it's in the background Solution: edit the.plist file create a new key named UIBackgroundModes add the value 'audio' to it Now you can use the AV Foundation to play audio files also when the app is in the background <dict> <key> UIBackgroundModes</key> <array> <string> audio</string> </array> </dict>

16 Example #import <UIKit/UIKit.h> #import myappdelegate : UIResponder <UIApplicationDelegate, (nonatomic, strong) UIWindow (nonatomic, strong) AVAudioPlayer #import player; -(void) didfinishlaunchingwithoptions:(nsdictionary *)ops { dispatch_queue_t dispatchqueue = dispatch_get_global_queue(dispatch_queue_priority_default,0); dispatch_async(dispatchqueue, ^(void) { NSError *audiosessionerr = nil; AVAudioSession avsession = [AVAudioSession sharedinstance]; if ([audiosession setcategory:avaudiosessioncategoryplayback error:&audiosessionerr]) NSLog(@"Session is available"); (continue)

17 Example (cont.) NSBundle *mainbundle = [NSBundle mainbundle]; NSString *filepath = [mainbundle pathforresource:@"mysong" oftype:@"mp3"]; NSData *filedata = [NSData datawithcontentsoffile:filepath]; NSError *err = nil; ); self.audioplayer = [[AVAudioPlayer alloc] initwithdata:filedata error:&err]; if (self.audioplayer!= nil) { // Set the delegate self.audioplayer.delegate = self; // Start Playing if ([self.audioplayer preparetoplay] && [self.audioplayer play]) NSLog(@"Playing"); self.window = [[UIWindow ] ]; return YES;

18 Background Tasks 2 Problem: you want the application to be able to continue to use the location Solution: edit the.plist file create a new key named UIBackgroundModes add the value 'location' to it Now you can use the CLLocationManager to receive updates for the location even when the application is in background <dict> <key> UIBackgroundModes</key> <array> <string> location</string> </array> </dict>

19 Example #import <UIKit/UIKit.h> #import myappdelegate : UIResponder <UIApplicationDelegate, (nonatomic, strong) UIWindow (nonatomic, strong) CLLocationManager (nonatomic, unsafe_unretained, getter=isexecutinginbackground) BOOL #import executinginbackground; -(BOOL) isexecutinginbackground { return executinginbackground;

20 Example (cont.) -(void) didfinishlaunchingwithoptions:(nsdictionary *) opts { self.locmanager = [[CLLocationManager alloc] init]; self.locmanager.desiredaccuracy = kclllocationaccuracybest; self.locmanager.delegate = self; [self.locmanager startupdatinglocation]; self.window = [[UIWindow ] ]; return YES; -(void)applicationdidenterbackground:(uiapplication *)application{ self.executinginbackground = YES; // Let's reduce the accuracy while in the background self.locmanager.desiredaccuracy = kcllocationaccuracyhundredmeters; -(void)applicationwillenterforeground(uiapplication *)application { self.executinginbackground = NO; self.locmanager.desiredaccuracy = kcllocationaccuracybest;

21 Threads ios introduced access to multi threading for normal Apps in ios 4.0+ Operations needed for multi threading: A method to execute (eg., dosomething) An helper method where you create an NSOperationQueue Create a new NSInvocationOperation Add the operation to the queue Create a new autorelease pool in the dosomething: method (each thread needs its own) Use locks to access data shared among threads by to guarantee access to a block of code by a single thread

22 Threads myclass : NSObject { NSInvocationOperation *op; NSOperationQueue *queue; -(void) newthread: (id)data; myclass -(void) newthread:(id)data { queue = [[NSOperationQueue alloc] init]; op = [[[NSInvocationOperation alloc] initwithtarget:self selector:@selector(compute:) object:data] autorelease]; [queue addoperation: op];

23 Threads (cont.) -(void) compute: (id) data { NSAutoreleasePool *threadpool = [[NSAutoreleasePool alloc] init]; // Your { // Store the result in myresultobject.. [threadpool release]; -(void) submitbuttonclicked { [myobject newthread:data]; // Continue to be responsive to the UI..

Objective-C and COCOA Applications

Objective-C and COCOA Applications Objective-C and COCOA Applications Fall, 2012 Prof. Massimiliano "Max" Pala pala@nyu.edu Overview X-Code IDE Basics Objective-C Classes Methods Invocations Important Types Memory Management Protocols Exceptions

More information

AVAudioPlayer. avtouch Application

AVAudioPlayer. avtouch Application AVAudioPlayer avtouch Application iphone Application Index 1. iphone Application 1) iphone Application 2) iphone Application Main Method 3) iphone Application nib(.xib) 2. avtouch Application 1) avtouch

More information

Concurrent Programming in Mac OS X and ios

Concurrent Programming in Mac OS X and ios Concurrent Programming in Mac OS X and ios Concurrent Programming in Mac OS X and ios Vandad Nahavandipoor Beijing Cambridge Farnham Köln Sebastopol Tokyo Concurrent Programming in Mac OS X and ios by

More information

src3/bettertextfield/bettertextfield/appdelegate.h // AppDelegate.h // BetterTextField

src3/bettertextfield/bettertextfield/appdelegate.h // AppDelegate.h // BetterTextField src3/bettertextfield/bettertextfield/appdelegate.h 1 1 1 1 AppDelegate.h BetterTextField Created by Tommy MacWilliam on 3/7/ Copyright (c) 2012 MyCompanyName. All rights reserved. #import

More information

ITP 342 Mobile App Dev

ITP 342 Mobile App Dev ITP 342 Mobile App Dev Grand Central Dispatch Background Processing Grand Central Dispatch (GCD) New API for splitting up the work your app needs to do into smaller chunks that can be spread across multiple

More information

Mobile Application Development

Mobile Application Development Mobile Application Development Lecture 17 Blocks, Concurrency, Networking 2013/2014 Parma Università degli Studi di Parma Lecture Summary Blocks Concurrency and multithreading Grand Central Dispatch (GCD)

More information

Kevin van Vechten Core OS

Kevin van Vechten Core OS Kevin van Vechten Core OS 2 3 Bill Bumgarner 4 (lambda (a) (add a d)) 10 timesrepeat:[pen turn:d; draw] z.each { val puts(val + d.to_s)} repeat(10, ^{ putc('0'+ d); }); 5 6 7 8 ^ 9 [myset objectspassingtest:

More information

COPYRIGHTED MATERIAL. part I Developing a Professional UI. Chapter 1: Creating a Personal Library. Chapter 2: Advancing with Tableviews

COPYRIGHTED MATERIAL. part I Developing a Professional UI. Chapter 1: Creating a Personal Library. Chapter 2: Advancing with Tableviews part I Developing a Professional UI Chapter 1: Creating a Personal Library Chapter 2: Advancing with Tableviews Chapter 3: Advancing with Map Kit Chapter 4: Understanding Action Views and Alerts Chapter

More information

iphone Programming Touch, Sound, and More! Norman McEntire Founder Servin Flashlight CodeTour TouchCount CodeTour

iphone Programming Touch, Sound, and More! Norman McEntire Founder Servin Flashlight CodeTour TouchCount CodeTour iphone Programming Touch, Sound, and More! Norman McEntire Founder Servin 1 Legal Info iphone is a trademark of Apple Inc. Servin is a trademark of Servin Corporation 2 Welcome Welcome! Thank you! My promise

More information

AVAudioRecorder & System Sound Services

AVAudioRecorder & System Sound Services AVAudioRecorder & System Sound Services Dept. of Multimedia Science, Sookmyung Women s University. prof. JongWoo Lee Index AVAudioRecorder? - (AudioRecorder) System Sound Service? - (SysSound) AVAudioRecorder

More information

Concurrency. CS 442: Mobile App Development Michael Saelee

Concurrency. CS 442: Mobile App Development Michael Saelee Concurrency CS 442: Mobile App Development Michael Saelee note: ios devices are now (mostly) multi-core; i.e., concurrency may allow for real performance gains! but the more common incentive

More information

Collections. Fall, Prof. Massimiliano "Max" Pala

Collections. Fall, Prof. Massimiliano Max Pala Collections Fall, 2012 Prof. Massimiliano "Max" Pala pala@nyu.edu Overview Arrays Copy and Deep Copy Sets Dictionaries Examples Arrays Two Classes NSArray and NSMutableArray (subclass of NSArray) int main(int

More information

Your First ios 7 App. Everything you need to know to build and submit your first ios app. Ash Furrow

Your First ios 7 App. Everything you need to know to build and submit your first ios app. Ash Furrow Your First ios 7 App Everything you need to know to build and submit your first ios app. Ash Furrow This book is for sale at http://leanpub.com/your-first-ios-app This version was published on 2014-09-13

More information

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012 Developing Applications for ios Today Blocks Objective-C language feature for in-lining blocks of code Foundation of multi-threaded support (GCD) What is a block? A block of code (i.e. a sequence of statements

More information

lectures/2/src2/nib1/nib1/appdelegate.h // AppDelegate.h // Nib1 // David J. Malan // Harvard University //

lectures/2/src2/nib1/nib1/appdelegate.h // AppDelegate.h // Nib1 // David J. Malan // Harvard University // lectures/2/src2/nib1/nib1/appdelegate.h 1 1 1 1 1 1 1 1 1 2 AppDelegate.h Nib1 David J. Malan Harvard University malan@harvard.edu Demonstrates a Single View Application implemented with a nib, plus IBAction

More information

Navigation bar (Xcode version 4.5.2) 1. Create a new project. From the Xcode menu, select File > New > Project

Navigation bar (Xcode version 4.5.2) 1. Create a new project. From the Xcode menu, select File > New > Project Navigation bar (Xcode version 4.5.2) 1. Create a new project. From the Xcode menu, select File > New > Project Choose the Single View Application template Click Next. In the Choose options for your new

More information

Grand Central Dispatch and NSOperation. CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015

Grand Central Dispatch and NSOperation. CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015 Grand Central Dispatch and NSOperation CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015 1 Credit Where Credit Is Due Most of the examples in this lecture were inspired by example code

More information

Objective-C ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University.

Objective-C ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University. Objective-C 2.0 2501ICT/7421ICTNathan René Hexel School of Information and Communication Technology Griffith University Semester 1, 2012 Outline Fast Enumeration and Properties 1 Fast Enumeration and Properties

More information

ios Performance and Concurrency Patrick Thomson

ios Performance and Concurrency Patrick Thomson ios Performance and Concurrency Patrick Thomson Performance Matters ios devices are resource-constrained Users will notice performance issues The deciding factor between a good and an awful app Demo Obligatory

More information

Mobile Application Development

Mobile Application Development Mobile Application Development Lecture 13 Introduction to ObjectiveC Part II 2013/2014 Parma Università degli Studi di Parma Lecture Summary Object creation Memory management Automatic Reference Counting

More information

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012 Developing Applications for ios Today NSTimer and perform after delay Two delayed-action alternatives. More View Animation Continuation of Kitchen Sink demo Alerts and Action Sheets Notifying the user

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

ITP 342 Mobile App Dev. Unit Testing

ITP 342 Mobile App Dev. Unit Testing ITP 342 Mobile App Dev Unit Testing Testing Xcode provides you with capabilities for extensive software testing. Testing your projects enhances robustness, reduces bugs, and speeds the acceptance of your

More information

Announcements. Today s Topics

Announcements. Today s Topics Announcements We will discuss final project ideas on Monday Three guest presenters coming to class Lab 5 is due on Wednesday Nov 4 th 1 Extensible - CSE 436 Software Networking Engineering Platform Workshop

More information

CS 47. Beginning iphone Application Development

CS 47. Beginning iphone Application Development CS 47 Beginning iphone Application Development Introductions Who, why, which? Shameless Plug: LoudTap Wifi Access (If it works..) SSID: Stanford Username/password: csp47guest Expectations This is a programming

More information

ITP 342 Mobile App Dev. Locations and Maps

ITP 342 Mobile App Dev. Locations and Maps ITP 342 Mobile App Dev Locations and Maps Locations and Maps Every ios device has the ability to determine where in the world it is Create a live interactive map showing any locations you like, including

More information

Timers Timer CPRE 388

Timers Timer CPRE 388 Timers CPRE 388 Timers A timer provides a way to perform a delayed action or a periodic action Thetimer waits until a certain time interval has elapsed and then fires, sending a specified message to a

More information

ios Core Data Example Application

ios Core Data Example Application ios Core Data Example Application The Core Data framework provides an abstract, object oriented interface to database storage within ios applications. This does not require extensive knowledge of database

More information

Intro to Native ios Development. Dave Koziol Arbormoon Software, Inc.

Intro to Native ios Development. Dave Koziol Arbormoon Software, Inc. Intro to Native ios Development Dave Koziol Arbormoon Software, Inc. About Me Long time Apple Developer (20 WWDCs) Organizer Ann Arbor CocoaHeads President & ios Developer at Arbormoon Software Inc. Wunder

More information

Collections & Memory Management. Lecture 2

Collections & Memory Management. Lecture 2 Collections & Memory Management Lecture 2 Demo: Accessing Documentation Collections NSArray a list of objects in order [array objectatindex:0] [array objectatindex:3] Counting starts at zero, not one NSSet

More information

Objective-C Runtime. Cocoa s Jewel in the Crown. NSConference Nicolas

Objective-C Runtime. Cocoa s Jewel in the Crown. NSConference Nicolas Objective-C Runtime Cocoa s Jewel in the Crown NSConference 2011 Nicolas Seriot @nst021 [isa kindof:magic] 1. Objective-C 2. Recipes 3. Introspection 4. Debugging Objective-C Runtime OO, Smalltalk-like,

More information

COMP327 Mobile Computing Session: Lecture Set 1a - Swift Introduction and the Foundation Framework Part 2

COMP327 Mobile Computing Session: Lecture Set 1a - Swift Introduction and the Foundation Framework Part 2 COMP327 Mobile Computing Session: 2018-2019 Lecture Set 1a - Swift Introduction and the Foundation Framework Part 2 73 Other Swift Guard Already seen that for optionals it may be necessary to test that

More information

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010

Stanford CS193p. Developing Applications for iphone 4, ipod Touch, & ipad Fall Stanford CS193p Fall 2010 Developing Applications for iphone 4, ipod Touch, & ipad Today Blocks Language syntax for declaring a function on the fly. Grand Central Dispatch C API for leveraging blocks to make writing multithreaded

More information

CS193P - Lecture 16. iphone Application Development. Audio APIs Video Playback Displaying Web Content Settings

CS193P - Lecture 16. iphone Application Development. Audio APIs Video Playback Displaying Web Content Settings CS193P - Lecture 16 iphone Application Development Audio APIs Video Playback Displaying Web Content Settings 1 Today s Topics Audio APIs Video Playback Settings Bundles 2 Audio Playback 3 Uses for Audio

More information

App SandBox Directory

App SandBox Directory Data Persistence Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283 App SandBox Directory

More information

Announcement. Final Project Proposal Presentations and Updates

Announcement. Final Project Proposal Presentations and Updates Announcement Start Final Project Pitches on Wednesday Presentation slides dues by Tuesday at 11:59 PM Email slides to cse438ta@gmail.com Extensible Networking Platform 1 1 - CSE 438 Mobile Application

More information

Core Data Potpourri. Paul

Core Data Potpourri. Paul Core Data Potpourri Paul Goracke paul@goracke.org @pgor What We Can Learn from an All-Night Marathon of Threes Paul Goracke @pgor Core Data Potpourri Paul Goracke paul@goracke.org @pgor What I m leaving

More information

IPHONE DEVELOPMENT. Getting Started with the iphone SDK

IPHONE DEVELOPMENT. Getting Started with the iphone SDK IPHONE DEVELOPMENT Getting Started with the iphone SDK OBJECTIVE-C The Big Picture STRICT SUPERSET OF C The Objective C Language Any C stuff applies Standard libs are here (time, sqrt etc) The C Language

More information

E Event-based parser, XML, 180 Extended attributes, URLs, 118 API, 119 command line, 118 description, 118 NSURL category, 119

E Event-based parser, XML, 180 Extended attributes, URLs, 118 API, 119 command line, 118 description, 118 NSURL category, 119 Index A Access control lists (ACLs), 113 Application distribution, 353 certificate utility, 358 App ID creation, 358 App Store, 363 center, 357 no of certificates, 358 code sign identity, 362 configuring

More information

Grand Central Dispatch. Sri Teja Basava CSCI 5528: Foundations of Software Engineering Spring 10

Grand Central Dispatch. Sri Teja Basava CSCI 5528: Foundations of Software Engineering Spring 10 Grand Central Dispatch Sri Teja Basava CSCI 5528: Foundations of Software Engineering Spring 10 1 New Technologies in Snow Leopard 2 Grand Central Dispatch An Apple technology to optimize application support

More information

Cocoa, Objective C - Alert Panels!

Cocoa, Objective C - Alert Panels! Cocoa, Objective C - Alert Panels By Debasis Das March - 2014 1 of 13 Alerts are key to any application. Some of the usages of an application alerts are as - To display an informative message - To take

More information

Embed ios SDK in to a fitness app

Embed ios SDK in to a fitness app Embed ios SDK in to a fitness app Objective: To embed smart messaging in to an existing ios app for fitness Implementation: 1. Add TeamchatSDK.framework to your project. 2. Add TeamchatSDK.framework to

More information

CS193P - Lecture 10. iphone Application Development. Performance

CS193P - Lecture 10. iphone Application Development. Performance CS193P - Lecture 10 iphone Application Development Performance 1 Announcements 2 Announcements Paparazzi 2 is due next Wednesday at 11:59pm 2 Announcements Paparazzi 2 is due next Wednesday at 11:59pm

More information

Mobile Application Programming. Objective-C Classes

Mobile Application Programming. Objective-C Classes Mobile Application Programming Objective-C Classes Custom Classes @interface Car : NSObject #import Car.h + (int) viper; - (id) initwithmodel:(int)m; @implementation Car Point position; float velocity;

More information

Mobile Application Programing: ios. Messaging

Mobile Application Programing: ios. Messaging Mobile Application Programing: ios Messaging Application Model View Controller (MVC) Application Controller User Action Update View Notify Update Model Messaging Controller User Action Update Notify Update

More information

Data IAP 2010 iphonedev.csail.mit.edu edward benson / Thursday, January 14, 2010

Data IAP 2010 iphonedev.csail.mit.edu edward benson / Thursday, January 14, 2010 Data IAP 2010 iphonedev.csail.mit.edu edward benson / eob@csail.mit.edu Today Property Lists User Defaults Settings Panels CoreData Property Lists Today Add persistence. plist 1. Using Property Lists in

More information

What s New in Core Location

What s New in Core Location Core OS What s New in Core Location Session 706 Stephen Rhee Engineering Manager 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

More information

Design Phase. Create a class Person. Determine the superclass. NSObject (in this case)

Design Phase. Create a class Person. Determine the superclass. NSObject (in this case) Design Phase Create a class Person Determine the superclass NSObject (in this case) 8 Design Phase Create a class Person Determine the superclass NSObject (in this case) What properties should it have?

More information

Working Effectively with Objective-C on iphone OS. Blaine Garst Wizard of Runtimes

Working Effectively with Objective-C on iphone OS. Blaine Garst Wizard of Runtimes Working Effectively with Objective-C on iphone OS Blaine Garst Wizard of Runtimes 2 Working Effectively with Objective-C on ios 4 Blaine Garst Wizard of Runtimes 3 Objective-C is the language of Cocoa

More information

Review (Basic Objective-C)

Review (Basic Objective-C) Classes Header.h (public) versus Implementation.m (private) @interface MyClass : MySuperclass... @end (only in header file) @interface MyClass()... @end (only in implementation file) @implementation...

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer About the Tutorial ios is a mobile operating system developed and distributed by Apple Inc. It was originally released in 2007 for the iphone, ipod Touch, and Apple TV. ios is derived from OS X, with which

More information

SDK Quick Start Guide

SDK Quick Start Guide SDK Quick Start Guide Index Requirements...3 Required Frameworks...3 Project Target Build Settings...4 AppDelegate sub- classing...4 Using the Low Level API...6 C2CallPhone Base class for low- level C2Call

More information

Esri Developer Summit in Europe ArcGIS Runtime for ios

Esri Developer Summit in Europe ArcGIS Runtime for ios Esri Developer Summit in Europe ArcGIS Runtime for ios Al Pascual / Nick Furness ArcGIS Web & Mobile APIs Web APIs Flex JavaScript Silverlight REST Mobile APIs ArcGIS Server ArcGIS Runtime SDK for ios

More information

Objective-C Part 2 (ECS189H) Ken Joy Serban Porumbescu

Objective-C Part 2 (ECS189H) Ken Joy Serban Porumbescu Objective-C Part 2 (ECS189H) Ken Joy joy@cs.ucdavis.edu Serban Porumbescu porumbes@cs.ucdavis.edu Today Objective-C Memory Management Properties Categories and Protocols Delegates Objective-C Memory Management

More information

Mobile Application Development

Mobile Application Development Object Lifecycle Mobile Application Development Creating objects Memory management Destroying objects Basic ios Development 11-Nov-11 Mobile App Development 1 11/11/11 2 Object Creation Two step process

More information

What's new in ios 5?

What's new in ios 5? What's new in ios 5? (and why should I care?) Vikram Kriplaney vikram@local.ch vikram@iphonso.com @krips icloud Storage API Provides a sandbox for each app Synchronizes data and files between cloud and

More information

Advanced Object- C Features

Advanced Object- C Features Advanced Object- C Features Advanced Features Proper6es Categories Protocols Delegates Selectors Key- Value Coding Predicators Proper6es Provide access to object a?ributes Shortcut to implemen6ng ge?er/se?er

More information

Life Cycle. Chapter Explore the Game Application. Understanding the Views in a Game

Life Cycle. Chapter Explore the Game Application. Understanding the Views in a Game 3 Chapter Explore the Game Application Life Cycle There is more to a game than just the fun parts. Almost all of the games on the market, and definitely the big titles, involve multiple views and a reasonably

More information

Computer Science 251. iphone Application Development. Autorotation, Popover Controllers, Modal Controllers

Computer Science 251. iphone Application Development. Autorotation, Popover Controllers, Modal Controllers Computer Science 251 iphone Application Development Autorotation, Popover Controllers, Modal Controllers Two Types of Orientation Device: physically upside down, rotated left, on its back, etc. Can be

More information

Multitasking Support on the ios Platform

Multitasking Support on the ios Platform Multitasking Support on the ios Platform Priya Rajagopal Invicara (www.invicara.com) @rajagp Multitasking on ios? Multitasking allows apps to perform certain tasks in the background while you're using

More information

Document Version Date: 1st March, 2015

Document Version Date: 1st March, 2015 7 Minute Fitness: ios(swift) Application Document Version 1.0.1 Date: 1st March, 2015 2 [7 MINUTE FITNESS: APP DOCUMENTATION] Important Notes:... 5 AppDelegate Class Reference... 6 Tasks... 6 Instance

More information

CS193P - Lecture 3. iphone Application Development. Custom Classes Object Lifecycle Autorelease Properties

CS193P - Lecture 3. iphone Application Development. Custom Classes Object Lifecycle Autorelease Properties CS193P - Lecture 3 iphone Application Development Custom Classes Object Lifecycle Autorelease Properties 1 Announcements Assignments 1A and 1B due Wednesday 1/13 at 11:59 PM Enrolled Stanford students

More information

lecture 10 UI/UX and Programmatic Design cs : spring 2018

lecture 10 UI/UX and Programmatic Design cs : spring 2018 lecture 10 UI/UX and Programmatic Design cs198-001 : spring 2018 1 Announcements custom app progress form due before lab (~1 minute) will be released after lecture only 2 labs left (both very important)

More information

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios SS 2011 Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Timeline Date Topic/Activity 5.5.2011 Introduction and Overview of the ios Platform 12.5.2011

More information

Covers ios 6. Bear Cahill. Includes 98 Techniques MANNING

Covers ios 6. Bear Cahill. Includes 98 Techniques MANNING Bear Cahill Covers ios 6 Includes 98 Techniques MANNING ios in Practice by Bear Cahill Chapter 5 Copyright 2012 Manning Publications brief contents PART 1 GETTING STARTED...1 1 Getting started with ios

More information

Principles of Programming Languages. Objective-C. Joris Kluivers

Principles of Programming Languages. Objective-C. Joris Kluivers Principles of Programming Languages Objective-C Joris Kluivers joris.kluivers@gmail.com History... 3 NeXT... 3 Language Syntax... 4 Defining a new class... 4 Object identifiers... 5 Sending messages...

More information

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios SS 2011 Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Milestones 26.5. Project definition, brainstorming, main functions, persona 9.6. (week

More information

CarPlay Audio and Navigation Apps

CarPlay Audio and Navigation Apps #WWDC18 CarPlay Audio and Navigation Apps Tunes and turns Jonathan Hersh, ios Car Experience Albert Wan, ios Car Experience Mike Knippers, ios Car Experience 2018 Apple Inc. All rights reserved. Redistribution

More information

The Sensors in your iphone. Dr Alasdair Allan

The Sensors in your iphone. Dr Alasdair Allan The Sensors in your iphone Dr Alasdair Allan Available Hardware Hardware Features Original iphone iphone 3G iphone 3GS 1st Gen ipod touch 2nd Gen ipod touch 3rd Gen ipod touch Cellular Wi-Fi Bluetooth

More information

A Mobile Mapping Application

A Mobile Mapping Application A Mobile Mapping Application MANNING SHELTER ISLAND A Mobile Mapping Application A special edition ebook Copyright 2013 Manning Publications contents about mobile mapping about this ebook v about the authors

More information

Getting Started with ArcGIS Runtime SDK for ios. Nick Furness / Al Pascual

Getting Started with ArcGIS Runtime SDK for ios. Nick Furness / Al Pascual Getting Started with ArcGIS Runtime SDK for ios Nick Furness / Al Pascual ArcGIS Runtime Family of SDKs for multiple platforms - Consistent capabilities Native to the platform - For building great apps

More information

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios WS 2011 Prof. Dr. Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Today Saving data Networking Location Sensors Exercise 2 2 Timeline # Date

More information

Mobile Application Development L14: Miscellaneous

Mobile Application Development L14: Miscellaneous Mobile Application Development L14: Miscellaneous Jonathan Diehl (Informatik 10) Hendrik Thüs (Informatik 9) Agenda Accessing Contacts, Calendars, and Email Using the Camera User Preferences & Settings

More information

ITP 342 Mobile App Dev. Audio

ITP 342 Mobile App Dev. Audio ITP 342 Mobile App Dev Audio File Formats and Data Formats 2 pieces to every audio file: file format (or audio container) data format (or audio encoding) File formats describe the format of the file itself

More information

Objective-C. Stanford CS193p Fall 2013

Objective-C. Stanford CS193p Fall 2013 New language to learn! Strict superset of C Adds syntax for classes, methods, etc. A few things to think differently about (e.g. properties, dynamic binding) Most important concept to understand today:

More information

Stanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013

Stanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013 Developing Applications for ios -14 Today What is this class all about? Description Prerequisites Homework / Final Project ios Overview What s in ios? MVC Object-Oriented Design Concept Objective C (Time

More information

Stanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011

Stanford CS193p. Developing Applications for ios. Fall Stanford CS193p. Fall 2011 Developing Applications for ios Today NSTimer and perform after delay Two delayed-action alternatives. More View Animation Continuation of Kitchen Sink demo Alerts and Action Sheets Notifying the user

More information

Cocoa Touch Best Practices

Cocoa Touch Best Practices App Frameworks #WWDC15 Cocoa Touch Best Practices Session 231 Luke Hiesterman UIKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

ITP 342 Advanced Mobile App Dev. Memory

ITP 342 Advanced Mobile App Dev. Memory ITP 342 Advanced Mobile App Dev Memory Memory Management Objective-C provides two methods of application memory management. 1. In the method described in this guide, referred to as manual retain-release

More information

Maps, locations & sensors in ios

Maps, locations & sensors in ios Maps, locations & sensors in ios Sebastian Ernst, PhD Department of Applied Computer Science AGH University of Science and Technology Displaying maps (ObjC) Maps are handled by MapKit and displayed using

More information

Power, Performance, and Diagnostics

Power, Performance, and Diagnostics Core OS #WWDC14 Power, Performance, and Diagnostics What's new in GCD and XPC Session 716 Daniel Steffen Darwin Runtime Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not

More information

UI Design and Storyboarding

UI Design and Storyboarding UI Design and Storyboarding Mobile Application Development in ios School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in ios 1 Outline Model-View-Controller

More information

Why Using Location and Map? iphone Application Programming L12: Location and Maps. Why Using Location and Map? Determine where you are

Why Using Location and Map? iphone Application Programming L12: Location and Maps. Why Using Location and Map? Determine where you are Why Using Location and Map? iphone Application Programming L12: Location and Maps Chat Wacharamanotham Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone

More information

Praktikum Entwicklung von Mediensystemen mit

Praktikum Entwicklung von Mediensystemen mit Praktikum Entwicklung von Mediensystemen mit Wintersemester 2013/2014 Christian Weiß, Dr. Alexander De Luca Today Table View Navigation Controller Passing Data Between Scenes Assignment 2 2 Navigation-based

More information

iphone Application Programming Networking

iphone Application Programming Networking iphone Application Programming Networking Media Computing Group RWTH Aachen University WS 2013/2014 http://hci.rwth-aachen.de/iphone Networking Connect Two Peers Standard UI What Is the Peer Picker? Game

More information

Creating Audio Apps for watchos

Creating Audio Apps for watchos Session #WWDC18 Creating Audio Apps for watchos 504 Neil Desai, watchos Frameworks Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

Praktikum Entwicklung von Mediensystemen mit

Praktikum Entwicklung von Mediensystemen mit Praktikum Entwicklung von Mediensystemen mit Sommersemester 2013 Fabius Steinberger, Dr. Alexander De Luca Today Organization Introduction to ios programming Hello World Assignment 1 2 Organization 6 ECTS

More information

Game Center Techniques, Part 1

Game Center Techniques, Part 1 Game Center Techniques, Part 1 Get Your Game On Gabriel Belinsky Senior Software Engineer 2 Game Center Friends Leaderboards Achievements Multiplayer gaming 3 What You ll Learn Game Center API basics Authenticate

More information

Getting Help. iphone Application Programming Lecture 3: Foundation Classes. Data Structures in Objective C. Online Documentation.

Getting Help. iphone Application Programming Lecture 3: Foundation Classes. Data Structures in Objective C. Online Documentation. iphone Application Programming Lecture 3: Foundation Classes Prof. Jan Borchers Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone Online Documentation

More information

Asynchronous Events on Linux

Asynchronous Events on Linux Asynchronous Events on Linux Frederic.Rossi@Ericsson.CA Open System Lab Systems Research June 25, 2002 Ericsson Research Canada Introduction Linux performs well as a general purpose OS but doesn t satisfy

More information

ITP 342 Mobile App Development. Singleton

ITP 342 Mobile App Development. Singleton ITP 342 Mobile App Development Singleton Shared Model Object A singleton is a special kind of class where only one instance of the class exists for the current process. In the case of an iphone app, the

More information

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...

More information

Mastering Xcode for iphone OS Development Part 2. Marc Verstaen Sr. Manager, iphone Tools

Mastering Xcode for iphone OS Development Part 2. Marc Verstaen Sr. Manager, iphone Tools Mastering Xcode for iphone OS Development Part 2 Marc Verstaen Sr. Manager, iphone Tools 2 Tale of Two Sessions Part 1: Orientation: Tour of complete development cycle Part 2: Mastery: Details of several

More information

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes

Review. iphone Application Programming Lecture 2: Objective-C, Cocoa. History. Objective-C. Device restrictions. Interaction paradigm changes Review iphone Application Programming Lecture 2: Objective-C, Cocoa Device restrictions Gero Herkenrath Media Computing Group RWTH Aachen University Winter Semester 2013/2014 http://hci.rwth-aachen.de/iphone

More information

I, J. Key-value observing (KVO), Label component, 32 text property, 39

I, J. Key-value observing (KVO), Label component, 32 text property, 39 Index A Abstract factory pattern, 207 concrete factory, 213 examples in Cocoa, 227 groups of objects, 212 implementing, 213 abstract factories, 214 concrete factories, 214 215 operations, 212 213 pitfalls,

More information

Acollada ios Charting Components

Acollada ios Charting Components Acollada ios Charting Components Acollada ios Charting Components... 1 LineChartView... 3 Description... 3 Screenshot... 3 Protocols to be implemented... 3 Customizing the LineChartView aspect... 4 How

More information

Guides ios Document current as of 08/22/ :11 PM. Installation. Install SDL SDK

Guides ios Document current as of 08/22/ :11 PM. Installation. Install SDL SDK Guides ios Document current as of 08/22/2017 05:11 PM. Installation In order to build your app on a SmartDeviceLink (SDL) Core, the SDL software development kit (SDK) must be installed in your app. The

More information

Cisco StadiumVision Mobile API for Apple ios

Cisco StadiumVision Mobile API for Apple ios CHAPTER 1 Revised: October 31, 2013 This chapter describes the Cisco StadiumVision Mobile SDK Release 1.3 for Apple ios, and contains the following sections: New Features in Cisco StadiumVision Mobile

More information

Extensions to Barrelfish Asynchronous C

Extensions to Barrelfish Asynchronous C Extensions to Barrelfish Asynchronous C Michael Quigley michaelforrquigley@gmail.com School of Computing, University of Utah October 27, 2016 1 Abstract The intent of the Microsoft Barrelfish Asynchronous

More information

imate: ios Application

imate: ios Application imate: ios Application Document Version 1.0.1 Date: 27 th May, 2014 2 [IMATE: IOS APPLICATION] Contents AppDelegate Class Reference... 4 Tasks... 4 Properties... 4 Instance Methods... 4 ChatMenuViewController

More information