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
スタディサプリENGLISH_モバイルチームの技術戦略.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yukiasai
February 05, 2020
Technology
1.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スタディサプリENGLISH_モバイルチームの技術戦略.pdf
yukiasai
February 05, 2020
More Decks by yukiasai
See All by yukiasai
Swift in my home
yukiasai
1
1.1k
家庭内Slack導入までのお話
yukiasai
1
3k
ReactNative+GraphQLでなんか作る
yukiasai
1
1.3k
20170327_fastlane_jp_2.pdf
yukiasai
0
1.8k
コードとIBをつなぐオレオレスタイルシステム
yukiasai
1
1.8k
For nested apps
yukiasai
0
160
Other Decks in Technology
See All in Technology
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
3.7k
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
380
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
3.6k
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
3.4k
Databricks 生成AIガバナンス実践ワークショップ / LLMOps-workshop
databricksjapan
0
100
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
240
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
160
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
230
ゼロをイチにする仕事が終わったあと
smasato
0
340
Claude Code公式skillで 自分の仕事を少しずつ手放そう!(Claude Code開発ノウハウ大公開スペシャル by クラスメソッド)
kaym
1
310
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
0
180
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
1
370
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
170
The Cost Of JavaScript in 2023
addyosmani
55
10k
Typedesign – Prime Four
hannesfritz
42
3.1k
ラッコキーワード サービス紹介資料
rakko
1
3.9M
The Spectacular Lies of Maps
axbom
PRO
1
850
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Music & Morning Musume
bryan
47
7.3k
Optimising Largest Contentful Paint
csswizardry
37
3.8k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
Transcript
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 スタディサプリENGLISH モバイルチームの技術戦略 @yukiasai Study Sapuri/Quipper Product Meetup
#4
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 Agenda | 01 02 03 04 05
About me サービスとエンジニア組織の成長 これまでの技術戦略 これからの技術戦略 まとめ 2 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 About me 01 3 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 @yukiasai / 浅井勇樹 4 ➔ Engineering Manager
◆ スタディサプリ ENGLISH モバイルチーム ➔ 2017年3月〜 ◆ iOS Engineer ◆ Project Manager ◆ Engineering Manager スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 サービスとエンジニア組織の成長 01 5 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 サービスの一覧 6 ➔ 2015年 ◆ 日常英会話コース ➔
2017年 ◆ TOEIC®L&R TEST対策コース • パーソナルコーチプラン ◆ 苦手克服トレーニング ➔ 2019年 ◆ 英語4技能コース ◆ ビジネス英語コース ◆ 新日常英会話コース スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 エンジニア組織の成長 7 エンジニア数 約10人 約20人 37人(業務委託含み) -
iOS: 8名 - Android: 6名 - Web Frontend: 5名 - Server: 13名 - SRE: 5名 ➔ 2015年 ◆ 日常英会話コース ➔ 2017年 ◆ TOEIC®L&R TEST対策コース • パーソナルコーチプラン ◆ 苦手克服トレーニング ➔ 2019年 ◆ 英語4技能コース ◆ ビジネス英語コース ◆ 新日常英会話コース スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 これまでの技術戦略 02 8 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 ➔ 2015年 ◆ 日常英会話コース ➔ 2017年 ◆
TOEIC®L&R TEST対策コース • パーソナルコーチプラン ◆ 苦手克服トレーニング ➔ 2019年 ◆ 英語4技能コース ◆ ビジネス英語コース ◆ 新日常英会話コース これまでの技術戦略 9 英語学習の共通基盤(ECP基盤) スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 ECP基盤 10 日常英会話 TOEIC®L&R TEST対策 ビジネス英語 スタディサプリENGLISH
モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 TOEIC ビジネス英語 新日常英会話 ECP基盤 11 Apps ECP基盤
Server ・ ・ ・ ECP基盤 DB 学習コンテンツ 学習履歴 アカウント コースID 課金 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 これまでの技術戦略 12 ➔ ECP基盤 ◆ 英語学習の目的別にサービスを横展開する •
汎用的な英語学習のトレーニングを実装 • アカウント種別、課金体系などが存在 • → 汎用的な設計 ◆ 横展開したサービスを長期運用する • 共通基盤に対してプロダクト改善を実施 • → 変更に強くテスタビリティの高い堅牢な設計 ◆ 事業の拡大を加速する • 必然的に開発組織も拡大 • → チーム開発を強く意識したコードの責務が明確な設計 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 これまでの技術選定 13 ➔ ECP基盤 ◆ 2017年 •
Clean Architecture • iOS: Swift, RxSwift, Swinject, Code for UI, Screenshot tests… • Android: Java, RxJava, Dagger... ◆ 2020年現在 • iOS: iOS 11以降対応 (2 ver), Swift, Xcode (Latest), Color set (xcasset)... • Android: Kotlin化, Jetpack, Re-architecture スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 汎用性、堅牢さを重視 14 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 一方で負債も溜まっていく 15 ➔ 規模の拡大によりメンテナンス性、開発効率が低下している ◆ ビルド時間の増大 ◆
コードでのUI記述が複雑化 ◆ 依存関係の解決が複雑化 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 これからの技術戦略 03 16 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 これからの技術戦略 17 ➔ プロダクト、事業全体としての方向性 ◆ 学習体験の向上、品質の改善、技術負債の解消 ◆
より多くのエンハンス案件を実施していく ◆ 不具合の発生件数を減らしていく ◆ → メンテナンス性、開発効率の高い設計 ➔ モバイルチームの戦略 ◆ Re-Architecture ◆ iOS: Module分割、SwiftUI導入 (Combine導入) ◆ Android: DI改善、Jetpack compose導入 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 ここからiOSの話 18 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 SwiftUI導入 19 ➔ SwiftUIを導入するモチベーション ◆ コード or
xibでのUI実装よりもよりメンテナンス性、開発効率の点で優れて いる ◆ 将来のスタンダードになりえる技術 ➔ 今始めるモチベーション ◆ 2年弱でECP基盤への導入 ◆ 組織としてナレッジを蓄積 ◆ 既存の資産を再利用可能、UIKitとの共存や巻き戻しが容易 ➔ どう進めるか ◆ 小さいところから導入し将来のRe-Architectureの基礎を構築、移行 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 SwiftUI導入 小さく始める 20 ➔ TOEIC®L&R TEST対策コース パーソナルコーチプラン
◆ コーチとチャットや通話 ◆ コーチに日々の学習を報告 ◆ 学習者の学習履歴を共有 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 SwiftUI導入 小さく始める 21 TOEIC®L&R TEST対策 コーチ業務アプリ スタディサプリENGLISH
モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 Module分割〜SwiftUI導入 22 ➔ ECP基盤のModule分割 ◆ API、UIなど再利用可能なものを分割 ◆
機能ごとに分解 ➔ コーチ業務アプリのRe-Architecture、SwiftUI導入 ◆ ECP基盤で分割したModuleを再利用 ◆ UIの記述を再利用可能な形でSwiftUIで実装 ◆ SwiftUIに親和性の高いArchitectureの基礎を構築 ➔ ECP基盤のRe-Architecture、SwiftUI導入(2年弱後) ◆ 機能ごとに移行 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 設計開始、着手中 23 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 メンテナンス性、開発効率の高い 新技術への移行を早期に検討 24 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 まとめ 04 25 スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 まとめ 26 ➔ これまで ◆ ECP基盤を中心に磨き込み、事業拡大に貢献してきた ◆
汎用的、堅牢な設計を優先してきた ➔ これから ◆ 学習体験の向上、品質の向上、技術負債の解消を行っていく ◆ メンテナンス性、開発効率の高いアーキテクチャへ進化させる ◆ 小さく始めて数年かけて移行プランを実行していく ◆ 技術的に面白いことにも取り組める! スタディサプリENGLISH モバイルチームの技術戦略
#sapurimeetup スタディサプリENGLISH モバイルチームの技術戦略 ご清聴ありがとうございました 27 スタディサプリENGLISH モバイルチームの技術戦略