pixiv-iosを破壊したい #pixivmeetup
by
tatsubee
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
pixiv Inc. pixiv-iosを 破壊したい @tatsubee
Slide 2
Slide 2 text
Profile tatsubee pixiv事業本部 pixiv運営本部 AEチーム 23新卒iOSエンジニア pixivアプリ中毒者 好きな落語は「笠碁」
Slide 3
Slide 3 text
pixivってアプリあるんですか?
Slide 4
Slide 4 text
あります
Slide 5
Slide 5 text
pixiv-ios 2013/3/19 フルリニューアル 2009/12/9 ver1.0リリース🎉
Slide 6
Slide 6 text
pixiv-ios 2023/9/29 ver7.16.16公開中
Slide 7
Slide 7 text
pixiv-android
Slide 8
Slide 8 text
pixivのiOSアプリってもう やることないんじゃないですか?
Slide 9
Slide 9 text
めっっっちゃあります!
Slide 10
Slide 10 text
pixiv-iosの課題
Slide 11
Slide 11 text
pixiv-iosの課題 Webではできるが、アプリだとできないことが... ● 投稿作品の編集 ● と の推し分け ● マイピク申請/メッセージのやり取り などなど 機能の話
Slide 12
Slide 12 text
pixiv-iosの課題 ● 密結合で、変更の影響範囲が大きくなりやすい ● メンテナンスされていないライブラリに依存している ● 独自実装が複雑になってしまい読みにくい ● iOS 13がまだ切れておらず、最新の技術を使いにくい コードの話
Slide 13
Slide 13 text
pixiv-iosの課題 そもそもiOSエンジニアが少ない → 新しいiOSエンジニアを雇いたい → pixivが複雑なため、高い技術力がないと採用できない → iOSエンジニアが少ない 人間の話
Slide 14
Slide 14 text
pixiv-iosの課題 iOSエンジニアが少ない 人間の話 iOSエンジニアを 雇いたい 高い技術力がないと 採用できない 無限ループ!
Slide 15
Slide 15 text
ループを断ち切るために レガシーを破壊する
Slide 16
Slide 16 text
破壊すべきレガシーの確認 ● 密結合な実装 ● メンテナンスされていないライブラリへの依存 ● 可読性の低い独自実装 ● iOS Deployment Targetが13
Slide 17
Slide 17 text
破壊するための施策 (フィードバックください)
Slide 18
Slide 18 text
破壊するための施策 まずは毎週木曜日を内部品質改善の日にした コード改善はドメイン単位で見れば優先度が落ちてしまう → 必ず改善作業をする日を作った 解決法
Slide 19
Slide 19 text
破壊するための施策 課題: iOS 13が切れていない 解決法
Slide 20
Slide 20 text
破壊するための施策 課題: iOS 13が切れていない 解決法: 切る iOS 13のユーザーも極力使える状況は整える 解決法
Slide 21
Slide 21 text
破壊するための施策 課題: 密結合な実装 解決法
Slide 22
Slide 22 text
破壊するための施策 課題: 密結合な実装 解決法: SwiftPackageManagerマルチモジュール化 一緒にリアーキテクチャもやっちゃおう 解決法
Slide 23
Slide 23 text
破壊するための施策 課題: 影響範囲が大きい 解決法
Slide 24
Slide 24 text
破壊するための施策 課題: 影響範囲が大きい 解決法: MagicPodを使ったUIテスト自動化 人間の手による検証を減らすことで信頼性⤴ & レビューの手間を減らしてMergeガンガン行こうぜ! 解決法
Slide 25
Slide 25 text
破壊するための施策 課題: 可読性の低い独自実装 解決法
Slide 26
Slide 26 text
破壊するための施策 課題: 可読性の低い独自実装 解決法: 公式、サードパーティ製のライブラリへ置換 Swift Concurrencyの導入 解決法
Slide 27
Slide 27 text
破壊するための施策 課題: メンテナンスされていないライブラリへの依存 解決法
Slide 28
Slide 28 text
破壊するための施策 課題: メンテナンスされていないライブラリへの依存 解決法: レガシー化することを見越した置換 解決法
Slide 29
Slide 29 text
破壊すべきレガシー ● 密結合な実装 ● メンテナンスされていないライブラリへの依存 ● 可読性の低い独自実装 ● iOS Deployment Targetが13
Slide 30
Slide 30 text
破壊すべきレガシー ● 密結合な実装 ● メンテナンスされていないライブラリへの依存 ● 可読性の低い独自実装 ● iOS Deployment Targetが13 じゃあ破壊した後は?
Slide 31
Slide 31 text
破壊のその未来へ!
Slide 32
Slide 32 text
破壊のその未来へ! アプリでpixivを完結させる アプリでしかできない体験を創る
Slide 33
Slide 33 text
アプリでしかできない体験を創る tatsubeeが今後追加したいと妄想する機能 ● Widget / FullScreen Live Activity → ユーザーが受け身でイラストを見られる ● Share Extension → イラスト選択から投稿までの手順をより少なくする ● Bluetooth, カメラ, App Clip, VisionPro …
Slide 34
Slide 34 text
14年間アプリを築いてくれて ありがとうございました!
Slide 35
Slide 35 text
自分達が の 次の10年を創っていきます!