能登 要

札幌在住のiOSアプリ開発者。SwiftUI により分割されたデバイス間を縦横にやりとりできる考え方に転換しています。

iOSアプリ開発者。2009年のiPhoneアプリ開発開始時期から活動。開発言語のアップデートの中でSwiftUIおよび周辺技術に着目中。

自作アプリへのWidgetKit対応時に参考にしたWebサイト紹介(参照回数順) - SwiftUI

バッテリー状態表示アプリを2020年にiOS14から追加されたWidget機能にに対応した際に参考にしたサイトについて参照回数とコメントをつけて紹介する。

参照回数はSafariのタブブラウザで開いたままになっていたページを1カウントとしている。

サイト 参照回数
【iOS14】Widget(WidgetKit) まとめ - Qiita 6
Introducing iOS 14 WidgetKit With SwiftUI | by Anupam Chugh | Better Programming | Medium 2
swiftui - Mismatch between widget size and @Environment value in TimelineProvider - Stack Overflow 1
Designing widgets for iOS, macOS and iPadOS — the ultimate guide | by Vedant Jain | UX Collective 1
アルを iOS 14 のウィジェットに対応した際いろいろハマったので共有します|koogawa|note 1
[iOS 12]Siri Shortcutsの最小実装 – Intent編 | Money Forward Engineers' Blog 1
SiriKit - 日本語ドキュメント - Apple Developer 1
TimelineProviderContext.EnvironmentVariants | Apple Developer Documentation 1
TimelineProviderContext | Apple Developer Documentation 1
Making a Configurable Widget | Apple Developer Documentation 1
IntentConfiguration | Apple Developer Documentation 1
[WWDC18][iOS 12] Intentsを使用したSiri Shortcutsの実装方法 #WWDC18 | Developers.IO 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についていくつか記事があるので参考にして欲しい。