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
yukiasai
February 05, 2020
Technology
1.8k
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.7k
コードとIBをつなぐオレオレスタイルシステム
yukiasai
1
1.8k
For nested apps
yukiasai
0
160
Other Decks in Technology
See All in Technology
AIチャット検索改善の3週間
kworkdev
PRO
2
140
Agile and AI Redmine Japan 2026
hiranabe
3
330
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
540
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
420
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
110
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
150
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
120
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
440
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1.3k
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
280
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.6k
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
260
How to Talk to Developers About Accessibility
jct
2
240
How to build a perfect <img>
jonoalderson
1
5.7k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
sira's awesome portfolio website redesign presentation
elsirapls
0
280
Leo the Paperboy
mayatellez
7
1.8k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
The SEO Collaboration Effect
kristinabergwall1
1
490
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 モバイルチームの技術戦略