Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ウォーキングアプリ「aruku&」ってどうやって作ってるの? OCEM#3

One compath
October 25, 2023
100

ウォーキングアプリ「aruku&」ってどうやって作ってるの? OCEM#3

ウォーキングアプリ「aruku&」ってどうやって作ってるの? OCEM#3

ONECOMPATH Engineer Meetup #3 (OCEM#3)
https://ocem.connpass.com/event/296662/

One compath

October 25, 2023
Tweet

More Decks by One compath

Transcript

  1. ©ONE COMPATH CO., LTD. All rights reserved. 2 アジェンダ aruku&ってなんですか?

    aruku&の変遷 aruku&の今後 自己紹介 気楽に聞いてほしいクト ♪ aruku&のシステム苦労話 aruku&の裏側
  2. ©ONE COMPATH CO., LTD. All rights reserved. 3 自己紹介 aruku&開発グループマネージャー

    池本聡(38歳) 人物 2008年 大学卒業(文系) SES企業でプログラマデビュー (組み込みCからサーバサイドJavaへ) 2014年 ONE COMPATH入社(当時はマピオン) 新事業や法人向けASPを担当 (SEからPMへと上流工程にシフト) 2018年 aruku&事業にPMとして参画 経歴 名前:ぽたろう 年齢:?歳 種別:イタチ 語尾:〇〇クト 人物? よろしクト ♪ 妹のぽたこ
  3. ©ONE COMPATH CO., LTD. All rights reserved. 5 aruku&って何ですか? 楽しく&長く続けられる

    ♪ 190万DLを突破した ゲーム感覚で遊べるアプリ スマホを持って歩くだけで地域名産品が当たる、 一歩先ゆくウォーキングアプリ 賞品が 当たる やったー♪ お菓子が 当たった♥ キャラを コレクション よぉーし! 新キャラ ゲット! ランキングで 競える ついに 10位以内! これで部長を 抜いた♬ 様々な ミッション 1000歩ごとに 報酬もらえて 嬉しい
  4. ©ONE COMPATH CO., LTD. All rights reserved. 6 aruku&って何ですか? Tポイント・ウォーキングシューズ・地域

    名産品・クーポンなど 様々な賞品が毎月当たる 定常住民に加え、期間限定のレア住民や タイアップキャラなどが登場する キャンペーンも開催中! ライト層~ヘビー層まで個人のレベルに応 じて、気軽に楽しめるミッションが満載 日々の歩数や消費カロリーなどが 確認できる「きろく」機能 豊富なインセンティブ SNS投稿画面 ✔ 通算ログインで報酬ゲット ✔ 1000歩ごとに報酬ゲット 歩数を意識する運動グラフ 翌月継続率 80% 1日起動数 14回  毎日アクティブなアプリ ダウンロードはこちら! 思わずハマるミッション 個性豊かな住民キャラ
  5. ©ONE COMPATH CO., LTD. All rights reserved. 7 aruku&の楽しみ方 1.街を歩こう

    2.依頼を達成しよう 3.賞品に応募しよう 地図を開いて住民に近づきましょ う。話しかけると依頼を受けられ ます。 住民の依頼を達成してお宝カード を集めましょう ♪ 集めたカードで賞品に応募しま しょう! 通勤や帰宅途中が、きっとたのし くなるはず ♪
  6. ©ONE COMPATH CO., LTD. All rights reserved. サービスの方向性やアプリの機能、キャン ペーンの内容を考えるチーム aruku&は企画チーム、営業チーム、運用チーム、デザインチーム、開発チームなどから

    構成されていて、全部で30人以上のスタッフで運営を行っています。 9 aruku&の裏側:運営体制 企画 団体向け機能の販売を行うチーム。社内イベ ント成功に向けたサポートもします。 営業 ユーザーや団体利用者の問合せサポートを 行ったり、サービスの運用を行うチーム 運用 住民画像のデザインやホームページの制作を 行うチーム デザイン 新機能の開発やシステムの保守を行うチーム 開発 けっこうたくさんいるクト〜
  7. ©ONE COMPATH CO., LTD. All rights reserved. aruku&の開発チームはServerチーム、Clientチーム (iOS /

    Android)、品質保証チームから 構成されています。全部で10人前後います。 10 aruku&の裏側:開発体制 新しい機能の 開発を行った り、既存機能の 改修を行いま す Server Client 機能開発 システム保守 負荷対策 インフラ iOS 開発 Android 開発 品質保証 QA テスト PM 応援 負荷対策に集 中して取り組み ます サーバの構築 やミドルウェア の導入などを 行います iOS・Androidアプリの開発を行い ます。ストア申請もこちらで対応し ます リリース前の品 質保証テストを 行います みんなを応援し ます。進行管理 や部署間の調 整もたまにやり ます PM仕事しろクト〜
  8. ©ONE COMPATH CO., LTD. All rights reserved. AWS Cloud 11

    aruku&の裏側:システム構成 Amazon S3 ストレージ Amazon Elastic Cache ジョブ管理( Sidekiq) Amazon Aurora データベース AmazonSNS Push通知 一般ユーザ (iOS/Androidアプリ) 管理者 (Webブラウザ) AmazonEC2 Proxyサーバ ロードバラン サ AmazonEC2 管理ツール サーバ ロードバラン サ AmazonEC2 APIサーバ Cloud Watch X-Ray などなど... Lambda Code Deploy
  9. ©ONE COMPATH CO., LTD. All rights reserved. 10月 12月 11月

    9月 毎月リリースします。開発からリリースまで2ヶ月ですが、後半の手が空く時期から次のバージョン の開発が始まります。大規模な開発は別軸で進めます。 12 aruku&の裏側:開発とリリースの流れ ver 7.0.0 開発 検証 リリース準備 ・リリース ver 7.1.0 開発 検証 リリース準備 ・リリース ver 7.2.0 開発 検証 リリース準備 ・リリース 大規模な開発 開発 検証 リリース準備 ・リリース
  10. ©ONE COMPATH CO., LTD. All rights reserved. 2016年にリリースしてからTポイント連携や電子クーポン抽選機能、UX強化など通じてユーザ数 を拡大しています。マネタイズの軸を団体向け機能や動画広告機能、課金機能と拡大してサービ ス成長し続けています。

    14 aruku&の変遷 2016年 
 2017年 
 2018年 
 2019年 
 2020年 
 2021年 
 2022年 
 2023年 
 (9月 時 点 )
 1万人 10万人 40万人 70万人 100万人 150万人 190万人 2016年11月
 iOS版リリース
 2017年3月
 Android版リリース
 2017年4月
 団体機能リリース
 2018年1月
 Tポイント提携開始
 2018年11月
 動画広告リリース
 2019年2月
 即時抽選機能リリース 
 2020年9月
 課金機能リリース
 住民リストリニューアル 
 2021年3月
 デザインリニューアル 
 2022年3月
 チーム機能リニューアル 
 2022年10月
 招待機能
 2023年9月
 歩数偏差値機能リリース 
 引き継ぎ機能改善
 <aruku&ダウンロード数> まだまだ行くクト〜!
  11. ©ONE COMPATH CO., LTD. All rights reserved. 2020年、住民リストの大幅リニューアルを実施しマネタイズの軸として成長 ♪ ユーザー分析した結果、ライトユーザーは賞品やポイント活動に興味があるが、

    コアユーザーは住民リストのコンプリートに興味を持っていた! 15 aruku&のターニングポイント:住民リスト 賞品ほしい〜 ポイ活〜 住民集めるの 楽しいな〜 賞品やポイント に興味のある人 住民を 集めたい人   起動回数:低 広告再生回数:低   起動回数:高 広告再生回数:高 < 1画面だけだった 住民リストを改修 住民をグループで分け、世界観を演出! 住民コンプにやり込み要素を設定 ♪ aruku&を支えてくれるロイヤリティの高いユーザーを分析した結果... 賞品やポイ活に興味は無く、住民を集めることを楽しんでいた! マネタイズに成功したクト〜 ♪
  12. ©ONE COMPATH CO., LTD. All rights reserved. 歩数を使ってリアルタイムのゲーム性を表現するのが難しい! OS側で計測される歩数はタイムラグがあったり、計測されなかったり、減ったりします 秒単位で歩数を扱うため、ユーザが損しないように色々なロジックを考えています

    17 aruku&のシステム苦労話:歩数と依頼 依頼1 依頼2 歩数 歩数 歩数 歩数 歩数 歩数 歩数 歩数 歩数 制限時間内! 依頼失敗... 依頼達成! サーバ 依頼の歩数管理のイメージ 依頼の状態監視と、タイムラグの ある歩数取得イベントの監視で 辻褄を合わせる。 だけじゃなく、アプリがバックグラ ウンドで動作していた期間の状 態を遡って処理する必要もある。 制限時間切れ...
  13. ©ONE COMPATH CO., LTD. All rights reserved. 20 歩数は 計測されないことがあります

    (電源が切れたり、OS側で不正と判断された場合)
  14. ©ONE COMPATH CO., LTD. All rights reserved. 21 歩数は 計測されないことがあります

    (電源が切れたり、OS側で不正と判断された場合) だけじゃなく
  15. ©ONE COMPATH CO., LTD. All rights reserved. 22 歩数は 計測されないことがあります

    (電源が切れたり、OS側で不正と判断された場合) だけじゃなく 減ることがあります (OS側で不正と判断された場合)
  16. ©ONE COMPATH CO., LTD. All rights reserved. その日の歩数はヘルスケアアプリや GoogleFitと同じ歩数を表示する (減った値も正直に出す)

    歩数の取り方もいくつかあるので(細かく取ったり、その日の歩数を取ったり) 演出しようとしているゲーム性や、ユーザに対する利便性などを考慮して、 何をどう扱うかサービスごとに考えましょう 24 aruku&のシステム苦労話:歩数と依頼 それでもうまくいかない パターンは沢山あるクト〜 依頼の歩数はヘルスケアアプリや GoogleFitの表示を無視して、 取得できた歩数を取りこぼさない ように反映していく サーバでは減った分は反映せず ミッションなども増えた段階で 達成判定を行い戻さない
  17. ©ONE COMPATH CO., LTD. All rights reserved. aruku&のアクセス数のピークは平日の朝8時です。 朝の通勤ラッシュ、昼のランチ、夕方の帰宅ラッシュの時間帯に合わせて 15万/分のアクセスがサーバに襲いかかります。

    APIサーバとDBのオートスケールや、読み込み専用処理の分離で対策しています。 25 aruku&のシステム苦労話:サーバ負荷 通勤ラッシュ (7:00〜9:00) ランチ休憩 (12:00〜13:00) 帰宅ラッシュ (18:00〜21:00) APIサーバ : aruku&の負荷状況 サーバの負荷状況 に合わせてEC2の 台数をAutoScale DB(Aurora) wirter read replica : 書込の発生しない処理は ReadReplicaへ処理移譲 ReadReplicaは負荷状況 に応じてAutoScale
  18. ©ONE COMPATH CO., LTD. All rights reserved. 一部の処理はSidekiqを利用して非同期処理(遅延処理)で対応しています ミッションの達成判定など多少遅れても影響の少ない処理はジョブキューに溜め サーバの負荷が落ち着いたら処理されるようになっています

    26 aruku&のシステム苦労話:サーバ負荷 Amazon Elastic Cache (Sidekiq) AmazonEC2 (APサーバ) Amazon Aurora 依頼達成などは 直接DB更新 一部処理はSidekiqにて ジョブキューとして管理 非同期処理のイメージ 過負荷時はエラー 落ち着いたら処理 ※注意事項 Sidekiqを利用した設計は実は難しい。 リトライ処理で整合性が保たれるようリランの設計を行 う。 リトライ処理が狙い通り行われるように例外処理の設計 も必要。
  19. ©ONE COMPATH CO., LTD. All rights reserved. aruku&の住民は日本全国の道路上に配置するようにしています。 道路データを元に住民同士が近づきすぎないよう距離を計算して配置します。 ただ、道路は日々新しく整備されているので、問い合わせ情報を元に修正しています。

    27 aruku&のシステム苦労話:住民の設置 住民同士は50m以上離す 施設内には設置しない 道路に配置する でも高速道路には置かない 問い合わせ情報を元に 配置箇所を整備する 住民を配置するだけでも けっこう大変クト〜