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.2k
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
350
Create Spatial Photo with ImagePresentationComponent
shoryuyamamoto
0
120
pixivのリアーキテクチャにおける The Composable Architecter活用
shoryuyamamoto
0
240
マルチウィンドウでアプリケーションの表現を拡張する
shoryuyamamoto
1
450
【After iOSDC LT Night〜ピクシブ×日経×タイミー〜】実装!Interactive Widgets
shoryuyamamoto
0
86
SwiftPM マルチモジュール構成への第一歩
shoryuyamamoto
0
3.4k
TCA with UIKit [TCAでわいわいLT会]
shoryuyamamoto
1
1.5k
Dart Macrosに願いを [YOUTRUST x ゆめみ Flutter LT会@渋谷 #4]
shoryuyamamoto
0
930
riverpodを理解したい
shoryuyamamoto
0
220
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
780
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
Chasing Engaging Ingredients in Design
codingconduct
0
340
New Earth Scene 8
popppiees
4
2.6k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
Tell your own story through comics
letsgokoyo
1
1.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
WCS-LA-2024
lcolladotor
0
840
Making Projects Easy
brettharned
120
6.8k
A Modern Web Designer's Workflow
chriscoyier
699
190k
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アプリは 変化し続ける