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
pixivアプリは変化する
Search
tatsubee
October 17, 2024
0
910
pixivアプリは変化する
tatsubee
October 17, 2024
Tweet
Share
More Decks by tatsubee
See All by tatsubee
マルチウィンドウ実践ガイド
shoryuyamamoto
0
160
Create Spatial Photo with ImagePresentationComponent
shoryuyamamoto
0
58
pixivのリアーキテクチャにおける The Composable Architecter活用
shoryuyamamoto
0
150
マルチウィンドウでアプリケーションの表現を拡張する
shoryuyamamoto
1
290
【After iOSDC LT Night〜ピクシブ×日経×タイミー〜】実装!Interactive Widgets
shoryuyamamoto
0
40
SwiftPM マルチモジュール構成への第一歩
shoryuyamamoto
0
2.7k
TCA with UIKit [TCAでわいわいLT会]
shoryuyamamoto
1
1.3k
Dart Macrosに願いを [YOUTRUST x ゆめみ Flutter LT会@渋谷 #4]
shoryuyamamoto
0
810
riverpodを理解したい
shoryuyamamoto
0
130
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
697
190k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Balancing Empowerment & Direction
lara
4
690
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
970
Building an army of robots
kneath
306
46k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
189
55k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Embracing the Ebb and Flow
colly
88
4.8k
Transcript
pixivアプリは 変化する tatsubee
pixiv事業本部アプリ部所属 23新卒 iOSエンジニア tatsubee
pixivアプリ
pixiv-ios: 2009/12/9 pixiv-android: 2010/7/9 ver1.0 リリース
2024/09/20現在 pixiv-ios: 7.20.18 pixiv-android: 6.124.0
ところで
pixiv Inc. pixiv-iosを 破壊したい @tatsubee
破壊すべきレガシー • iOS Deployment Target 13 • メンテナンスされていないライブラリへの依存 • 密結合な実装
• 可読性の低い独自実装
破壊すべきレガシー これらどうなった? • iOS Deployment Target 13 • メンテナンスされていないライブラリへの依存 •
密結合な実装 • 可読性の低い独自実装
課題: iOS Deployment Target 達成! 13 → 15 (最新は18) •
プロジェクトを進める上で、iOS 14以上にしないと困るこ とが判明 • iOSエンジニアとしては、iOS 15以上にして SwiftUIを十分に使いたい
課題: メンテナンスされていない ライブラリへの依存 進捗: 3 / 8 SwiftPMで管理できない or Privacy
Manifests要件で 怪しいライブラリは優先度高で置換実行! 解決法: 公式APIまたは別ライブラリへの置換
課題: メンテナンスされていない ライブラリへの依存 今後 • 新規実装では対象のライブラリは使用しない • Swift 6移行の中で困るものがあれば優先度を上げる 解決法:
公式APIまたは別ライブラリへの置換
課題: 密結合な実装 解決法: Swift PMによるマルチモジュール化 順調に進行中! • プロジェクト全体の単一モジュール化 Done! •
新規実装はモジュールとして作成 • 既存実装も徐々にモジュール分割
課題: 密結合な実装 解決法: Swift PMによるマルチモジュール化 順調に進行中! • プロジェクト全体の単一モジュール化 Done! •
新規実装はモジュールとして作成 • 既存実装も徐々にモジュール分割
課題: 密結合な実装 解決法: Swift PMによるマルチモジュール化 順調に進行中! • プロジェクト全体の単一モジュール化 Done! •
新規実装はモジュールとして作成 • 既存実装も徐々にモジュール分割
課題: 可読性の低い独自実装 解決法1: ライブラリの導入 • Networking: Alamofire • Cache: Kingfisher
• State Management: swift-composable-architecture
課題: 可読性の低い独自実装 解決法1: ライブラリの導入 • Networking: Alamofire • Cache: Kingfisher
• State Management: swift-composable-architecture
課題: 可読性の低い独自実装 解決法2: APIの最新化 事例:UITableView + 独自実装DataSource → UICollectionView +
Compositional Layout + Diffable Data Source
課題: 可読性の低い独自実装 解決法3: SwiftUIの利用
pixiv-iosの変化 • iOS Deployment Target 13 → 15 • メンテナンスされていないライブラリの置き換え
• Swift PM マルチモジュール化 • 可読性の低い独自実装の破壊
pixiv-iosの変化 • iOS Deployment Target 13 → 15 • メンテナンスされていないライブラリの置き換え
• Swift PM マルチモジュール化 • 可読性の低い独自実装の破壊 + • SwiftUIの導入 • CI/CDの改善 • MagicPodを使った自動テストの改善
pixivアプリは 変化し続ける