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

Multi Module Project at Merpay

takenach
March 27, 2019

Multi Module Project at Merpay

takenach

March 27, 2019
Tweet

More Decks by takenach

Other Decks in Technology

Transcript

  1. 職歴 アプリエンジニア 2009 年 1 月~2009 年 12 月 株式会社ナビタイムジャパン

    Androidエンジニア 2010 年 1 月~2018 年 4 月 株式会社ナビタイムジャパン Androidエンジニア 2018 年 5 月~現在 株式会社メルペイ 受託ソフトウェア開発 2003 年 4 月~2008 年 12 月 いろいろ作ってた
  2. Merpay Androidが目指したプロジェクト構成 • プロジェクトは、アトミックで再利用可能なユニット(≒モジュール) の集合である こと • プロジェクトがスケールし、エンジニアが “どれだけ” 増えても、全員が気持ちよく

    担当機能開発に集中できる構成であること • (メルペイ機能を) 利用する側(=メルカリ) が必要とする機能のみをフレキシブル に機能提供できること Favor Modularization
  3. Featureモジュール内の tree(イメージ) • feature/nfc/provisioning ◦ ProvisioningAction.kt ◦ ProvisioningContract.kt ◦ ProvisioningController.kt ←

    Viewの更新をしてる ◦ ProvisioningReducer.kt ◦ ProvisioningState.kt ← data class ◦ ProvisioningViewModel.kt ← Storeを持っている Emphasize State Mutation
  4. 現状の課題 • “利用する側(=メルカリ) が必要とする機能のみをフレキシブルに機能提供でき ること” が実現できていない ◦ SDKが持つ Feature 間の遷移処理と各

    Feature モジュールの依存が高く、 個々の切り離しが難しい状態になっている • Feature 間の遷移処理部が “賢く” なってしまっている • “common.android” “common.ui” などの共通コンポーネントが 整理できていない