バッテリー状態表示アプリを2020年にiOS14から追加されたWidget機能にに対応した際に参考にしたサイトについて参照回数とコメントをつけて紹介する。
参照回数はSafariのタブブラウザで開いたままになっていたページを1カウントとしている。
1.【iOS14】Widget(WidgetKit) まとめ - Qiita
日本語でWidgetKitをまとめたものでWWDC2020での発表後いち早く公開された投稿。参照回数6回と他に比べ多めなのはWidgetKitについてさらに調べるためにキーワードをピックアップするために使用したため。
2. Introducing iOS 14 WidgetKit With SwiftUI | by Anupam Chugh | Better Programming | Medium
Mediumに投稿されたWidgetKitの記事。サンプルソースがあるので動作確認が可能だった。
3. swiftui - Mismatch between widget size and @Environment value in TimelineProvider - Stack Overflow
StackOverflowに記述された記事。WidgetKitと通常のSwiftUIでは仕様が異なる点がありObservedObjectを使ったUI更新(@Environment, @State)が期待できない。この記事を見つけるまで間違った実装でリリースしてしまった。
4. Designing widgets for iOS, macOS and iPadOS — the ultimate guide | by Vedant Jain | UX Collective
Widgetのレイアウトについての記事。ウィジットのコーナーへの意識、スペース取り方など参照なる点が多い。
5. アルを iOS 14 のウィジェットに対応した際いろいろハマったので共有します|koogawa|note
WWDC2020が発表されたから4ヶ月後の投稿。iOS14公開後にウィジット対応したアプリがリリースされていくなかノウハウが共有された始めた時期に出た充実した内容。ObservedObjectのStackOverflowの記事を知ったのもこちら投稿からだった。
6.[iOS 12]Siri Shortcutsの最小実装 – Intent編 | Money Forward Engineers' Blog
Widgetの設定を実装するために必要となったIntentについての調査の際に見つけた投稿。投稿内容としては重厚さはないように見受けられるが、Intentについてはボイラーテンプレートコードを減らすためIntent用定義ファイルでコードを自動生成している。
Intentを理解するにはキーワードと開発環境(Xcode)の操作法をおぼえることが近道といえる。
7.SiriKit - 日本語ドキュメント - Apple Developer
Widgetの設定画面を追加するためのSiri Intentが必要んことが判明した際の調べたApple の公式ドキュメント。Appleは当時Siri の普及に熱心だったのかドキュメントが日本翻訳されていた。
8-9.TimelineProviderContext.EnvironmentVariants | Apple Developer Documentation
WidgetKitでの時間経過で内容更新するための環境変数についてのドキュメント、TimelineProviderContext | Apple Developer DocumentationもアプリからWidgetにデータを渡すコンテキストについての説明
10-11.Making a Configurable Widget | Apple Developer Documentation
Widget設定の実装方法についてのApple公式情報。Apple公式ドキュメントではIntent前提で内容を話すので理解についてはIntentの情報を探す必要があった。ウィジット設定のドキュメントはIntentConfiguration | Apple Developer Documentation がある。
12. [WWDC18][iOS 12] Intentsを使用したSiri Shortcutsの実装方法 #WWDC18 | Developers.IO
10-11を理解するための記事。Intentについての基本キーワードを抑えるのに役立った。Developers.ISはiOS SDKの記事を多く投稿しているがiOSアプリ開発ではメインストリームとは言い難いIntentまで網羅しているサイトは貴重だと言える。
参考資料
本BlogでもWidgetKit、Intentについていくつか記事があるので参考にして欲しい。
- Custom Intent トラブルシューティング(Siri, Siri Shortcut,WidgetConfiguration) - iOS App | Irimasu Densan Planning - いります電算企画
- ウィジット上にダイアログ設定を組み込む - ステップ解説付き(Custom Intent) - iOS Application | Irimasu Densan Planning - いります電算企画
- WidgetKitではテキスト表示用フォントサイズに制約あり(iOS14.2現在) - iOSアプリ開発 | Irimasu Densan Planning - いります電算企画
- Custom Intent を理解するキーワードIntent、User Activity、Donate - Siri Intent Extension | Irimasu Densan Planning - いります電算企画
- Apple Widget考古学 - App Extension の技術Stack | Irimasu Densan Planning - いります電算企画
- アプリアップデートを申請中にITMS-90626が表示された際の対処メモ - Siri Intent Definition | Irimasu Densan Planning - いります電算企画