Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
pixivアプリは変化する
Search
tatsubee
October 17, 2024
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
pixivアプリは変化する
tatsubee
October 17, 2024
More Decks by tatsubee
See All by tatsubee
マルチウィンドウ実践ガイド
shoryuyamamoto
0
380
Create Spatial Photo with ImagePresentationComponent
shoryuyamamoto
0
130
pixivのリアーキテクチャにおける The Composable Architecter活用
shoryuyamamoto
0
250
マルチウィンドウでアプリケーションの表現を拡張する
shoryuyamamoto
1
460
【After iOSDC LT Night〜ピクシブ×日経×タイミー〜】実装!Interactive Widgets
shoryuyamamoto
0
91
SwiftPM マルチモジュール構成への第一歩
shoryuyamamoto
0
3.5k
TCA with UIKit [TCAでわいわいLT会]
shoryuyamamoto
1
1.6k
Dart Macrosに願いを [YOUTRUST x ゆめみ Flutter LT会@渋谷 #4]
shoryuyamamoto
0
940
riverpodを理解したい
shoryuyamamoto
0
230
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Ruling the World: When Life Gets Gamed
codingconduct
0
440
エンジニアに許された特別な時間の終わり
watany
109
250k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Statistics for Hackers
jakevdp
799
230k
Faster Mobile Websites
deanohume
310
32k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
600
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Raft: Consensus for Rubyists
vanstee
143
7.9k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
610
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
300
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
510
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アプリは 変化し続ける