pixiv-iosを破壊したい #pixivmeetup
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 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年を創っていきます!