Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Why we open-sourced a baby health app, and what the license carve-outs are

2026年09月21日に「Dev.to」が公開したITニュース「Why we open-sourced a baby health app, and what the license carve-outs are」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

赤ちゃん健康管理アプリ「Enfold」が、プライバシーと医療情報の正確性確保のためオープンソース化された。広告・トラッカーなしで、データは端末外に出ない設計。ライセンスはAGPL-3.0-or-laterで、フォーク版をアプリストアで公開する際は名称変更が必要。FlutterやFastAPIで開発。

ITニュース解説

赤ちゃん健康管理アプリ「Enfold」は、親になった開発者自身が市場に理想的なアプリが見つからなかったことから誕生した。既存の育児アプリには、広告表示や定期購読の強制、安全に関する情報が有料の壁の向こうにあったり、プライバシーへの配慮が不十分であったりする問題があった。そこで、広告やサブスクリプションがなく、片手で素早く操作でき、夜間でも静かに使える上に、提供される情報が信頼できるアプリとしてEnfoldが開発された。そして最近、このアプリの全てがオープンソースとして公開された。

このアプリがオープンソース化された主な理由は、プライバシー保護と医療情報の信頼性を保証するためである。一般的なアプリが「プライバシーを真剣に扱っている」と主張しても、それを検証する手段は少ない。しかし、Enfoldはコードを公開することで、その主張を実際に確認できる仕組みを提供している。具体的には、アプリのコードを調べれば、広告表示用のSDKやユーザー行動を追跡する解析ツールが一切含まれていないことがわかる。また、アカウントなしで利用する場合、データがスマートフォンから外部に出ることは決してない。アカウントを作成して同期を行う場合でも、データはHTTPS通信で安全に暗号化され、利用者が自身で運用することも可能な小さなバックエンドシステムに送られる。このように、オープンソースはプライバシーに関する透明性を高める有効な手段となる。

さらに、オープンソースは医療情報の正確性を担保する上でも重要である。Enfoldの「学習カード」と呼ばれる情報コンテンツは、一つ一つがJSONファイルとして管理され、必ず情報源が明記されている。情報源なしでカードが公開されようとすると、単体テストが失敗し、アプリのビルドができない仕組みになっている。これは、Appleのアプリ審査基準の一つである「医療コンテンツには引用元が必要」というルールによって、製品がさらに改善された結果でもある。コードとコンテンツが公開されていることで、医療専門家もその内容や情報源を検証し、信頼性を確認することが可能となる。

Enfoldは様々な技術を組み合わせて構築されている。ユーザーが直接操作するアプリ部分(フロントエンド)は、Googleが開発した「Flutter」というフレームワークで作成されており、一つのコードでiOSとAndroidの両方に対応している。データの管理には「Riverpod」や「go_router」が使われ、オフライン環境でも動作するように「Drift (SQLite)」という技術でデータをデバイス内に保存している。データを同期したり、ユーザー認証やパートナー招待、プッシュ通知といった機能を提供するバックエンドシステムは、Python製の高速なWebフレームワーク「FastAPI」と、データ永続化のための「Postgres」、高速なデータ処理のための「Redis」で構成されている。これらのシステム全体は、「Caddy」というWebサーバーと「Docker Compose」というツールを使って簡単に構築・運用できるように設計されており、開発の効率化と品質向上のために208個ものテストコードが書かれ、GitHub ActionsやDependabotといった自動化ツールが利用されている。

このプロジェクトのライセンス設定は慎重に行われた部分である。コード全体には「AGPL-3.0-or-later」というライセンスが適用されている。これは非常に強力な「コピーレフト」ライセンスの一つで、Enfoldのコードを改変してWebサービスとして公開する場合、その改変したコードも公開しなければならないという「ネットワーク条項」が含まれている。これは、プロジェクトの成果を独占させないための重要な仕組みである。 しかし、いくつかの特例(carve-outs)も設けられている。まず、「App Store規約」として、Enfoldのコードをフォーク(派生)させてアプリストアで公開する場合、混乱を避けるためにアプリの名前やブランド、イラストを必ず変更する必要がある。親が間違ったアプリをインストールするのを防ぐためだ。次に、学習カードなどの医療情報コンテンツには「CC BY-NC-ND 4.0」というクリエイティブ・コモンズ・ライセンスが適用されている。これは、作者のクレジット表示を条件に非営利目的での利用を許し、かつ内容の改変は禁止するというものである。医療情報は正確性が重要であるため、勝手に改変されることを防ぐ意図がある。翻訳を行う場合も、臨床医が関与する形での共同作業を推奨している。最後に、アプリの名称、ロゴ、アイコン、そして特定のイラストといった「ブランド」に関する要素はライセンス対象外となっており、Enfoldの独自性が保たれている。 プロジェクトへの貢献者の扱いとしては、「DCO(Developer Certificate of Origin)」を採用し、従来の「CLA(Contributor License Agreement)」は不要としている。これにより、貢献者は自分のコードの著作権を引き続き保持できる。

Enfoldはまだ開発途中の部分も多い。例えば、各学習カードについて医師による最終的な承認プロセスが進行中であり、未承認のカードにはアプリ内で「Pending physician review(医師によるレビュー待ち)」と表示される。言語対応も現在は英語のみで、次にルーマニア語が予定されており、他の言語はコントリビューターの協力に期待されている。また、現在のUIでは1つのデバイスで1人の子供の情報しか管理できないが、バックエンドシステムは既に複数人に対応している。Google Playでのアプリ公開も現在審査中であり、App Store版は既に公開されている。

もしこのプロジェクトに貢献したいと考えるなら、最も求められているのは翻訳作業である。その次にバグの修正、そして新しい機能の追加が挙げられる。貢献のための手順は「CONTRIBUTING.md」というファイルに詳しく記載されており、バックエンドとアプリの両方をローカル環境で簡単に動かすことができる。EnfoldのウェブサイトやGitHubのリポジトリにアクセスすることで、詳細な情報を得たり、App Storeからアプリをダウンロードして利用したりできる。このアプリは無料で提供されており、今後も無料で利用できる予定である。

関連コンテンツ

関連IT用語

関連ITニュース