Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
pixivアプリは変化する
Search
tatsubee
October 17, 2024
0
950
pixivアプリは変化する
tatsubee
October 17, 2024
Tweet
Share
More Decks by tatsubee
See All by tatsubee
マルチウィンドウ実践ガイド
shoryuyamamoto
0
200
Create Spatial Photo with ImagePresentationComponent
shoryuyamamoto
0
69
pixivのリアーキテクチャにおける The Composable Architecter活用
shoryuyamamoto
0
160
マルチウィンドウでアプリケーションの表現を拡張する
shoryuyamamoto
1
310
【After iOSDC LT Night〜ピクシブ×日経×タイミー〜】実装!Interactive Widgets
shoryuyamamoto
0
45
SwiftPM マルチモジュール構成への第一歩
shoryuyamamoto
0
2.8k
TCA with UIKit [TCAでわいわいLT会]
shoryuyamamoto
1
1.3k
Dart Macrosに願いを [YOUTRUST x ゆめみ Flutter LT会@渋谷 #4]
shoryuyamamoto
0
830
riverpodを理解したい
shoryuyamamoto
0
140
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Building Applications with DynamoDB
mza
96
6.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Practical Orchestrator
shlominoach
190
11k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Designing Experiences People Love
moore
142
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Music & Morning Musume
bryan
46
7k
Unsuck your backbone
ammeep
671
58k
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アプリは 変化し続ける