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

MoT Online Tech Talk Vol.2 - 車載Androidシステムの技術と開...

MoT Online Tech Talk Vol.2 - 車載Androidシステムの技術と開発チーム

タクシー車内には、タクシーメーターや決済機などさまざまな車載機器があります。

今回はオンラインにて、それらの車載機器と連携するAndroidアプリの開発事情の話を、車載Androidアプリエンジニアチームのメンバーが語っていただきました。

YouTube
https://www.youtube.com/watch?v=E_Z6V-TIx-w

GO Inc. dev

March 09, 2021
Tweet

More Decks by GO Inc. dev

Other Decks in Technology

Transcript

  1. Mobility Technologies Co., 6 タクシー⾞内の機器(システム構成の⼀例) Wi-Fi Direct Taxi Meter Taxi

    Printer 後部座席 タブレット 乗務員端末 決済機 外部デバイス ⾞両信号 DRIVE CHART BLEロガー AWS IoT 4G
  2. Mobility Technologies Co., 7 タクシー⾞内の機器(システム構成の⼀例) Wi-Fi Direct Taxi Meter Taxi

    Printer 後部座席 タブレット 乗務員端末 決済機 外部デバイス ⾞両信号 DRIVE CHART BLEロガー AWS IoT 4G
  3. Mobility Technologies Co., 三輪 智也(@tomoya0x00) 主な呼ばれ方:みわさん • 旧MOV車載システムのリーダー役 • 組み込み(カーナビなど)業界の出身

    • 低レイヤー(シリアル通信、BLE)得意 宮部 慎太郎(@shinmiy) 主な呼ばれ方:しんみーさん • 決済機周りのプロ • 「Androidエンジニアとは…?」が口癖 • 最近はFlutterをゴリゴリ
  4. Mobility Technologies Co., 空中 清高(@soranakk) 主な呼ばれ方:そらなかさん なかし • 専用端末向けAndroidアプリ開発を8年 •

    Androidは下回りが得意 • 「空中る」という言葉を生み出した 本戸 裕理(@yurihondo) 主な呼ばれ方:ほんどさん どし • 開発全般担当、スマホ型大体わかるマン • 弊社採用サイトに笑顔の写真が掲載 • 次男が爆誕(おめでとう!)
  5. Mobility Technologies Co., 安齋 祐紀(@off2white) 主な呼ばれ方:あんざいさん • タブレット端末のリーダー役 • 電話配車室との連携やナビ周り

    • Androidエンジニアとは一体…と悩む勢 松延 萌菜(@nb_matsu) 主な呼ばれ方:まつのぶさん • エンジニア採用のリーダー • 最近、スコッチブームがきている • 視聴者を代弁する質問役
  6. Kioskアプリ、タクシーメーターとの通信、BLEロガーのFWアップデート 機能、WiFi-Direct + VpnServiceで後席タブレットの通信費⽤削減、 multi module、ステートマシン、Feature Flagsの導⼊、Fluxに挑戦して 失敗、signature権限でむりやりOSのアレコレを変える、決済機連携、 gRPC、SIM制限を回避するために分散ダウンロード、JCenter問題、リモ ートログ収集、地図SDKまわり、端末在庫の問題、複数アプリでソースを

    共有しているキメラな構成、端末メーカーとやりとりして独⾃Broadcast ⾶ばしてもらう、画像データの形式でNV21とかNV12とかの判定とか変換、 普通のカーナビのルートとタクシーの乗務員さんが求めるルートが違う、 BLEロガーのキャラスタリスティックが新規追加される度に再ペアしなく ても検出する技術、⾳波ビーコン、AWS IoTのフォーク、etc..
  7. Mobility Technologies Co., • メンバーが多いこともあり、プルリクのコンフリクトが発⽣ • releaseブランチとのコンフリクトも多発 • しかし、開発途中の機能をmasterブランチにマージは避けたい ◦

    開発途中のものが世に出てしまう可能性 Feature Flags導⼊の理由と効果 • Feature Flagsを参照して、デフォルトでは動作しないように実装 • ⼩さくこまめにmasterへマージし、コンフリクトはほぼゼロに
  8. Mobility Technologies Co., // 開発中機能のON/OFFチェッカー interface AvailableExperimentsChecker { fun isEnabled(feature:

    ExperimentalFeature): Boolean } // 開発中かつ、明示的にON/OFFを切り替えるべき機能の一覧 enum ExperimentalFeature { NEW_FUNCTION } Feature Flagsとは
  9. Mobility Technologies Co., What is タクシーメーター︖ ざっくりいうと計量器 ▪ 運賃計算 ▪

    営業状態管理 ▪ バックオフィス作業 タクシー業務システムの中核
  10. Mobility Technologies Co., メーターとのコミュニケーション No パラメーター バイト数 型 備考 1

    パラメーター1 1 BCD 00︓営業状態A 01:営業状態B 02:営業状態C 03:営業状態D 04:営業状態E 05:− 06:− 07:営業状態F 08:営業状態G ※ビッグエンディアン 2 パラメーター2 1 HEX 16進で8桁 3 パラメーター3 1 ASCII 7桁 番号 ※リトルエンディアン Android開発者とっては⼀般的なI/F仕様書の例
  11. Mobility Technologies Co., メーターとのコミュニケーション No パラメーター バイト数 型 備考 1

    パラメーター1 1 BCD 00︓営業状態A 01:営業状態B 02:営業状態C 03:営業状態D 04:営業状態E 05:− 06:− 07:営業状態F 08:営業状態G ※ビッグエンディアン 2 パラメーター2 1 HEX 16進で8桁 3 パラメーター3 1 ASCII 7桁 番号 ※リトルエンディアン Android開発者とっては⼀般的なI/F仕様書の例 BCD
  12. Mobility Technologies Co., メーターとの通信 No パラメーター バイト数 型 備考 1

    パラメーター1 1 BCD 00︓営業状態A 01:営業状態B 02:営業状態C 03:営業状態D 04:営業状態E 05:− 06:− 07:営業状態F 08:営業状態G ※ビックエンディアン 2 パラメーター2 1 HEX 16進で8桁 3 パラメーター3 1 ASCII 7桁 番号 ※リトルエンディアン とある仕様書の例 ※ビッグエンディアン
  13. Mobility Technologies Co., ByteOrderとは︖ 0000_001 1 0000_001 1 0000_001 1

    0000_001 1 リトルエンディアン ビックエンディアン
  14. Mobility Technologies Co., 56 タクシー⾞内の機器(システム構成の⼀例) Wi-Fi Direct Taxi Meter Taxi

    Printer 後部座席 タブレット 乗務員端末 決済機 外部デバイス ⾞両信号 DRIVE CHART BLEロガー AWS IoT 4G
  15. WiFi Direct IP Header TCP Header TCP Payload IP Header

    TCP Header TCP Payload Socket TCP Payload
  16. Mobility Technologies Co., • Android的に新しい技術をどんどん取り⼊れるので ⾃然とスキルアップしていくよ(皆んな教えたがりだよ) • 専⽤のAndroid端末作っているよ ◦ 後席タブレット、乗務員タブレット、乗務員スマホ

    • 最近やった、普通のAndroidアプリではやらないことはな〜に︖ • アプリ統合の話 • PdM(プロダクトマネージャー)との関係性 ⾞載システムグループの推しポイント(TOP5)
  17. Mobility Technologies Co., • Android的に新しい技術をどんどん取り⼊れるので ⾃然とスキルアップしていくよ(皆んな教えたがりだよ) • 専⽤のAndroid端末作っているよ ◦ 後席タブレット、乗務員タブレット、乗務員スマホ

    • 最近やった、普通のAndroidアプリではやらないことはな〜に︖ • アプリ統合の話 • PdM(プロダクトマネージャー)との関係性 ⾞載システムグループの推しポイント(TOP5)
  18. Mobility Technologies Co., • Android的に新しい技術をどんどん取り⼊れるので ⾃然とスキルアップしていくよ(皆んな教えたがりだよ) • 専⽤のAndroid端末作っているよ ◦ 後席タブレット,

    乗務員タブレット, 乗務員スマホ • 最近やった、普通のAndroidアプリではやらないことはな〜に︖ • アプリ統合の話 • PdM(プロダクトマネージャー)との関係性 ⾞載システムグループの推しポイント(TOP5)