こんにちは、tenj1nです。
現在、個人開発で筋トレサポートアプリ『Ui』を制作しています。
アプリの目的と特徴
筋トレサポートアプリを開発しようと思ったきっかけは、自分自身が筋トレをなかなか継続できなかったことです。
どうすれば楽しく続けられるかを考えたときに、「使いやすいアプリで、好きなキャラクターが応援してくれたら、前向きな気持ちでトレーニングできるのでは?」と思い、このアプリの開発を始めました。
その中で生まれたのが、音声付きキャラクターUiによる“継続しやすい筋トレサポートアプリ”です。
このアプリは、トレーニングを「継続しやすく、楽しく」行うために、
かわいらしいボイスキャラクター「Ui(雨衣)」が操作をガイドしてくれるのが最大の特徴です。
アプリの目的と特徴
- 筋トレを続けるモチベーションを維持する
- Uiの音声ガイドで、使うたびにポジティブな気持ちになれる
- 記録したトレーニングや体重をわかりやすく振り返れる
- (補助機能)食事の画像からカロリー・料理名も推定できる
- これまでの記録データをもとに、AIが最適なメニューを自動提案
技術構成
構成要素 | 技術 |
---|---|
フロント | SwiftUI(iOSアプリ) |
音声ガイド | Ui(雨衣)の音声素材(ライセンス購入済) |
画像アップロード | Cloudinary API |
カロリー推定 | Spoonacular API |
バックエンド(予定) | Flask(AI提案ロジック、音声解析など) |
ホーム画面のUI(開発中)
現在のホーム画面は以下のようになっています:
- 中央にキャラクター(仮)のアイコンが表示
- 右側に「トレーニング」「ログ履歴」「記録保存」の主要機能ボタン
- 下部には統計や設定にアクセスできるナビゲーションバー
今後はここからトレーニングメニューを選択し、実行・記録・フィードバックができるように拡張予定です。
トレーニングの流れ
- 「トレーニング」ボタンからメニューを選択
- 過去の記録データをもとに、AIが自動で最適な筋トレメニューを提案
- トレーニング開始 → Uiの音声で応援・案内
- 終了後、ログに記録
- 実施履歴や傾向は後からグラフで確認可能
補助機能:食事記録とカロリー推定
Cloudinaryを用いて画像をアップロードし、そのURLを Spoonacular API に渡して解析します:
CloudinaryUploader().uploadImage(image) { result in
switch result {
case .success(let url):
self.analyzeFoodImage(with: url)
case .failure(let error):
print("アップロード失敗:", error.localizedDescription)
}
}
推定処理:
func analyzeFoodImage(with imageURL: String) {
let url = URL(string: "https://api.spoonacular.com/food/images/analyze?apiKey=API_KEY&imageUrl=\(imageURL)&language=ja")!
URLSession.shared.dataTask(with: url) { data, _, _ in
guard let data = data,
let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any],
let category = json["category"] as? String else { return }
DispatchQueue.main.async {
self.foodName = category
self.calories = (json["nutrition"] as? [String: Any])?["calories"] as? String ?? "取得失敗"
}
}.resume()
}
音声ガイドとキャラクター性
『Ui』の最大の魅力は、ただの記録アプリではなく、“一緒に頑張ってくれるパートナー”としての存在をUIと音声で表現している点です。
アプリ起動時やトレーニング完了時には、Uiの音声ガイドが再生され、ユーザーの行動をやさしく後押しします。
著作権とライセンスについて
本アプリでは、キャラクター「Ui(雨衣)」の音声素材を使用しています。
音声およびキャラクター素材は Ui公式サイト より正規ライセンスを購入し、アプリ内でのみ使用しています。
Qiita記事内では音声・画像などの素材自体は掲載いたしません。
🄫 Ui © 2021 TOKYO6 ENTERTAINMENT
今後の展望
AIによるトレーニング強度・頻度の最適化提案
録音データの活用による音声分析(食事傾向、トーン評価など)
トレーニングごとの消費カロリー・継続日数の可視化
カレンダー・グラフによる記録の振り返り機能
ボイス付きリアクションによる“ガチャ風ご褒美”機能 など
「筋トレを、楽しく続けられるように」
このコンセプトのもと、Uiアプリを引き続き開発していきます。
最後まで読んでいただき、ありがとうございました!