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
780
pixivアプリは変化する
tatsubee
October 17, 2024
Tweet
Share
More Decks by tatsubee
See All by tatsubee
pixivのリアーキテクチャにおける The Composable Architecter活用
shoryuyamamoto
0
130
マルチウィンドウでアプリケーションの表現を拡張する
shoryuyamamoto
1
250
【After iOSDC LT Night〜ピクシブ×日経×タイミー〜】実装!Interactive Widgets
shoryuyamamoto
0
28
SwiftPM マルチモジュール構成への第一歩
shoryuyamamoto
0
2.6k
TCA with UIKit [TCAでわいわいLT会]
shoryuyamamoto
1
1.1k
Dart Macrosに願いを [YOUTRUST x ゆめみ Flutter LT会@渋谷 #4]
shoryuyamamoto
0
770
riverpodを理解したい
shoryuyamamoto
0
110
pixiv-iosを破壊したい #pixivmeetup
shoryuyamamoto
0
1.6k
キャッチアップ!The Composable Architecture
shoryuyamamoto
2
410
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
299
21k
YesSQL, Process and Tooling at Scale
rocio
173
14k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Designing for Performance
lara
609
69k
Navigating Team Friction
lara
187
15k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Docker and Python
trallard
44
3.4k
Building Applications with DynamoDB
mza
95
6.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
RailsConf 2023
tenderlove
30
1.1k
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アプリは 変化し続ける