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
600
0
Share
サロンアプリの技術的負債解消への取り組み
価値提供スピードを上げるための技術的負債への向き合い方
https://dmm.connpass.com/event/284374/
K-Torishima
June 08, 2023
More Decks by K-Torishima
See All by K-Torishima
DMM.Swift #1 詳解 ViewModifier
k_torishima
2
880
Human Interface Guidelinesから読み解く標準アプリの素晴らしい体験
k_torishima
0
4.1k
Other Decks in Programming
See All in Programming
Moments When Things Go Wrong
aurimas
3
130
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
770
New "Type" system on PicoRuby
pocke
1
410
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
300
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
430
関係性から理解する"同一性"の型用語たち
pvcresin
2
620
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
1.9k
さぁV100、メモリをお食べ・・・
nilpe
0
120
Lessons from Spec-Driven Development
simas
PRO
0
110
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
350
Oxcを導入して開発体験が向上した話
yug1224
4
270
Oxlintのカスタムルールの現況
syumai
5
930
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.3k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Statistics for Hackers
jakevdp
799
230k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
GraphQLとの向き合い方2022年版
quramy
50
15k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
First, design no harm
axbom
PRO
2
1.2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Being A Developer After 40
akosma
91
590k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
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 ありがとうございました