ExpoアプリでiOSウィジェットを実装する方法
Key Points
- ウィジェットが主軸
- @bacons/apple-targetsを利用
- EAS Buildで運用
Summary
この記事は、Glowというウィジェット中心のアプリ事例を通じて、Expoワークフローを維持したままネイティブSwiftウィジェットを導入する実践的な手順を示します。ウィジェットはReact Native/JavaScriptを直接実行できないため、UIや更新ロジックはネイティブ側で実装する必要がありますが、@bacons/apple-targets のようなExpo Config Pluginを使えば/iosディレクトリを直接編集せずにネイティブターゲットを生成でき、EAS Buildでのビルド運用が可能です。
Key Points
- ウィジェットはSwiftで実装する(React Nativeコードはウィジェット内で直接実行不可)。
- ネイティブとReact Native間のデータ共有を設計する(例: App Groups / UserDefaults / Intents を検討)。
- @bacons/apple-targets等のExpo Config Pluginでネイティブターゲットを生成し、/iosの手動管理を最小化する。
- EAS Buildを使ってCI/CDを維持し、Xcodeプロジェクトの手動管理を避ける。
- UXは“widget-first”を目指し、ホーム画面/ロック画面での触れやすさを重視する。