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

少人数チームにおける複数アプリの継続的デリバリー_Yoshihiro Tanaka

少人数チームにおける複数アプリの継続的デリバリー_Yoshihiro Tanaka

【Flutter特集】Flutter開発の裏側〜各社が向き合う課題と挑戦〜 ( https://findy.connpass.com/event/370621/ )の登壇資料です。

Transcript

  1. • いくつかの app と backend を管理するのが主な役割 ◦ UPSIDER ◦ PRESIDENT

    CARD ◦ Mobile backend ◦ 今後は White label apps も展開 • App team ⾃⾝でも計測や評価を⾏い、機能を設計している • ⼀部 QA の設計や実施も担っている
  2. • Engineer 3 名 • 全員が Android / iOS /

    backend を実装する体制 ◦ Flutter app なので実装コストが⽐較的低い ◦ Backend は Go なのでこちらも学習‧実装コストが抑えられる ◦ 仕様は基本的に全員が把握‧共有する
  3. • UPSIDER app と PRESIDENT CARD app には重複した機能 が多い •

    ⼀⽅で、それぞれ個別の機能も存在する • A に⼊った機能や修正は B にも⼊れたい
  4. Repository • 数ヶ⽉前に monorepo に変更した • 今までは App, package 別の

    repository で管理していたが… ◦ 別の app に機能を持ってくるのが⾯倒 ◦ 修正を⽚⽅に反映するのを忘れる ◦ CI/CD 上での private package の管理が煩雑
  5. App packages UPSIDER PRESIDENT CARD Shared Package C apps UPSIDER

    PRESIDENT CARD Shared Package A Package B After
  6. Development • Pub workspaces を使⽤して管理 • 共通機能に関しては shared 配下の package

    に順次切り出す • Apps 配下の shared ◦ まだ package に切り出せていないもの ◦ CI/CD 関連の共通のもの
  7. CI/CD • それぞれの directory の変更に応じて lint などを実⾏する ◦ Package /

    Shared が変更された場合はそれぞれが⾛るように
  8. CI/CD • Release 時は namespace で release branch を切り分けて それぞれ

    QA 向け、Prod 向けの準備をする ◦ E.g. releases/upsider/v1.0.0
  9. Cons • リリースでどのような差分が⼊ったか把握す るのが難しい ◦ Devin などを活⽤して markdown 形式で書き出させ ている

    • Devin などの⾃⽴型 AI agent に repository の構成を教えたり、workspace の setup を ⼯夫する必要がある