75パーセント以上もの人がダイエットを続けられていない

石丸翔也氏(以下、石丸):メンターの石丸です。これから始まる発表は、努力量を共有して美容と健康を支えるアプリ「Sanitas」というものです。この「Sanitas」は、特に友だちとの競争にフォーカスを合わせてヘルスケアを行うアプリケーションです。

友だちとの競争に焦点を合わせるというと、「友だちと競争できるヘルスケアアプリはたくさんあるんじゃないの?」と思う方が多いかもしれませんが、増田さんが着目したのは、「たくさんアプリはあるけれど、目標とかその人(同士)の生活スタイルが違うと、競争はなかなかできないんじゃないか」という点です。

例えば1日に2時間かけて通学する人と、15分かけて通学する人だと、2人の歩数はぜんぜん違うから競争は起きない、という問題をSanitasは解決しています。それでは、お願いします。

増田ひなた氏(以下、増田):増田ひなたです。よろしくお願いします。今紹介していただいたとおり、Sanitasは努力量を共有して美容と健康を支えるアプリです。発表を始めます。

自己紹介から。(私は)増田ひなたです。普通高校の2年生で、Swiftとデザインが好きで、今日発表するSanitasはiOSアプリでSwiftを使って開発しています。

突然ですが、みなさんはダイエットや健康管理を継続できていますか。できていないですよね。

(会場笑)

ダイエットや健康管理を1人で続けるのはすごく難しいと思います。実際に周りの人にアンケートを取ったところ、75パーセント以上も(の人が)続けられていないことがわかりました。

そして諦めてしまった理由には、やる気が続かなかったことや、結果が出るまでに時間がかかって努力が評価されないこと、あとは自分のみの戦いで強制力に欠けていることなどが挙げられました。

これらの問題を解決するための、友だちと一緒にダイエットをするアプリやサービスはこれまでにも存在しましたが、歩数や体重を友だちには教えたくないですよね。あとは体格や生活スタイルが違うと競争になりません。例えば5,000歩歩くことや5キロ痩せるための努力は人によって違うと思います。

そこで、これを解決するために(開発したのが)、個人差に考慮して算出した努力量ポイントを友だちと共有するアプリ、Sanitasです。

Sanitasでは、健康やダイエットに関して異なる目標を持つ人でも一緒に競争できます。では、Sanitasを詳しく紹介していこうと思います。

努力ポイントを獲得する方法

まずSanitasは、体重計やApple Watch、iPhoneから記録した歩数や運動のデータを、「HealthKit」を通じて取得して、ポイントを作成しています。

HealthKitはAppleが提供しているもので、iPhoneユーザーの健康に関するさまざまなデータが管理できるものです。一般に販売されている端末のセンサーや、他のヘルスケアアプリから記録した情報を、すぐにSanitasに取り込むことができます。これを使うことで、ユーザーはわざわざ入力する必要がなく、入力が続かないということを防いでいます。

作成したポイントは「Firebase」で管理していて、友だちと共有できるようになっています。Firebaseには作成したポイントのみを保存していて、実数、例えば歩数とか自分の体重とかはまったく保存せず、安心して使えるようになっています。

そしてSanitasでは、健康への意識を高めること、それを行動に移すこと、その結果。この3段階のすべてを評価しています。

健康への意識は、毎日19時以降にアプリを開いて3段階で今日のがんばりの振り返りをすることで、ポイントが作成されます。

意識を行動に移したことは、iPhoneやApple Watchから記録したHealthKitに保存されている情報を元に、ポイントを作成しています。

この努力ポイントは、消費カロリーではなく、メッツというものを使用して算出しました。これは厚生労働省が使用している「運動が安静時の何倍に当たるか」という単位で、これを使うことで体格差にとらわれずに努力を評価できます。

また、歩数のポイントは先月の自分との比較で算出しています。値が大きくなってしまった時にポイントがすごく大きくならないように、シグモイド関数を使って算出しました。これらの計算方法によって、体格差や生活スタイルにとらわれずに、友だちと一緒にダイエットや健康管理をすることができます。

そして最後に、行動の成果は目標体重への到達度をポイントにしています。こちらも絶対値で計算するのではなくて、目標体重を自分で設定することで、体重を増やしたい友だちとも一緒にダイエットできます。

作成したポイントは、1つ目の「自分で振り返ること」や、2つ目の「友だちと競争すること」に使用しています。

努力を振り返る機能

まずは努力を振り返る機能について紹介していきたいと思います。

努力ポイントは、履歴やGitHubの草のようなカレンダーに、色がついていくストリークによって確認できます。

また、ヘルスデータの振り返りということで、歩数や体重をグラフによって確認することもできます。(スライドを示して)このグラフは新しいiOS16から使用できる「SwiftCharts」を使って実装しました。以上2つが努力の振り返り機能になります。

努力ポイントで友だちと競争する機能

次に、努力ポイントで友だちと競争する機能について紹介します。友だちとポイントで競争する時、モチベーションを向上させるには何が有効かを調べる際に、競争とモチベーションの関係についての論文を読みました。そこで、モチベーションを保つには競争の中で努力量に応じて順位の変動が起こることや、競争相手との差が適切であることが有効であるとわかりました。

そこで、Sanitasのメインの画面には、友だちと自分のポイントに順位がついて、X軸上にランキングになっているグラフが表示されています。(スライドを示して)このグラフは右の一般的なリスト表示とは違って、ポイントの差で頂点を計算しています。これによって、あとどれくらいで追いつかれてしまいそうなのかを一目で確認することができます。

また、競争相手との差が適切であることを保つために、ポイントは1週間でリセットをするようにしています。

あとで詳しく紹介しますが、タイムライン機能によって、友だちのポイント獲得状況をリアルタイムですぐに確認可能です。

また、毎日使ってもらう工夫として、遊び心のあるUIを心がけています。例えばポイント獲得に応じて背景が紫から緑に変化していったり、iPhoneを傾けることで先ほど紹介したグラフが動いたりするなど、楽しいUIを心がけました。

Sanitasの使用デモ

では、これまで紹介したSanitasの機能を動画で紹介していきたいと思います。

(動画再生開始)

まず、その日に初めてSanitasを開くと、昨日の分の歩数ポイントを獲得できます。昨日はたくさん歩いたので、32ポイントも獲得できました。

そしてSanitasのタイムラインを更新してみると、私のメンターの石丸さんがサイクリングをして23ポイント獲得したようです。もう少しで追いつかれてしまいそうなので、後でランニングをしてポイントを獲得しようと思います。

19時になってSanitasから通知が来たので開いて、今日の振り返りをしようと思います。今日はさっきお菓子を我慢したので、1番高い評価にして7ポイントを獲得しました。

そして、先ほど言っていたランニングをしようと思います。Apple Watchでワークアウトを記録します。終了してアプリを開くだけで、ポイントを獲得できます。タイムラインを更新すると、先ほどのランニングが反映されているようです。

(動画再生終わり)

このように、Sanitasは友だちと競争しながら努力をすることで、運動量を増やしたり、意識を高めたり、ダイエットや健康管理をサポートできるアプリです。以上がSanitasの概要になります。

ユーザーテストを経て改良した点

次にSanitasの未踏ジュニア期間での開発について紹介していこうと思います。Sanitasは、未踏ジュニアの採択時にはほとんどプロトタイプのみの状態で、そこから約2ヶ月間開発をして、早い段階からユーザーテストをたくさんして改善を繰り返し、10月にリリースできました。そして、アプリ甲子園で優勝と企業賞をいただくことができました。

(会場拍手)

ありがとうございます。先ほど紹介したユーザーテストでは、約2ヶ月間で40名の人に協力していただきました。ユーザーテストでは、継続しているユーザーから歩数や運動が増加したなど、良い影響が与えられたとわかりました。

(スライドを示して)この右の画面はあるユーザーの歩数の推移で、使い始めてから1日の歩数が30日平均を上回り続けたという報告がありました。

しかし、1〜2週間で使用しなくなるユーザーも少しいたので、原因を見つけて改善を行いました。

改良した点をいくつか紹介していきたいと思います。もともとユーザーテスト前の友だち追加はリンクやQRコードのみで、アプリの外から行っていましたが、友だちの数と継続日数にきれいな相関があることがわかって、友だちが4人以上いると継続日数がすごく向上することがわかりました。

そこで、友だちが2人以下のユーザーに話を聞いたところ、「人数分QRコードを読み込んだりリンクを読み込んだりするのは面倒くさいから、友だちは少しでいいなと思ってしまう」などの意見をいただきました。

そこで、アプリの中から簡単に友だちを追加できる方法が必要だと考えて、友だちの友だちにリクエストを送れる機能を新たに実装しました。

また、友だちと一緒にダイエットをする感覚をさらに改良しました。ユーザーテストで、グラフだけではユーザーのがんばりがわかりにくかったり、一緒にダイエットをしている感覚が少ないという意見を多くいただいたので、先ほど紹介したタイムライン機能でリアルタイムに友だちのがんばりを見ることができるように改良しました。

他にもポイントが高すぎると差がつきすぎてしまうので、シグモイド関数を使って丸め込んで計算したり、あとはアカウント登録が面倒くさいということで、簡単なSign in with Appleにして、改善を繰り返しました。

今後は食事・睡眠などのスコアリングも検討中

まとめです。未踏ジュニア期間内にSanitasで開発した機能は(スライドを示して)このとおりです。もともと想定していたものをすべて作りきった上で、ユーザーテストをたくさんして改善できました。

今後は運動や歩数のポイントに加えて、食事や睡眠などのスコアリングも追加していきたいと思っています。あとはユーザーを増やして、さらにフィードバックを集めて改良していきたいと考えています。

未踏ジュニア期間内ですごく自由にやりたいことをさせてもらって、本当に楽しかったです。ありがとうございました。

(このアプリは)App Storeからダウンロードできるので、みなさんも「Sanitas」を使って努力量を共有して、健康維持やダイエットを続けてみてください。ありがとうございました。

質疑応答

石丸:すばらしい発表をありがとうございました。じゃあ、会場から質問があれば、ぜひ手を……。

(会場より挙手)

石丸:あ、挙げてくれました。お願いします。

質問者1:すみません、自分は今すぐにでもダウンロードしなきゃって思ったんですが、残念ながら自分はAndroid勢で。お願いです。(Androidにも)実装してもらえないですかね。

増田:ありがとうございます。このアプリはHealthKitを使ってるので、やはりAndroidは難しくて。でもHealthKitみたいな、自分が使いやすいものが何かあればぜひ実装したいと思います。ありがとうございます。

質問者1:ありがとうございます。

石丸:ロジックの部分はたぶん同じように使えそうですよね。iPhoneユーザーとAndroidユーザーが一緒に競うみたいなことができて。データを取ってくるところだけ、どうしてもOS特有のものを使っているので、たぶんそこの実装が必要かなと思います。

質問者1:もし実装されたら、絶対1番目にダウンロードします。

増田:ありがとうございます。

石丸:ありがとうございます。他に質問がある方は挙手をお願いします。

(会場より挙手)

石丸:じゃあ、お願いします。

質問者2:発表ありがとうございました。ちょっとUIについて質問があるんですが、グラフみたいなものがあって、右にいくほどポイントが高い人を表してるようなUIが1つ出ていたと思います。このグラフは正規分布っぽいなと思ったんですが、UIの例えばどの位置にあるかを定量的に計算しているのか、そんなに複雑なことはしていないのか、どういう感じでしょう。

増田:そうですね。一番高いポイントの人との差で位置を計算しているんですが、答えになってますかね。

質問者2:この分布のどのあたりにいるかとか、意味があるのかなと思って。

増田:縦はランダムで、X軸が今言ったような計算になっています。

質問者2:ああー。ありがとうございます。

増田:ありがとうございます。

石丸:ありがとうございます。他に質問、どうでしょうか。ぜひ手を挙げて聞いてほしいです。

(会場より挙手)

石丸:ではお願いします。

質問者3:すてきなプレゼンテーションをありがとうございました。スライドとか表現、グラフィックの部分など、すごくきれいだなと思ったんですが。最初にデザインが好きということもお話しされていて。ビジュアルとかデザインの面で込められた想いとか意図などがあれば、教えていただければと思います。

増田:やはり毎日使ってもらうアプリなので、使いやすいものを意識しています。

質問者3:ロゴとかサービス名の想いはどういうところにありますか。

増田:ロゴは外部の方に依頼して作ってもらいました。

質問者4:名前(に対する想い)は何かあるんですか。

増田:名前はラテン語で健康という意味で、Sanitasって、なんかかわいいじゃないですか。それで決めました。

質問者3:ありがとうございます。

石丸:ちょうどドメインもいい感じに空いていてよかったですね。

増田:あ、そうですね。

石丸:「sanitas.cc」でアクセスできるので。

増田:ぜひ見てください。

石丸:ダウンロードする際は、sanitas.ccで検索して飛んでほしいですね。

増田:お願いします。

(会場より挙手)

石丸:お願いします。

質問者5:ちょっとこれは難しいかなと思ったんですが、僕は筋トレをやっていて。筋トレの情報は何か取れたりするのかなと、ちょっと思いました。

増田:なるほど。筋トレの情報というのは、例えば?

質問者5:ジムとかに行って筋トレをやった(時に)そういう情報がうまく取れて入力できるのとかは難しいのかなと思って。

増田:なるほど。筋トレの軽度か中度か強度かを選んで自分で入れる機能はあるんですが、細かくはApple Watchがないとできないようになっています。

質問者5:ありがとうございます。

石丸:じゃあ、他に質問がある方はいませんか。

(会場より挙手)

石丸:あ、手を挙げていますね。じゃあ、奥の方からお願いします。

質問者6:はい。すごく魅力的なアプリで、でも僕はAndroidユーザーなので使えないんですが、でもAndroidにあったら本当に入れたいなと思うぐらい、すごく良いアプリだなと思いました。

増田:ありがとうございます。

質問者6:デモというか映像の中で、確かウェアラブル端末とかを使っていたと思うんですが、そういうのがないとできないみたいな、そういったデバイス環境の制約みたいなものはあったりしますか。

増田:そうですね。デバイスがあるとさらにポイントの精度がよくなったりはするんですが、一応自分で入力してポイントにできるので、問題はぜんぜんないと思います。

質問者6:じゃあ、別にそういうものを持っていなくてもできるってことですか。

増田:はい、そうですね。

質問者6:ありがとうございます。

増田:ありがとうございます。

質問者7:発表ありがとうございました。継続するにあたって、適切に乗り越えられそうかが重要という話があったと思いますが、そうなった時に、努力量が近いユーザーとマッチングさせる必要があるかなと感じました。 (でもそれは)ユーザー数とかを考慮すると計算がけっこう大変だと思っていて、アプリ側でなんらかの工夫が必要かなと思ったんですが、何か工夫はされているんですか。

増田:マッチングというのは?

質問者7:努力量が近いユーザー同士でグラフが見えていないと、すごく差が開いているように見えてしまうと思うんですよ。なので、適切に絞り込みをしてるのかなと思ったんですが、何か工夫はされているんですか。

増田:そうですね、先ほど紹介したように、自分で友だちとかを直接追加するので、努力量のマッチングはまだできていなくて。やはり差が開いてしまうとグラフも差が開いてしまって、あんまりきれいな状態ではないので、今後改善していきたいと思っています。

質問者7:なるほど。了解です。ありがとうございます。

増田:ありがとうございました。

石丸:オンラインでもぜひ質問してもらえるとうれしいです。オンラインで見ている方は「#未踏ジュニア」でつぶやいてもらえたら、ここで回答しようと思います。

(会場より挙手)

石丸:ではお願いします。

質問者8:Sanitasを入れるために、iOS16に対応しているiPhone 8に切り替えました。これからのアップデートで「こういう機能を追加していきたいな」とかがあったら教えてください。

増田:そうですね。例えば「あと何ポイント」とか、「あと何歩で友だちに追いつきます」みたいな通知を出したり、ホームウィジェットに出したりしようと思っています。

質問者8:ウィジェットに出たらメチャクチャ便利ですね。ありがとうございます。

増田:ありがとうございます。

石丸:作っていて楽しかった機能とか、「逆にこれは作るのがすごく難しかった」みたいなところはあったりしますか。

増田:そうですね。(スライドを示して)このグラフを作るのはすごく楽しかったです。実装ではありませんが、Webはすごく大変でした。ノーコードツールを使ったんですが、一番大変でした。

石丸:sanitas.ccのページですよね。

増田:そうです。

石丸:確かに。増田さんがすごいのは、アプリも作っているし、サーバーサイドの友だち承認とか、追加の部分のデータベースも用意しているし、かつLP(ランディングページ)も作っているので、1人で全部されているからすごい。最後の期間を使ってがんばってWebサイトも作っていて、すごいなぁと思いましたね。

会場スタッフ:(質問が)なければ終わってもいいですが。何か最後に質問があれば。

(会場より挙手なし)

会場スタッフ:いいですか。じゃあ終わりで。

石丸:では終わりにしようと思います。発表ありがとうございました。

増田:ありがとうございました。

石丸:みなさん、ありがとうございました。