2018年2月15日木曜日

使ってみた(App Extension編) その3

「使ってみた(App Extension編) その2」からのつづきです。


前回はApp Extension内でコンテンツが取得できたところまででした。

App Extensionで取得したコンテンツを収容アプリケーションに受け渡すのには、App GroupでUserDefaultを使用します。データも少量ですし、セキュリティ的にもさほど重要ではないという前提です。

AppExtensionでクリティカルなデータを受け渡すケースがあるかどうかはわかりませんが、仮にそういった場合はKeychain Sharingを使うことになりそうです。すみません、使ったことがないので、よくわかりません。

いずれにしても、だめですよ、UserDefaultで重要なデータを扱っちゃ。


App Groupは複数のアプリでデータを共有する仕組みです。「使ってみた(App Extension編) その1」で書いたとおり、App Extensionと収容アプリケーションは独立しています(Bundle IDも違いますしね)。そのため、それぞれ別のアプリであるとして、App Groupを使用してデータを受け渡すわけです。


まず、収容アプリケーション側で、App Groupを設定します。

Targetで収容アプリケーションを指定して、CapabilitiesのApp GroupsのスイッチをONにします。



開発者IDで紐付けられたApp Group一覧が表示されますので、「+」を押して、新しいAppGroup IDを登録します。IDは自由に決められそうですが、group.で始まるのがお約束のようです。このAppGroup IDは自動的にApple Developerに登録されますので、ユニークである必要があり、Bundle IDを使うのが良いかもしれません。

group.+Bundle IDとか


同様に、TargetでApp Extensionを指定して、CapabilitiesのApp GroupsのスイッチをONにします。上で追加したAppGroup IDが一覧に追加されていますので、チェックをいれます。



これで、収容アプリケーションとApp Extensionが、"group.jp.blowbend.ios.test.AwesomeApp"というAppGroup IDで、データの共有をすることができようになりました。


あとはデータをUserdefault経由で受け渡すだけですが、今回はここまで。


使ってみた(App Extension編) その4」に続きます。


♪♪♪


こちらもどうぞ。
使ってみた(App Extension編) その1
使ってみた(App Extension編) その2
使ってみた(App Extension編) その4
使ってみた(App Extension編) その5
使ってみた(App Extension編) おまけ

iOS 11 Programming
  • 著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川克己,所 友太,永野 哲久,加藤 寛人,
  • 発行日:2017年11月16日
  • 対応フォーマット:製本版,PDF
  • PEAKSで購入する