kitasuke@trippiece
Ref. http://cnet4.cbsistatic.com/hub/i/r/2014/09/09/1d101da2-7abd-40aa-b0c9- 
94e4f9b27b95/thumbnail/770x433/c2705e97ac76cc74f2c19abc83929de9/apple-event- 
apple-watch-5446.jpg 
Ref. http://cdn.macrumors.com/article-new/ 
2014/09/applewatch2.jpg
Today 
Share 
←今日はこれ 
Action 
Photo Editing 
Storage Provider 
Custom Keyboard
SNSへの投稿 
コンテンツの共有
e.g. Twitter e.g. Pocket
1. Share Extension用のターゲット追加 
2. App Groupsの設定 
3. NSExtensionAttributesの設定 
4. Containing app側での認証・バリデー 
ション・アップロード処理の実装 
5. Host app側での更新処理実装
e.g. Capabilities
e.g. Info.plist
e.g. SLComposeServiceViewController
 ローカル→ NSUserDefaults 
 サーバー→ NSURLSessionでアップロード
1. NSExtensionContextのinputItemsからNSExtensionItemを取得 
2. NSExtensionItemのattachmentsから各NSItemProviderを取得 
3. loadItemForTypeIdentifier: options: completionHandler: で各コ 
ンテンツを取得
Pocketの辞書版を作りたい 
Safariで英語の記事を読んでいて、分 
からない単語があれば保存して後で 
調べる 
→ Safariで選択中のテキストを 
Share Extensionで保存する
1. Safari上での情報を取得したい(そもそも可能?) 
2. テキストだけ共有したい 
(NSExtensionActivationSupportsImageWithMaxCo 
untをゼロにしても駄目だった) 
←勝手に表示される 
この画像が不要
 Extensionタスク開始時に実行されるrun関数 
 Extensionタスク終了時に実行されるfinalize関数 
Info.plistのNSExtensionAttributes以下の 
NSExtensionJavaScriptPreprocessingFileにファイル名を指定する 
* JavaScriptファイルを使用すると、 
kUTTypePropertyListタイプのNSItemProviderがセット 
される
1. JavaScriptファイルを 
NSExtensionJavaScriptPreprocessingFileに設定 
2. Safariが選択中の文字列とサイトURLを取得する処 
理をJavaScriptで実装 
3. 選択された文字列をテキストビューに表示 
4. Postボタンを押すと、選択された文字列とURLを 
NSUserDefaultsに保存 
5. Host appでNSUserDefaultsからコンテンツ取得
デモ
 情報量が少ないが思ったより簡単 
 ログ見ながら手探りで進める 
Apple Watch用アプリを開発 
出来ると思って、わくわくし 
ながら開発するのが大事
Share Extension@pixiv

Share Extension@pixiv