Swiftサラリーマン当サイトはリンクフリーです。#4(Today)前回の記事はShareを説明していましたが、今回はTodayの実装方法を解説してみます。AppExtensionのShareでdidSelectPostの箇所のソース、上記のエラーが解決できない箇所まで進んでいました。6まずは作成してみます。Shareと同じように、New->TargetからAppExtensionのTodayを選択します。プログラム部分MainInterface.storyboard:ビュー部分Info.plist:設定部分TodayViewController.swiftの中身はこんな感じです。このあたりでイベントを取得設定できると思われます。}completionHandlerで取得できるNCUpdateResultには以下の3つのパターンがあります。失敗した時場合NoData:ウェジェット更新が必要ない場合NewData:ウェジェット更新が必要な場合RawData:生データ参考:NCWidgetProvidingさて、プログラム側のイベントの取得はわかりましたが、どうやってビュー繋がるのかがイマイチわかりませんので、調査を続けます。MainInterface.storyboardの中身は以下のような感じになっています。サンプルを見本にプログラムからビューへ表示するコードを実行してみるView部分とつなげる為に、IBOutletを登録します。}}上記IBOutletを追加した状態だとStoryBoardのOutletにnameLabelが追加されますので、以下のようにnameLabelとHelloWorldを関連づけてあげます。この状態で実行すると、下のようにswift-salarymanが表示されました!※わかりずらいですが、swift-salarymanの上に表示されている[today]が追加時に登録したToday拡張の名前になりますので可変です。様々なことができそうです。検証(画像は追加できるのか)読み込み部分で以下画像を追加して実行してみます。nameを変更すると、Widgetの名前を変更できるようです。画面左のスペースを削除する方法デフォルトではTodayの画面左にはマージンスペースが20pxほど追加されていますが、以下の関数をTodayViewControllerに追加することで回避することができます。Todayガジェットからホストアプリを立ち上げる場合TodayガジェットからはUIApplicationのopenURLが使えないのですがextensionContextからホストアプリを起動することが可能です。TodayガジェットからdemoAppアプリ(ホスト)を起動しています。URLスキームの入力を追加することで関連づけます。次は[Actions]を説明しています。SDKを試してみる(ログイン)さて、前回記事でSDKをダウンロードした状態ですので、プロジェクトに追加してみましょう。SDKがインストールされたDirectoryへ移動します。それだけをプロジェクトにドラッグしてみましょう。アプリから電話をかけるObjective-Cではサンプルがありましたが日本語では無かったので共有です!SwiftData+SqliteのDBファイル保存+Libraryフォルダから読込さて、私の目標は事前に作成したSqliteのDBファイルをSwiftDataで読み込むことですので、その一連の作業を以下説明してまいります。