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

Taxi App GO Fast development

hexarf
August 10, 2022

Taxi App GO Fast development

hexarf

August 10, 2022
Tweet

More Decks by hexarf

Other Decks in Programming

Transcript

  1. Mobility Technologies Co., Ltd. 2 パク ビョンジュン(Byungjun, Park) 出身地 :

    韓国(大邱) 現在: 横浜 iOSエンジニアとして 2015~2019 Fintech系サービス開発 2019~ Mobility Technologies Side project: React native 趣味: サイクリング・ランニング、旅行、レトロ ゲーム 自己紹介
  2. Mobility Technologies Co., Ltd. 2020年、統合直後の当時のiOSエンジニア数 MOV 4人、JapanTaxi 4人 => 合計8人体制

    => ということはもしかして開発速度2倍(?) 開発チームのスケールアップ 3
  3. Mobility Technologies Co., Ltd. ▪ ルーティングの細分化 ▪ SPAに近いUIなので、コンポーネントで分割して利用できる ▪ テスタビリティの向上

    ▪ Interactorにすべてのビジネスロジックがあるので、Unit Testがしやすい ▪ DIが容易 ▪ 複雑度の高い箇所のリファクタリング ▪ MVVMなどはView単位のコンポーネント分解になるが、RIBsはロジック単位でコン ポーネント分解できるため、細かくコンポーネント分解ができる ▪ 責務の明確化、実装の統一化 ▪ ロジック単位で分割できるため、責務を明確化することができる。 RIBsを選んだ理由 9
  4. Mobility Technologies Co., Ltd. ▪ クリーンビルドを高速化 ▪ PodBuilder(https://github.com/Subito-it/PodBuilder)を導入して、CocoaPodsのバ イナリーをキャッシュする ※

    CocoaPodsのFrameworkをprebuildし保持させxcodebuild時にビルド済みのを 利用させる => 導入済み ▪ 差分ビルドを高速化 ▪ マルチモジュール => 現在進行系 ビルド時間の増加の問題に対する解決策 12
  5. Mobility Technologies Co., Ltd. マルチモジュール化 STEP1 - Doing 13 GO

    App Core GOUIKit Utility Resources APIClient 共通View component Repository, Model SwiftUI/UIView
  6. Mobility Technologies Co., Ltd. Feature3 マルチモジュール化 STEP2 - Todo 14

    GO App Core GOUIKit Utility Resources Feature1 LoggedIn GOPay History LoggedOut Feature単位でのモジュール定義と開発 Feature2
  7. Mobility Technologies Co., Ltd. Tuistとは 17 project.ymlではなくProject.swift XcodeGenのようにproject生成道具 ・XcodeGenのようコマンドラインで xcodeprojを作ってmerge

    時のconflictを回避 ・設定が簡単 ・再利用性が高い ・プロジェクトキャッシング ・依存関係のビジュアル化 https://tuist.io/ ・最大のメリットはswift言語によるproject設定の定義
  8. Mobility Technologies Co., Ltd. XcodeGen vs Tuist 20 ・一番使われてる道具なので問題が起きた時の対 策がある可能性が高い

    ・キャッシュ機能が弱い ・yml… ・Swiftで書く、読む ・Targetキャッシュ機能が豊富 ・そもそもの設定項目が多い ・まだ利用事例が少ない
  9. Mobility Technologies Co., Ltd. iOSDC 2021 大規模リファクタリングの極意 https://fortee.jp/iosdc-japan-2021/proposal/589c4329-022b-47c9-b8ea-b913eacf831b RIBs アーキテクチャにおける木構造の再構築について

    https://lab.mo-t.com/blog/ribs-workflow iOS アプリにおけるアーキテクチャの部分適用について https://lab.mo-t.com/blog/ribs-in-part iOS アプリを木構造で組み立てるための 7 つのデザインパターン https://lab.mo-t.com/blog/ribs-architecture-design-patterns iOSアプリでビジネスロジックの肥大化を回避するコツ! https://lab.mo-t.com/blog/ios-tips-logic-bloat GOのRIBsアーキテクチャ採用とリファクタリング 24