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