pixivアプリは変化する
by
tatsubee
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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アプリは 変化し続ける