Architecture
https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgramming
Guide/ConfiguringYourXcodeProject.html#//apple_ref/doc/uid/TP40014969-CH2-SW1
● NSUserDefaults
● Shared group container
● Watchkit special treat+ (void) openParentApplication:reply:- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void
(^)(NSDictionary *replyInfo))reply
But, reply info must be serializable as plist data.
Communicate with iphone app
● NSUserDefaults
● Shared group container
● Watchkit special treat+ (void) openParentApplication:reply:- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void
(^)(NSDictionary *replyInfo))reply
But, reply info must be serializable as plist data.
Communicate with iphone app
● NSUserDefaults
● Shared group container
● Watchkit special treat+ (void) openParentApplication:reply:- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void
(^)(NSDictionary *replyInfo))reply
But, reply info must be serializable as plist data.
Communicate with iphone app
● Avoid UIImage.
● Be cautious when calling non WatchKit
framework methods
● addCachedImageWithData:name:
● Profile watchkit extension
Strictly limited memory
● Avoid UIImage.
● Be cautious when calling non WatchKit
framework methods
● addCachedImageWithData:name:
● Profile watchkit extension
Strictly limited memory
● Avoid UIImage.
● Be cautious when calling non WatchKit
framework methods
● addCachedImageWithData:name:
● Profile watchkit extension
Strictly limited memory
● Avoid UIImage.
● Be cautious when calling non WatchKit
framework methods
● addCachedImageWithData:name:
● Profile watchkit extension
Strictly limited memory
Known issues
CFBundleName in watchkit extension target and watchkit
app is ignored.
Display name for your watchkit app is CFBundleName of
your main app
add background task that ends 2 seconds later after reply
Known issues
- (void)application:(UIApplication *)application
handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary
*))reply
{
UIBackgroundTaskIdentifier watchBackgroundTask;
watchBackgroundTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:watchBackgroundTask];
}];
/**
Handle request
*/
reply(something);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)),
dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] endBackgroundTask:watchBackgroundTask];
});
}
Where we startedApple Watch Human Interface Guidelines
Glances, notifications, app views
PSDs & Sketch templates
Interactions are quick
Shouldn’t replace app
Flurry Analytics –
Apple Watch Support
PRESENTED BY
Brad Jones | Product Management, Flurry Analytics
Flurry Analytics – Extensions
47Yahoo Confidential & Proprietary
Flurry Reporting
Compare Active Users
between Watch and App
Events for Extensions
› Count
› Unique Users
› Unique Users as % of
App Active Users
Funnels across App and
Extensions
Flurry Explorer
Segmentation
Funnels
Top Related