2021年10月14日に「MoT TechTalk #7 技術書典頒布のタクシーアプリ『GO』アーキテクチャ図録を一挙解説」(connpass)を開催しました。
本記事では当日の内容を簡単に紹介します。
当日のスライド
MoT TechTalkとは?
MoT TechTalkは、Mobility Technologiesのエンジニアたちが、タクシーアプリGOをはじめとしたサービスやプロダクトを開発する中で得た技術的ナレッジを共有するイベントです。
7回目となる今回は7月に行われた技術系同人誌のイベント“技術書典11”で頒布した『Mobility Technologies アーキテクチャー全て』という技術同人誌について、企画の裏側や実際に執筆したエンジニアによる図録の解説をオンライン配信しました。こちらのツイートのスレッドで当日の様子や雰囲気を感じていただけると思います。
タクシーアプリ『GO』の
— GO Inc. dev | タクシーアプリ『GO』 (@goinc_techtalk) October 12, 2021
- RIBsアーキテクチャ
- 毎秒数万件の走行位置情報収集・配信
- GPSログからの走行記録データ作成#技術書典 頒布のこれらアーキテクチャ図を解説するイベントは10/14木開催!
この図に惹かれるエンジニアの皆様お待ちしておりますhttps://t.co/XcR4VYgCZH#mot_tech_talk pic.twitter.com/EPqtRFZZ13
登壇者紹介
今回はこちらのメンバーが登壇しました。
- 森下 篤(@74th)
- 今入 庸介
- 前田 恭男
- 谷本 晋一
技術同人誌『MoTアーキテクチャー全て』ができるまで
MoTは技術書典10からスポンサーとして協賛しています。そして直近の技術書典11では、タクシー配車を支えるiOSユーザアプリ、車両走行位置情報収集基盤などのMoTが手がけるさまざまなプロダクトのアーキテクチャーを図解した『Mobility Technologies アーキテクチャー全て』を頒布しました。
技術書典11期間中に多くの方に購入いただき、本当にありがとうございました。現在も電子版を販売中ですのでぜひご覧ください。また、感想をツイートいただけると嬉しいです。
最終的にどんな形になりましたという結果だけではなく、設計意図が分かるよう特に結果に至るまでにどんな課題があってそれをどう解決したいと考えて今のアーキテクチャに至ったのかが伝わるように気を付けました。また書籍制作にはこれらのツールを活用し、作図も組版もVS Code上で完結できる環境を準備しました。
- diagrams.net(draw.io) もともと社内でも利用している作図ツール。拡張機能を導入することでVS Code上でも編集できます。
- Vivliostyle HTML+CSSで書籍の組版ができるフレームワーク。コマンド一つでPDFを生成できます。
こういった企画の背景や執筆時の工夫について紹介しました。

動画(6:48〜)
タクシーアプリ『GO』ユーザ向けiOSアプリアーキテクチャー構造図 RIBsツリー
「GO」に限った話ではないですが、アーキテクチャーはそのプロダクトの特性や機能要件を把握・理解した上で検討する必要があります。
「GO」の場合はアプリに持たせる状態が多いことや、その反面画面遷移は少ないといった特性、アプリが強制終了した場合は終了直前の状態に復旧可能である機能要件などが挙げられます。
こういった条件から採用に至ったRIBsアーキテクチャについて紹介しました。詳しい解説はぜひ動画や過去のブログをご覧ください。

動画(20:12〜)
動態情報収集・配信システム
動態情報収集・配信システムはタクシー車両の動態情報(位置座標やメーター情報)をクラウド上に収集するPub/Subシステムです。
「GO」は2020年4月にJapanTaxiアプリとMOVアプリという異なるアプリが統合する形で生まれ、その際それぞれのアプリのバックエンドにあった動態情報収集・配信システムも統合しました。(統合の歩みについては以前のTech Talkで紹介していますのでこちらもご覧ください)
そういった背景や今後のユーザー・タクシー車両の増加に対応していくためのアーキテクチャーについて紹介しました。

動画(31:52〜)
GPS座標情報から「道路の走行記録」データを作るまで
次に紹介するのが動態情報分析基盤のアーキテクチャーです。
先の動態情報収集・配信システムではタクシー車両の動態情報としてGPS(位置座標)を収集・配信していましたが、動態情報分析基盤はそのGPS情報に対してマップマッチ(誤差を補正する技術)を行い、意味のある「道路の走行記録」に加工した上でBigQueryへの蓄積を行っています。
今回はそのマップマッチにおいてコストがかかる同期処理を非同期処理に切り替えることで、コスト削減につなげた工夫を紹介しました。

動画(45:25〜)
開催履歴・開催予定
MoT Online Tech Talk は不定期開催しています。過去の開催レポートは こちら にもありますので、ぜひご覧ください!
- Vol.1 No.1*タクシーアプリを支えるバックエンド (2021/2/5)
- Vol.2 車載Androidシステムの技術と開発チーム (2021/3/9)
- Vol.3 タクシー配車ならではの技術が盛りだくさん!iOSアプリの開発現場 (2021/4/8)
- Vol.4 Androidエンジニア必見!タクシーアプリGOのUXを高める工夫 (2021/5/27)
- Vol.5 Flutterで作るタクシーデリバリーアプリ「GO Dine」(2021/7/7)
- Vol.6 タクシーデリバリーアプリ「GO Dine」を支えるバックエンド (2021/8/25)
- Vol.7 技術書典頒布のタクシーアプリ『GO』アーキテクチャ図録を一挙解説 (2021/10/14)