pixivアプリは変化する
by
tatsubee
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
pixivアプリは 変化する tatsubee
Slide 2
Slide 2 text
pixiv事業本部アプリ部所属 23新卒 iOSエンジニア tatsubee
Slide 3
Slide 3 text
pixivアプリ
Slide 4
Slide 4 text
pixiv-ios: 2009/12/9 pixiv-android: 2010/7/9 ver1.0 リリース
Slide 5
Slide 5 text
2024/09/20現在 pixiv-ios: 7.20.18 pixiv-android: 6.124.0
Slide 6
Slide 6 text
ところで
Slide 7
Slide 7 text
pixiv Inc. pixiv-iosを 破壊したい @tatsubee
Slide 8
Slide 8 text
破壊すべきレガシー ● iOS Deployment Target 13 ● メンテナンスされていないライブラリへの依存 ● 密結合な実装 ● 可読性の低い独自実装
Slide 9
Slide 9 text
破壊すべきレガシー これらどうなった? ● iOS Deployment Target 13 ● メンテナンスされていないライブラリへの依存 ● 密結合な実装 ● 可読性の低い独自実装
Slide 10
Slide 10 text
課題: iOS Deployment Target 達成! 13 → 15 (最新は18) ● プロジェクトを進める上で、iOS 14以上にしないと困るこ とが判明 ● iOSエンジニアとしては、iOS 15以上にして SwiftUIを十分に使いたい
Slide 11
Slide 11 text
課題: メンテナンスされていない ライブラリへの依存 進捗: 3 / 8 SwiftPMで管理できない or Privacy Manifests要件で 怪しいライブラリは優先度高で置換実行! 解決法: 公式APIまたは別ライブラリへの置換
Slide 12
Slide 12 text
課題: メンテナンスされていない ライブラリへの依存 今後 ● 新規実装では対象のライブラリは使用しない ● Swift 6移行の中で困るものがあれば優先度を上げる 解決法: 公式APIまたは別ライブラリへの置換
Slide 13
Slide 13 text
課題: 密結合な実装 解決法: Swift PMによるマルチモジュール化 順調に進行中! ● プロジェクト全体の単一モジュール化 Done! ● 新規実装はモジュールとして作成 ● 既存実装も徐々にモジュール分割
Slide 14
Slide 14 text
課題: 密結合な実装 解決法: Swift PMによるマルチモジュール化 順調に進行中! ● プロジェクト全体の単一モジュール化 Done! ● 新規実装はモジュールとして作成 ● 既存実装も徐々にモジュール分割
Slide 15
Slide 15 text
課題: 密結合な実装 解決法: Swift PMによるマルチモジュール化 順調に進行中! ● プロジェクト全体の単一モジュール化 Done! ● 新規実装はモジュールとして作成 ● 既存実装も徐々にモジュール分割
Slide 16
Slide 16 text
課題: 可読性の低い独自実装 解決法1: ライブラリの導入 ● Networking: Alamofire ● Cache: Kingfisher ● State Management: swift-composable-architecture
Slide 17
Slide 17 text
課題: 可読性の低い独自実装 解決法1: ライブラリの導入 ● Networking: Alamofire ● Cache: Kingfisher ● State Management: swift-composable-architecture
Slide 18
Slide 18 text
課題: 可読性の低い独自実装 解決法2: APIの最新化 事例:UITableView + 独自実装DataSource → UICollectionView + Compositional Layout + Diffable Data Source
Slide 19
Slide 19 text
課題: 可読性の低い独自実装 解決法3: SwiftUIの利用
Slide 20
Slide 20 text
pixiv-iosの変化 ● iOS Deployment Target 13 → 15 ● メンテナンスされていないライブラリの置き換え ● Swift PM マルチモジュール化 ● 可読性の低い独自実装の破壊
Slide 21
Slide 21 text
pixiv-iosの変化 ● iOS Deployment Target 13 → 15 ● メンテナンスされていないライブラリの置き換え ● Swift PM マルチモジュール化 ● 可読性の低い独自実装の破壊 + ● SwiftUIの導入 ● CI/CDの改善 ● MagicPodを使った自動テストの改善
Slide 22
Slide 22 text
pixivアプリは 変化し続ける