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

サロンアプリの技術的負債解消への取り組み

 サロンアプリの技術的負債解消への取り組み

価値提供スピードを上げるための技術的負債への向き合い方
https://dmm.connpass.com/event/284374/

K-Torishima

June 08, 2023
Tweet

More Decks by K-Torishima

Other Decks in Programming

Transcript

  1. © DMM
    サロンアプリの技術的負債解
    消への取り組み
    オンラインサロン事業部 鳥嶋 晃次

    View Slide

  2. © DMM
    自己紹介
    鳥嶋 晃次
    DMM.com イノベーション本部
    オンラインサロン事業部 プロダクト開発チーム
    2022年 合同会社DMM.com 中途入社 DMM歴半年たちました。
    GitHub:K-Torishima
    Twitter:@k_torishima
    2

    View Slide

  3. © DMM
    アジェンダ
    1. オンラインサロンアプリにおける技術的負債
    2. これまでの取り組み
    3. 負債と向き合うための取り組み
    4. 現在の取り組みと未来の話
    5. まとめ
    3

    View Slide

  4. © DMM
    4
    1. オンラインサロンアプリにおける技術的負債

    View Slide

  5. © DMM
    ReactNativeによる技術的負債
    歴史的背景によりReactNativeを採用し開発を行っていたが、現状のチームでは ReactNativeで開発するメリットが
    少ないと感じていた
    今後もReactNativeで開発を継続していくと、ビジネス面、開発面、採用面などへのデメリットが多くなってきてしまう
    (決してReactNativeが悪いとかではないです)
    5
    過去のスライドはこちら
    https://speakerdeck.com/roana0229/dmmonrainsaronapurifalsereactnative-nil-swifthua-hefalsedao-falseri
    https://speakerdeck.com/hayatan/reactnative-falseahuriwo-swift-nizhi-kihuan-etemasu

    View Slide

  6. © DMM
    2. これまでの取り組み
    6

    View Slide

  7. © DMM
    ReactNativeからSwiftに移行を進める
    1. Swiftで開発できるようにするための環境構築
    • ビルド環境の整備
    • ReactNative側の整備など
    2. Swift化基盤を作る
    • アーキテクチャの選定、 DMM社内推奨アーキテクチャである VIPERの採用
    • マルチモジュール化で依存関係を縛る
    • ReactNativeとSwift間でのやりとりの構築
    3. 段階的にSwift化する
    • 影響範囲少ない末端の画面から Swift化
    • 新規機能実装時はSwiftで実装
    7

    View Slide

  8. © DMM
    直近の取り組み
    1. SwiftUIの積極的な採用
    • Viewの構築
    • Componentsなどの構築
    • 新規機能における画面実装など
    2. Swift化の初期段階で生んでしまった負債のリファクタリング
    • ViewControllerに責務を置いていた Viewの振る舞いに関するコードを SwiftUIに寄せる
    • ライブラリアップデートや、 Cocoapodsを脱却しSPMに移行
    • なかなか手のつけられていなかった開発環境に関する細かなメンテナンスや CIのメンテナンスなど
    8

    View Slide

  9. © DMM
    9
    3. 負債と向き合うための取り組み

    View Slide

  10. © DMM
    開発チームでの取り組み
    • Human Interface Guidelines輪読会の実施
    iOSアプリ開発に関わるメンバーでの共通認識を持ち、 Swift化を進めていく上でより iOSアプリらしいUI、UXを提供
    できるような取り組みを実施しました
    輪読会を行ったことによって、 デザインレビュー時にエンジニア・デザイナー間で、共通の言語で根拠ある議論
    (HIGを引用したりなど)をしやすくなり ました
    10

    View Slide

  11. © DMM
    iOSメンバーでの取り組み
    1. iOSメンバーでのMTGの実施
    • 隔週でiOSメンバーでのMTGを実施し、技術的にどんな課題があるかや、他社の事例紹介、競合、類
    似アプリの調査など積極的に改善策をあげてチームでの意識を高める取り組みを行なっています
    2. 事業部全体への展開
    • 開発チーム内だけでなく事業部への共有をスプリントレビューで共有し、現在どんなことをやっている
    かなどを事業部全体に展開しております
    • 改善系のタスクは成果が見えにくいところがあるので開発者側から積極的に共有していくことを意識し
    て取り組んでいます
    11

    View Slide

  12. © DMM
    12
    4. 現在の取り組みと未来の話

    View Slide

  13. © DMM
    現在
    1. Swift化に向けてた取り組み
    • ReactNativeのコードが存在しない Swift製のリファレンスアプリを作成
    • Swift Concurrencyの対応
    • SPM化
    • OSのサポートをiOS16以上を前提とし、SwiftUIベースのアーキテクチャの選定
    • よりスピーディーに機能をデリバリーできるようにするための UI構築基盤設計
    2. 分析など
    • GA4をフル活用できるようにするためのデータ分析基盤設 計
    3. 改善タスク
    • 既存機能で改修が必要な箇所 の洗い出し、UIの見直しなど
    • 仕様の再定義
    13

    View Slide

  14. © DMM
    未来
    • ReactNativeがプロダクトコードからなくなりiOSエンジニアの本領が発揮できる環境になり
    爆速開
    発できるようになる
    • 継続的に安定した品質を保ちアプリ開発ができる基盤が形成される
    • アプリのデータ分析基盤が構築され、よりデータに基づいた施策が実施できるようになる
    • 新規機能がより開発しやすくなり、今まで以上に事業施策にコミットできるようになる
    • テストコードの充実
    • iOSエンジニアを採用しやすい環境となる
    14
    明るい未来が待っています!!!

    View Slide

  15. © DMM
    まとめ
    • 技術負債への向き合い方は色々ある
    • チームで共通認識を持つことは非常に大事
    • 決してReactNativeという技術は負債ではない
    • 負債はその時その時の状況で変わるので柔軟に対応するべき
    • 組織に共有することは非常に大切、知ってもらうために技術者から発信する
    • 楽しんでやった方がより良いものづくりになります
    15

    View Slide

  16. © DMM
    16
    ありがとうございました

    View Slide