ClaudeExpo2025/12/10 16:30

How to implement iOS widgets in Expo apps

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

claudejamodel: claude-sonnet-4-20250514

ExpoアプリでiOSウィジェットを実装する方法

Key Points

  • ExpoでネイティブSwiftウィジェットを実装
  • ウィジェット中心のアプリ設計アプローチ
  • @bacons/apple-targetsプラグインの活用

Summary

ExpoとSwiftを使用してiOSウィジェットを実装する方法について、アファメーションアプリ「Glow」の開発事例を通じて解説。ウィジェットをアプリの中核機能として活用し、ロック画面やホーム画面でユーザーに直接価値を提供するアプローチを紹介。

Key Points

  • ウィジェット中心の設計: アプリを開く必要がなく、ロック画面・ホーム画面で直接機能を提供
  • 技術的課題の解決: Expoワークフローを維持しながらネイティブSwiftウィジェットを実装
  • @bacons/apple-targetsの活用: Expo Config Pluginを使用してネイティブAppleターゲットを生成
  • データ共有: React NativeとSwiftウィジェット間でのデータ連携を実現
  • 開発効率の維持: 高速イテレーション、EAS Build、手動Xcodeプロジェクト管理不要を継続

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

claudejamodel: claude-sonnet-4-20250514

ExpoアプリでiOSウィジェットを実装する方法

ExpoアプリでiOSウィジェットを実装する方法

Users • React Native • Development • December 10, 2025 • 7分で読める

Arthur Spalanzani ゲスト著者

GlowがExpoとSwiftウィジェットを使用して、React Nativeとデータを共有し、iOSのホーム画面に表示されるウィジェット中心のアファメーションアプリを構築する方法を学びましょう。

この記事は、モバイル開発に情熱を注ぐインディーアプリ開発者兼工学系学生のArthur Spalanzaniによるゲスト投稿です。


昨年の冬、私はフランスからノルウェーに移住しました。12月の20時間の暗闇は、予想していたものとは全く違いました。見つけられる限りのウェルネスアプリをダウンロードしましたが、どれも努力が必要でした:ジャーナリングのプロンプト、気分の追跡、瞑想セッション。私にはもっとシンプルなものが必要でした。

そこでGlowを構築しました。これは、ウィジェットがアプリそのものであるアファメーションアプリです。コンパニオン機能でも、プレビューでもありません。実際の製品がロック画面とホーム画面に存在するのです。

私は2019年からExpoでアプリを構築してきました。一度学んだら、振り返ることはありませんでした。しかし、このプロジェクトは私を新しい領域に押し進めました:ネイティブSwiftウィジェットです。

コア体験としてのウィジェット

ほとんどのウェルネスアプリが失敗する理由は、アプリを開くことを覚えておく必要があるからです。Glowはこれを逆転させます:アファメーションがあなたのところにやってくるのです。

ロック画面で時間を確認するとき、そこにあなたのアファメーションがあります。ホーム画面間をスワイプするとき、そこに再び現れます。摩擦ゼロ、アンビエントな存在感。

ロック画面ウィジェットは、無意識にスマートフォンをチェックする瞬間にあなたを捉えます。ホーム画面ウィジェットは、一日を通して意図的なタッチポイントを提供します。開くアプリはなく、必要なときに言葉があるだけです。

技術的な課題:ウィジェットをネイティブに感じさせる

私は何年もExpoでコーディングしてきましたが、ウィジェットは新しい領域でした。ウィジェットにはネイティブSwiftコードが必要です(React NativeやJavaScriptを実行できません)。それでも、Expoワークフローのすべての利点を維持したかったのです:高速な反復、EAS Build、手動でのXcodeプロジェクト管理の不要。

@bacons/apple-targetsの登場です。これは、ウィジェットなどのネイティブAppleターゲットを生成しながら、/iosディレクトリの外で管理可能に保つ実験的なExpo Config Pluginです。