Your SlideShare is downloading. ×
0
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
In The Brain of Paul Ardeleanu: What's new in iOS 4
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

In The Brain of Paul Ardeleanu: What's new in iOS 4

2,829

Published on

Skills Matter Presentation: "What's new in iOS 4"

Skills Matter Presentation: "What's new in iOS 4"

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,829
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
38
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. What’s new in iOS4 Paul Ardeleanu @pardel SkillsMatter - August 12th 2010
  2. SkillsMatter - August 12th 2010 What was missing? Multitasking Flash http://pardel.net
  3. SkillsMatter - August 12th 2010 What’s new in iOS4? Multitasking Local Notifications iAd Game Center New Frameworks & APIs http://pardel.net
  4. SkillsMatter - August 12th 2010 1. Multitasking http://pardel.net
  5. SkillsMatter - August 12th 2010 1. Multitasking ... of a different kind http://pardel.net
  6. SkillsMatter - August 12th 2010 Multitasking http://pardel.net
  7. SkillsMatter - August 12th 2010 Multitasking Fast app switching Task Completion Background Audio Navigation & Location tracking VoIP http://pardel.net
  8. SkillsMatter - August 12th 2010 Fast App Switching Running Not running http://pardel.net
  9. SkillsMatter - August 12th 2010 Fast App Switching Active Running Inactive Not running http://pardel.net
  10. SkillsMatter - August 12th 2010 Fast App Switching Active Running Running Inactive Background Not running Not running http://pardel.net
  11. SkillsMatter - August 12th 2010 Fast App Switching Active Running Running Inactive Running Background Suspended Not running Not running http://pardel.net
  12. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Not running http://pardel.net
  13. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: Inactive Not running http://pardel.net
  14. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: Inactive Not running http://pardel.net
  15. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive Not running http://pardel.net
  16. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Not running http://pardel.net
  17. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Not running http://pardel.net
  18. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Not running http://pardel.net
  19. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Background Running Suspended Not running http://pardel.net
  20. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: applicationDidResignActive: Background Running Suspended Not running http://pardel.net
  21. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Background applicationDidEnterBackground: Running Suspended Not running http://pardel.net
  22. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Background applicationDidEnterBackground: Running applicationDidEnterForeground: Suspended Not running http://pardel.net
  23. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Background applicationDidEnterBackground: Running applicationDidEnterForeground: Suspended Not running http://pardel.net
  24. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Background applicationDidEnterBackground: Running applicationDidEnterForeground: Suspended Not running http://pardel.net
  25. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationDidResignActive: Inactive applicationDidTerminate: Background applicationDidEnterBackground: Running applicationDidEnterForeground: Suspended Not running http://pardel.net
  26. SkillsMatter - August 12th 2010 UIApplicationDelegate Callbacks // // MyAppDelegate.m // - (void)applicationWillResignActive:(UIApplication *)application - (void)applicationDidEnterBackground:(UIApplication *)application - (void)applicationWillEnterForeground:(UIApplication *)application - (void)applicationDidBecomeActive:(UIApplication *)application - (void)applicationWillTerminate:(UIApplication *)application UIApplicationDidEnterBackgroundNotification UIApplicationDidEnterForegroundNotification http://pardel.net
  27. SkillsMatter - August 12th 2010 UIApplicationDelegate Callbacks // // MyAppDelegate.m // - (void)applicationWillResignActive:(UIApplication *)application - (void)applicationDidEnterBackground:(UIApplication *)application - (void)applicationWillEnterForeground:(UIApplication *)application - (void)applicationDidBecomeActive:(UIApplication *)application - (void)applicationWillTerminate:(UIApplication *)application UIApplicationDidEnterBackgroundNotification UIApplicationDidEnterForegroundNotification Demo http://pardel.net
  28. SkillsMatter - August 12th 2010 UIApplication typedef enum { UIApplicationStateActive, UIApplicationStateInactive, UIApplicationStateBackground } UIApplicationState; @property(nonatomic,readonly) UIApplicationState applicationState [[UIApplication sharedApplication] applicationState] http://pardel.net
  29. SkillsMatter - August 12th 2010 Best practices Active Foreground Inactive applicationDidEnterForeground: Background applicationDidEnterBackground: Running Suspended Not running http://pardel.net
  30. SkillsMatter - August 12th 2010 Best practices Active Foreground Inactive applicationDidEnterForeground: Background applicationDidEnterBackground: Running ✦ save state ✦ minimise memory usage ✦ change the UI accordingly ✦ stop Bonjour & networking ✦ stop shared system data Suspended access & GPU Not running http://pardel.net
  31. SkillsMatter - August 12th 2010 Best practices Active Foreground Inactive applicationDidEnterForeground: Background applicationDidEnterBackground: Running ✦ save state ✦ minimise memory usage ✦ change the UI accordingly ✦ stop Bonjour & networking ✦ stop shared system data Suspended access & GPU your app can be Not running terminated at any time http://pardel.net
  32. SkillsMatter - August 12th 2010 No Multitasking UIApplicationExitsOnSuspend http://pardel.net
  33. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Background Running Suspended Not running http://pardel.net
  34. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Background Running Suspended Not running http://pardel.net
  35. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Background Running Suspended Not running http://pardel.net
  36. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Background Running applicationDidEnterBackground: Suspended Not running http://pardel.net
  37. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Background Running applicationDidEnterBackground: applicationDidTerminate: Suspended Not running http://pardel.net
  38. SkillsMatter - August 12th 2010 Background Services Task completion Background Audio VoIP Background Location http://pardel.net
  39. SkillsMatter - August 12th 2010 Task completion Active Foreground Inactive Background Not running http://pardel.net
  40. SkillsMatter - August 12th 2010 Task completion Active Foreground Inactive Background Running Not running http://pardel.net
  41. SkillsMatter - August 12th 2010 Task completion Active Foreground Inactive Background Running Not running http://pardel.net
  42. SkillsMatter - August 12th 2010 Task completion Active Foreground Inactive Background Running Suspended Not running http://pardel.net
  43. SkillsMatter - August 12th 2010 Task completion Active Foreground Inactive Background Running Not running http://pardel.net
  44. SkillsMatter - August 12th 2010 Task completion UIApplication - (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler: (void(^)(void))handler; - (void)endBackgroundTask:(UIBackgroundTaskIdentifier)identifier; @property(nonatomic,readonly) NSTimeInterval backgroundTimeRemaining; http://pardel.net
  45. SkillsMatter - August 12th 2010 Task completion UIApplication - (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler: (void(^)(void))handler; - (void)endBackgroundTask:(UIBackgroundTaskIdentifier)identifier; @property(nonatomic,readonly) NSTimeInterval backgroundTimeRemaining; typedef NSUInteger UIBackgroundTaskIdentifier; http://pardel.net
  46. SkillsMatter - August 12th 2010 Task completion UIApplication - (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler: (void(^)(void))handler; - (void)endBackgroundTask:(UIBackgroundTaskIdentifier)identifier; @property(nonatomic,readonly) NSTimeInterval backgroundTimeRemaining; typedef NSUInteger UIBackgroundTaskIdentifier; self.bgTaskId = [app beginBackgroundTaskWithExpirationHandler: ^{ [self stopLongTask]; }]; ... [[UIApplication sharedApplication] endBackgroundTask:self.bgTaskId]; http://pardel.net
  47. SkillsMatter - August 12th 2010 Background Services Task completion Background Audio VoIP Background Location http://pardel.net
  48. SkillsMatter - August 12th 2010 Background Services http://pardel.net
  49. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Background Not running http://pardel.net
  50. SkillsMatter - August 12th 2010 App Life Cycle Active Foreground Inactive Background Running Not running http://pardel.net
  51. SkillsMatter - August 12th 2010 App Life Cycle AVAudioSession Active Foreground Inactive AVAudioSessionDelegate Background Running Not running http://pardel.net
  52. SkillsMatter - August 12th 2010 App Life Cycle AVAudioSession Active Foreground Inactive AVAudioSessionDelegate Background Running Not running http://pardel.net
  53. SkillsMatter - August 12th 2010 App Life Cycle AVAudioSession Active Foreground Inactive AVAudioSessionDelegate beginInteruption Background Running Suspended Not running http://pardel.net
  54. SkillsMatter - August 12th 2010 App Life Cycle AVAudioSession Active Foreground Inactive AVAudioSessionDelegate beginInteruption Background Running Suspended Not running http://pardel.net
  55. SkillsMatter - August 12th 2010 App Life Cycle AVAudioSession Active Foreground endInteruption Inactive AVAudioSessionDelegate beginInteruption Background Running Running Suspended Not running http://pardel.net
  56. SkillsMatter - August 12th 2010 App Life Cycle AVAudioSession Active Foreground Inactive AVAudioSessionDelegate beginInteruption endInterruptionWithFlags: Background Running Running Suspended Not running http://pardel.net
  57. SkillsMatter - August 12th 2010 Background Location Services Turn by turn directions Location tracking ✦ Significant location changing ✦ Region monitoring (iPhone4 only) http://pardel.net
  58. SkillsMatter - August 12th 2010 Turn by turn directions locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; [locationManager startUpdatingLocation]; http://pardel.net
  59. SkillsMatter - August 12th 2010 Turn by turn directions locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; [locationManager startUpdatingLocation]; extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation; extern const CLLocationAccuracy kCLLocationAccuracyBest; extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters; extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters; extern const CLLocationAccuracy kCLLocationAccuracyKilometer; extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers; http://pardel.net
  60. SkillsMatter - August 12th 2010 Turn by turn directions locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; [locationManager startUpdatingLocation]; extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation; extern const CLLocationAccuracy kCLLocationAccuracyBest; extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters; extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters; extern const CLLocationAccuracy kCLLocationAccuracyKilometer; extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers; kCLLocationAccuracyBestForNavigation Use the highest possible accuracy and combine it with additional sensor data. This level of accuracy is intended for use in navigation applications that require precise position information at all times and are intended to be used only while the device is plugged in. http://pardel.net
  61. SkillsMatter - August 12th 2010 Location tracking a) Significant location changing http://pardel.net
  62. SkillsMatter - August 12th 2010 Location tracking a) Significant location changing http://pardel.net
  63. SkillsMatter - August 12th 2010 Location tracking a) Significant location changing http://pardel.net
  64. SkillsMatter - August 12th 2010 Location tracking a) Significant location changing http://pardel.net
  65. SkillsMatter - August 12th 2010 Location tracking a) Significant location changing locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [locationManager startMonitoringSignificantLocationChanges]; http://pardel.net
  66. SkillsMatter - August 12th 2010 Location tracking a) Significant location changing locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [locationManager startMonitoringSignificantLocationChanges]; - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation http://pardel.net
  67. SkillsMatter - August 12th 2010 Location tracking b) Region monitoring (iPhone4 only) http://pardel.net
  68. SkillsMatter - August 12th 2010 Location tracking b) Region monitoring (iPhone4 only) http://pardel.net
  69. SkillsMatter - August 12th 2010 Location tracking b) Region monitoring (iPhone4 only) - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation http://pardel.net
  70. SkillsMatter - August 12th 2010 Location tracking b) Region monitoring (iPhone4 only) locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters; CLLocationCoordinate2D regionCenterCoordinate; tempCoordinate.latitude = 51.5245; tempCoordinate.longitude = -0.0995; CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:regionCenterCoordinate radius:10.0 identifier:@"Skills Matter"]; [locationManager startMonitoringForRegion:region desiredAccuracy:kCLLocationAccuracyNearestTenMeters]; - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation http://pardel.net
  71. SkillsMatter - August 12th 2010 Multitasking http://pardel.net
  72. SkillsMatter - August 12th 2010 Multitasking Fast app switching Task Completion Background Audio Navigation & Location tracking VoIP http://pardel.net
  73. SkillsMatter - August 12th 2010 2. Local Notifications http://pardel.net
  74. SkillsMatter - August 12th 2010 Local notifications // check if the local notification class exists Class cls = NSClassFromString(@"UILocalNotification"); if (cls != nil) { // check if the device is supporting multitasking UIDevice* device = [UIDevice currentDevice]; if ([device respondsToSelector:@selector(isMultitaskingSupported)]) { UIApplication* app = [UIApplication sharedApplication]; UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease]; if (alarm) { alarm.fireDate = [NSDate date]; alarm.timeZone = [NSTimeZone defaultTimeZone]; alarm.repeatInterval = 0; alarm.soundName = @"alert.caf"; alarm.alertBody = @"Ha ha"; [app scheduleLocalNotification:alarm]; } } } http://pardel.net
  75. SkillsMatter - August 12th 2010 Local notifications // check if the local notification class exists Class cls = NSClassFromString(@"UILocalNotification"); if (cls != nil) { // check if the device is supporting multitasking UIDevice* device = [UIDevice currentDevice]; if ([device respondsToSelector:@selector(isMultitaskingSupported)]) { UIApplication* app = [UIApplication sharedApplication]; UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease]; if (alarm) { alarm.fireDate = [NSDate date]; alarm.timeZone = [NSTimeZone defaultTimeZone]; alarm.repeatInterval = 0; alarm.soundName = @"alert.caf"; alarm.alertBody = @"Ha ha"; [app scheduleLocalNotification:alarm]; } } } Demo http://pardel.net
  76. SkillsMatter - August 12th 2010 3. iAd http://pardel.net
  77. SkillsMatter - August 12th 2010 iAd Nov 09 - Google acquires AdMob for $750 million in stock Jan 10 - Apple acquires Quattro Wireless for $275 million http://pardel.net
  78. SkillsMatter - August 12th 2010 iAd CPM + CPC = eCPM http://pardel.net
  79. SkillsMatter - August 12th 2010 iAd CPM + CPC = eCPM http://pardel.net
  80. SkillsMatter - August 12th 2010 iAd CPM + CPC = eCPM 60% revenues http://pardel.net
  81. SkillsMatter - August 12th 2010 iAd http://pardel.net
  82. SkillsMatter - August 12th 2010 iAd.framework @property(nonatomic, copy) NSSet *requiredContentSizeIdentifiers; ADBannerView @property (nonatomic, copy) NSString *currentContentSizeIdentifier; @property(nonatomic, readonly) BOOL bannerLoaded; @property(nonatomic, readonly) BOOL bannerViewActionInProgress; - (void)cancelBannerViewAction; @property(nonatomic, assign) id<ADBannerViewDelegate> delegate; http://pardel.net
  83. SkillsMatter - August 12th 2010 iAd.framework @property(nonatomic, copy) NSSet *requiredContentSizeIdentifiers; ADBannerView @property (nonatomic, copy) NSString *currentContentSizeIdentifier; @property(nonatomic, readonly) BOOL bannerLoaded; @property(nonatomic, readonly) BOOL bannerViewActionInProgress; - (void)cancelBannerViewAction; @property(nonatomic, assign) id<ADBannerViewDelegate> delegate; http://pardel.net
  84. SkillsMatter - August 12th 2010 iAd.framework @property(nonatomic, copy) NSSet *requiredContentSizeIdentifiers; ADBannerView @property (nonatomic, copy) NSString *currentContentSizeIdentifier; @property(nonatomic, readonly) BOOL bannerLoaded; @property(nonatomic, readonly) BOOL bannerViewActionInProgress; - (void)cancelBannerViewAction; @property(nonatomic, assign) id<ADBannerViewDelegate> delegate; http://pardel.net
  85. SkillsMatter - August 12th 2010 iAd.framework @property(nonatomic, copy) NSSet *requiredContentSizeIdentifiers; ADBannerView @property (nonatomic, copy) NSString *currentContentSizeIdentifier; @property(nonatomic, readonly) BOOL bannerLoaded; @property(nonatomic, readonly) BOOL bannerViewActionInProgress; - (void)cancelBannerViewAction; @property(nonatomic, assign) id<ADBannerViewDelegate> delegate; ADBannerContentSizeIdentifier320x50 ADBannerContentSizeIdentifier480x32 http://pardel.net
  86. SkillsMatter - August 12th 2010 iAd.framework ADBannerView ADBannerViewDelegate - (void)bannerViewDidLoadAd:(ADBannerView *)banner; - (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave; - (void)bannerViewActionDidFinish:(ADBannerView *)banner; - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error; http://pardel.net
  87. SkillsMatter - August 12th 2010 iAd.framework ADBannerView ADBannerViewDelegate - (void)bannerViewDidLoadAd:(ADBannerView *)banner; - (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave; - (void)bannerViewActionDidFinish:(ADBannerView *)banner; - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error; Demo http://pardel.net
  88. SkillsMatter - August 12th 2010 iAd JS HTML5 + CSS3 ✦ Banner ✦ Main advertising screen http://pardel.net
  89. SkillsMatter - August 12th 2010 4. Game Center http://pardel.net
  90. SkillsMatter - August 12th 2010 Game Center ✦ Beta ✦ Socialgaming network ✦ Leaderboards & Achievements http://pardel.net
  91. SkillsMatter - August 12th 2010 5. New Frameworks & APIs http://pardel.net
  92. SkillsMatter - August 12th 2010 Block Objects http://pardel.net
  93. SkillsMatter - August 12th 2010 Block Objects self.bgTaskId = [app beginBackgroundTaskWithExpirationHandler:^{ [self stopLongTask]; }]; http://pardel.net
  94. SkillsMatter - August 12th 2010 Block Objects self.bgTaskId = [app beginBackgroundTaskWithExpirationHandler:^{ [self stopLongTask]; }]; an object with some code respond to NSObject methods available in C http://pardel.net
  95. SkillsMatter - August 12th 2010 Blocks http://pardel.net
  96. SkillsMatter - August 12th 2010 Blocks returnType (^myBlockName) (argumentType) = ^(argumentType argumentName) { returnType x; ... return x; } http://pardel.net
  97. SkillsMatter - August 12th 2010 Blocks returnType (^myBlockName) (argumentType) = ^(argumentType argumentName) { returnType x; ... return x; } int (^myBlock) (int) = ^(int num) { return num * multiplier; } http://pardel.net
  98. SkillsMatter - August 12th 2010 Blocks returnType (^myBlockName) (argumentType) = ^(argumentType argumentName) { returnType x; ... return x; } int multiplier = 5; int (^myBlock) (int) = ^(int num) { return num * multiplier; } http://pardel.net
  99. SkillsMatter - August 12th 2010 Blocks returnType (^myBlockName) (argumentType) = ^(argumentType argumentName) { returnType x; ... return x; } int multiplier = 5; int (^myBlock) (int) = ^(int num) { return num * multiplier; } myBlock(7); http://pardel.net
  100. SkillsMatter - August 12th 2010 New Frameworks Quick Look Event Kit Core Motion Core Telephony Data Protection http://pardel.net
  101. SkillsMatter - August 12th 2010 Event Kit http://pardel.net
  102. SkillsMatter - August 12th 2010 Event Kit EKEventStore @property(nonatomic, readonly) NSArray *calendars @property(nonatomic, readonly) EKCalendar *defaultCalendarForNewEvents http://pardel.net
  103. SkillsMatter - August 12th 2010 Event Kit EKEventStore @property(nonatomic, readonly) NSArray *calendars @property(nonatomic, readonly) EKCalendar *defaultCalendarForNewEvents EKCalendar http://pardel.net
  104. SkillsMatter - August 12th 2010 Event Kit EKEventStore @property(nonatomic, readonly) NSArray *calendars @property(nonatomic, readonly) EKCalendar *defaultCalendarForNewEvents EKCalendar typedef enum { EKCalendarTypeLocal, EKCalendarTypeCalDAV, EKCalendarTypeExchange, EKCalendarTypeSubscription, EKCalendarTypeBirthday, } EKCalendarType; http://pardel.net
  105. SkillsMatter - August 12th 2010 Event Kit EKEventStore @property(nonatomic, readonly) NSArray *calendars @property(nonatomic, readonly) EKCalendar *defaultCalendarForNewEvents EKCalendar EKEvent typedef enum { EKCalendarTypeLocal, alarms -> EKAlarm EKCalendarTypeCalDAV, organizer, attendees -> EKParticipant EKCalendarTypeExchange, recurrenceRule -> EKRecurrenceRule EKCalendarTypeSubscription, EKCalendarTypeBirthday, } EKCalendarType; http://pardel.net
  106. SkillsMatter - August 12th 2010 New API’s Block related methods - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop)) block Photo Library Access MapKit improvements http://pardel.net
  107. SkillsMatter - August 12th 2010 iPhone & iPad Application Development Course Sep 29th to Oct 1st http://skillsmatter.com/course/os-mobile-server/ iphone-ipad-application-development http://pardel.net
  108. SkillsMatter - August 12th 2010 iPhone & iPad Application Development Course Sep 29th to Oct 1st http://skillsmatter.com/course/os-mobile-server/ iphone-ipad-application-development http://pardel.net
  109. SkillsMatter - August 12th 2010 PROGRAMME Day 1: Introduction to iOS development I Day 3: Advance Features I • The development environment • Touch & Gestures • Objective C crash course • Camera & Photo Library access • Foundation framework • Core Location • Memory management • Event Kit • The iPhone Dev Center • Core Motion • Web Services (inc. XML & JSON Parsers) • Threading • Localisation Day 2: Introduction to iOS development II Day 4: Advance Features II • Design patterns (MVC, Delegation, etc.) • Documents Sharing • Table views, Navigation, Tab bar • Multitasking • Data Persistence (Preferences, SQLite & • Local notifications Code Data) • iPad Specific topics • Animation • Testing and Optimisation (Instruments) • Core Graphics • Submitting your application to the App Store http://pardel.net
  110. SkillsMatter - August 12th 2010 Thank you http://pardel.net http://twitter.com/pardel http://pardel.net

×