Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サロンアプリの技術的負債解消への取り組み
Search
K-Torishima
June 08, 2023
Programming
0
390
サロンアプリの技術的負債解消への取り組み
価値提供スピードを上げるための技術的負債への向き合い方
https://dmm.connpass.com/event/284374/
K-Torishima
June 08, 2023
Tweet
Share
More Decks by K-Torishima
See All by K-Torishima
DMM.Swift #1 詳解 ViewModifier
k_torishima
2
610
Human Interface Guidelinesから読み解く標準アプリの素晴らしい体験
k_torishima
0
3.3k
Other Decks in Programming
See All in Programming
Kotlin 2.0 and Beyond
antonarhipov
2
150
Why Prism?
kddnewton
4
1.7k
Our Websites Need a Lifestyle Change, Not a Diet
ryantownsend
0
150
メモリ最適化を究める!iOSアプリ開発における5つの重要なポイント
yhirakawa333
0
420
『ドメイン駆動設計をはじめよう』中核の業務領域
masuda220
PRO
5
1k
Increased Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
400
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
200
AndroidアプリのUIバリエーションをあの手この手で確認する / Check UI variations of Android apps by various means
tkmnzm
1
190
エンジニア1年目で複雑なコードの改善に取り組んだ話
mtnmr
3
2k
Scala におけるコンパイラエラーとの付き合い方
chencmd
2
430
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
250
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
670
Featured
See All Featured
Designing for Performance
lara
604
68k
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
A designer walks into a library…
pauljervisheath
201
24k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
Code Review Best Practice
trishagee
62
16k
Making Projects Easy
brettharned
113
5.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
120
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
89
16k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
5
480
Transcript
© DMM サロンアプリの技術的負債解 消への取り組み オンラインサロン事業部 鳥嶋 晃次
© DMM 自己紹介 鳥嶋 晃次 DMM.com イノベーション本部 オンラインサロン事業部 プロダクト開発チーム 2022年
合同会社DMM.com 中途入社 DMM歴半年たちました。 GitHub:K-Torishima Twitter:@k_torishima 2
© DMM アジェンダ 1. オンラインサロンアプリにおける技術的負債 2. これまでの取り組み 3. 負債と向き合うための取り組み 4.
現在の取り組みと未来の話 5. まとめ 3
© DMM 4 1. オンラインサロンアプリにおける技術的負債
© 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
© DMM 2. これまでの取り組み 6
© DMM ReactNativeからSwiftに移行を進める 1. Swiftで開発できるようにするための環境構築 • ビルド環境の整備 • ReactNative側の整備など 2.
Swift化基盤を作る • アーキテクチャの選定、 DMM社内推奨アーキテクチャである VIPERの採用 • マルチモジュール化で依存関係を縛る • ReactNativeとSwift間でのやりとりの構築 3. 段階的にSwift化する • 影響範囲少ない末端の画面から Swift化 • 新規機能実装時はSwiftで実装 7
© DMM 直近の取り組み 1. SwiftUIの積極的な採用 • Viewの構築 • Componentsなどの構築 •
新規機能における画面実装など 2. Swift化の初期段階で生んでしまった負債のリファクタリング • ViewControllerに責務を置いていた Viewの振る舞いに関するコードを SwiftUIに寄せる • ライブラリアップデートや、 Cocoapodsを脱却しSPMに移行 • なかなか手のつけられていなかった開発環境に関する細かなメンテナンスや CIのメンテナンスなど 8
© DMM 9 3. 負債と向き合うための取り組み
© DMM 開発チームでの取り組み • Human Interface Guidelines輪読会の実施 iOSアプリ開発に関わるメンバーでの共通認識を持ち、 Swift化を進めていく上でより iOSアプリらしいUI、UXを提供
できるような取り組みを実施しました 輪読会を行ったことによって、 デザインレビュー時にエンジニア・デザイナー間で、共通の言語で根拠ある議論 (HIGを引用したりなど)をしやすくなり ました 10
© DMM iOSメンバーでの取り組み 1. iOSメンバーでのMTGの実施 • 隔週でiOSメンバーでのMTGを実施し、技術的にどんな課題があるかや、他社の事例紹介、競合、類 似アプリの調査など積極的に改善策をあげてチームでの意識を高める取り組みを行なっています 2. 事業部全体への展開
• 開発チーム内だけでなく事業部への共有をスプリントレビューで共有し、現在どんなことをやっている かなどを事業部全体に展開しております • 改善系のタスクは成果が見えにくいところがあるので開発者側から積極的に共有していくことを意識し て取り組んでいます 11
© DMM 12 4. 現在の取り組みと未来の話
© DMM 現在 1. Swift化に向けてた取り組み • ReactNativeのコードが存在しない Swift製のリファレンスアプリを作成 • Swift
Concurrencyの対応 • SPM化 • OSのサポートをiOS16以上を前提とし、SwiftUIベースのアーキテクチャの選定 • よりスピーディーに機能をデリバリーできるようにするための UI構築基盤設計 2. 分析など • GA4をフル活用できるようにするためのデータ分析基盤設 計 3. 改善タスク • 既存機能で改修が必要な箇所 の洗い出し、UIの見直しなど • 仕様の再定義 13
© DMM 未来 • ReactNativeがプロダクトコードからなくなりiOSエンジニアの本領が発揮できる環境になり 爆速開 発できるようになる • 継続的に安定した品質を保ちアプリ開発ができる基盤が形成される •
アプリのデータ分析基盤が構築され、よりデータに基づいた施策が実施できるようになる • 新規機能がより開発しやすくなり、今まで以上に事業施策にコミットできるようになる • テストコードの充実 • iOSエンジニアを採用しやすい環境となる 14 明るい未来が待っています!!!
© DMM まとめ • 技術負債への向き合い方は色々ある • チームで共通認識を持つことは非常に大事 • 決してReactNativeという技術は負債ではない •
負債はその時その時の状況で変わるので柔軟に対応するべき • 組織に共有することは非常に大切、知ってもらうために技術者から発信する • 楽しんでやった方がより良いものづくりになります 15
© DMM 16 ありがとうございました