Today Extension
本日は、iOS8から追加されたToday Extensionを使ったアプリを作ってみたいと思います。
さて、早速説明していきましょう。
Today Extensionをプロジェクトに追加
まず、XcodeでSingle View Applicationを用いてプロジェクトを作成してください。
これは通常のプロジェクトを作る過程と何ら変わりません(いつもの手順です。)
次にApp Extensionを追加しなければなりません。
手順は下記です。
- Show the Project navigator > General > + ボタンを選択
- iOS > Application Extension > Today Extensionを選択
- 名前をつけて作成(ここではTodayExtensionActivityとします。)
ここまで終われば、Runでシミュレータ上で表示してみてください。
通知センターを表示すると、Hello Worldと表示されることがわかるはずです。
余白の削除
しかし、表示が不格好ですね…。
これはデフォルトで余白が設定されているためです。
文字を表示するだけなら、余白は不要なので、余白を消してみましょう。
これはソースを追加することで実現できます。
先ほど追加したTodayExtensionActivityのTodayExtensionViewController.mを編集します。
下記のソースをTodayExtensionViewController.mファイルに追加しましょう。
1 2 3 4 5 |
|
これにより、下記のように表示が変わることが確認できます。
高さを調整
横方向の余白がなくなったので、違和感がなくなったものの、高さはもう少し広くしたいということがあるかもしれません。
その場合は、ソースで高さを指定しましょう。
TodayExtensionViewController.mのviewDidLoadメソッド内で高さを指定します。
1 2 3 4 5 6 |
|
これにより、下記のような表示になると思います。
通知センターに表示されたWidgetタップでアプリを起動
せっかく通知センターに表示したのですから、アクションを追加したいですよね?
ここでは、タップでアプリを起動させてみたいと思います。
まずは、URLスキームを設定しましょう。
- Show the Project navigator > TARGETS > info > URL Typesを選択
- identifier, URL schemesを設定
次に、TodayExtension側のStoryboardを開きましょう。
ViewにTap Gesture Recognizerをドラッグ&ドロップで追加しましょう。
Today View ControllerにTap Gesture Recognizerの項目が追加されるので、それを右クリックしてSent Actionsを設定しましょう。
今回は、Sent Actionとして、TodayViewController.mにtapActionメソッドを追加しました。
1 2 3 4 |
|
ここでは、URLスキームとしてtextensionと設定したため、上記のソースのように指定できます。
上記設定後にシミュレータを起動して、通知センターのWidgetをタップしてみてください。
アプリが起動されるはずです。
いかがだったでしょうか?
少しずつ、Today Extension機能を実装したアプリが増えてきています。
これは開発者にとってもユーザにとっても非常に便利な機能だと思いますので、これから自作アプリには積極的に実装していきたいと思います。
ということで本日はここまで。