食事・体重記録アプリ『Reppal』を開発しています
食事や体重を記録し、AIのアドバイスを受けられる健康管理アプリ『Reppal』について、開発を始めた理由、主な機能、使用技術、現在の開発状況を紹介します。現在、Android版のクローズドテスト参加者を募集しています。
現在、食事や体重を記録し、日々の健康管理を支援するモバイルアプリ「Reppal」を友人と2人で開発しています。
毎日の食事を記録するだけでなく、カロリーや栄養素の集計、体重の変化を確認できるグラフ、記録内容を参考にしたAIのアドバイスなどを、一つのアプリで利用できるようにすることを目指しています。
この記事では、Reppalを作ろうと思った理由、現在実装している機能、使用している技術、開発中に難しかったことをご紹介します。
現在、Android版の正式公開に向けて、クローズドテストにご協力いただける方も募集しています。
Reppalとは
Reppalは、毎日の食事と体重を記録し、自分の生活を振り返るための健康管理アプリです。
食事管理を続けようとしても、入力項目が多かったり、記録した数字をどのように受け止めればよいか分からなかったりすると、次第に使わなくなってしまいます。
そこでReppalでは、記録に必要な操作をできるだけ分かりやすくしながら、蓄積したデータをグラフやAIのアドバイスとして振り返れる構成を考えました。
単に記録を保存するだけではなく、「昨日はタンパク質が少なかったので、今日は少し意識してみよう」といった次の行動につなげられるアプリを目指しています。
Reppalを作ろうと思った理由
開発を始めたきっかけは、食事、体重、栄養状態を一つの場所で記録し、日々の変化を分かりやすく確認したいと考えたことでした。
健康管理アプリには多くの機能がありますが、自分が本当に使いたい機能や、見たい情報が一つにまとまっているとは限りません。自分で使いながら改善できるアプリを作れば、個人開発の題材としても、実生活で使用する道具としても役立つと考えました。
また、これまで学んできたモバイルアプリ開発、データベース、AI連携、テストなどを、一つのサービスとして形にしたいという思いもありました。
企画から設計、実装、テスト、公開までを自分で経験することで、画面を作るだけでは分からない課題にも数多く出会えています。
主な機能
Reppalでは、現在次のような機能を実装しています。
食事の記録
朝食、昼食、夕食など、日々の食事内容を記録できます。
食品名と量を入力し、食べたものを後から確認できるようにしています。グラムだけでなく、「ご飯1杯」「卵1個」「納豆1パック」といった、普段の生活で使いやすい単位でも入力できる仕組みを整えています。
カロリーと栄養素の集計
記録した食事をもとに、カロリーや栄養素を集計します。
一日の合計値を表示することで、目標に対してどの程度摂取できているかを確認できます。数字を並べるだけでは分かりにくいため、必要な情報を見つけやすい表示になるよう調整しています。
体重の記録とグラフ
その日の体重を記録し、変化をグラフで振り返ることができます。
一日ごとの増減だけで判断するのではなく、一定期間の傾向を確認できるようにすることを意識しています。減量だけでなく、増量や体重維持など、それぞれの目的に合わせて使える形を目指しています。
AIによるアドバイス
当日と前日の記録を参考に、食事や栄養状態を振り返るためのAI機能を用意しています。
たとえば、前日のタンパク質が少なかった場合に、今日の食事で意識するポイントを提示するような使い方を想定しています。
AIの回答だけで健康状態を判断するものではなく、あくまで日々の記録を見直すための補助機能として設計しています。医療上の診断や治療を目的としたアプリではありません。
履歴と振り返り
過去に入力した食事や体重を確認できます。
記録を続けるほど情報が増えるため、必要な日の内容を探しやすくし、入力内容を見直せることも大切です。週単位の集計など、短期的な変化を確認する機能も用意しています。
使用している技術
Reppalでは、主に次の技術やサービスを使用しています。
| 技術・サービス | 主な用途 |
|---|---|
| React Native | Android・iOS向け画面の開発 |
| Expo / Expo Router | アプリの実行環境と画面遷移 |
| TypeScript | 型を利用した安全な実装 |
| React Native Paper | UIコンポーネント |
| Supabase | 認証とデータベース |
| Dify | AI機能のワークフロー構築 |
| GitHub | ソースコードと変更履歴の管理 |
React NativeとExpoを利用することで、AndroidとiOSの両方を想定した開発を進めています。現在はAndroid版を中心に、実機での動作確認と公開準備を行っています。
食品データと単位の仕組み
開発で特に難しかったものの一つが、食品と数量単位の扱いです。
栄養価を計算するだけであれば、すべてグラムで入力する方法が分かりやすいかもしれません。しかし、毎回「ご飯は何グラムだったか」「卵1個は何グラムか」を調べながら入力するのは手間がかかります。
そこで、食品ごとの栄養情報に加えて、食品に応じた単位と基準量を管理する仕組みを作りました。
たとえば、次のような入力を扱えるようにしています。
- 白米:グラム、杯
- 卵:グラム、個
- 納豆:グラム、パック
- 飲料:ミリリットル、杯
- 野菜や果物:個、本、玉、房など
入力された単位をグラムへ換算し、食品の基準データから栄養価を計算します。同じ意味を持つ別の呼び方にも対応できるよう、食品名の別名を管理する仕組みも用意しました。
利用者にとっては小さな違いに見えますが、毎日の入力負担を減らすためには重要な部分だと考えています。
AI機能の仕組み
AI機能では、入力された質問だけでなく、アプリに記録された当日と前日の情報を参考にできる構成にしています。
大まかな処理の流れは次のとおりです。
- アプリから必要な記録データを取得する
- AIへ渡しやすい形式にデータを整理する
- Difyのワークフローを通じて回答を生成する
- 生成されたアドバイスをアプリへ表示する
AIへ多くの情報を渡せばよいというわけではないため、どの記録を参照するか、どのような形式で伝えるかを調整しています。
また、AIの回答には誤りが含まれる可能性があります。健康に関わる内容だからこそ、断定的な診断を行わず、日々の記録を振り返るための一般的な参考情報として提供することを大切にしています。
開発中に難しかったこと
Reppalの開発では、画面の実装以外にもさまざまな問題がありました。
Android実機での認証
開発中の端末ではログインできても、別の端末ではサインアップやログインに失敗することがありました。
画面上のエラーだけでは原因を特定できないため、SupabaseのログやHTTPステータスを確認しました。リクエスト回数の制限を示す 429 エラーなど、実際の通信内容を確認することの重要性を学びました。
AIとデータベースの連携
AIが理解しやすい文章と、データベースが扱いやすい形式は異なります。
たとえば、「白米を茶碗1杯」と入力した場合、食品名、数量、単位へ分けたうえで、登録されている単位へ変換する必要があります。入力の揺れをどこまで許容するか、情報が足りない場合にどのように聞き返すかも検討しました。
公開前の確認項目
アプリを公開するためには、機能が動くだけでは十分ではありません。
ストアへ掲載する画像や説明文、プライバシーポリシー、データセーフティの回答、テスト参加者への案内なども準備する必要があります。
実際の利用環境で問題なく使えるかを確認するため、現在はクローズドテストの準備と参加者の募集を進めています。
Android版のクローズドテスト参加者を募集しています
Reppalは現在、Google Playでの正式公開に向けて、Android版のクローズドテストにご協力いただける方を募集しています。
テストでは、実際にアプリをインストールしていただき、基本的な記録機能や画面操作をご確認いただきます。専門的な開発経験は必要ありません。
募集対象
- Android端末をお持ちの方
- Google Playを利用できる方
- テスト期間中にアプリを試していただける方
確認していただきたい内容
- アプリを正常にインストール・起動できるか
- アカウント登録やログインができるか
- 食事や体重を記録できるか
- 画面表示や操作で分かりにくい部分がないか
- 使用中にエラーや強制終了が発生しないか
ご協力いただける方は、お問い合わせページから「プロジェクトについて」を選び、件名に「Reppalクローズドテスト参加希望」と記載してご連絡ください。
参加方法や必要な情報は、こちらからあらためてご案内します。
※募集状況によっては、ご案内までお時間をいただく場合や、募集を終了している場合があります。
現在の開発状況
基本となる食事・体重の記録機能、履歴、グラフ、AI機能などは実装済みです。現在はAndroid実機での確認、認証まわりの調整、ストア公開に必要な情報の準備を進めています。
個人開発では、機能の追加と同じくらい、実際に利用して問題がないかを確認する工程が大切だと感じています。
自分の端末だけでは見つからない問題もあるため、クローズドテストでいただいた意見をもとに、正式公開へ向けて改善していく予定です。
今後改善したいこと
正式公開に向けて、次の点を中心に改善を進めます。
- 食事入力の手間を減らす
- 食品と単位データを充実させる
- AIアドバイスの分かりやすさを高める
- Android端末ごとの表示や動作を確認する
- エラー発生時の案内を分かりやすくする
すべての機能を一度に増やすのではなく、まずは記録、振り返り、アドバイスという中心部分を安定させることを優先します。
まとめ
Reppalは、毎日の食事と体重を記録し、その内容をグラフやAIのアドバイスで振り返るための健康管理アプリです。
企画から開発、テスト、公開準備まで進めるなかで、食品データの管理、単位換算、AI連携、認証、ストア公開など、多くの課題に取り組んできました。
まだ改善したい部分はありますが、実際に使っていただける段階へ少しずつ近づいています。
現在、Android版のクローズドテスト参加者を募集しています。ご興味をお持ちいただけましたら、お問い合わせページからご連絡いただけますと幸いです。
今後も「ゆうふの研究室」では、Reppalの開発中に試したことや、問題を解決した方法、正式公開までの過程を記録していきます。