Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Share Extension@pixiv

1,246 views

Published on

Share Extension@pixiv

Published in: Engineering
  • Be the first to comment

Share Extension@pixiv

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

×