iOS開発におけるパフォーマンス改善の際、参考にさせていただいた記事まとめです。
(思い出したり新しい記事あったら随時追加していきます)
パフォーマンスの改善ってくくりだと大雑把すぎてとっちらかるかもしれませんが
許して下さい。。
思い出したり見つけたら随時追加していこうと思っています。
こんなんあるよとか言っていただければ感謝の上、追加させていただきます。
まずは基礎
まずはAppleさんの教科書的なドキュメントをまとめてくださったshu223さんの記事です。
UITableView, UICollectionView
[iOS] TableView スクロールパフォーマンスの改善
大抵のアプリの本丸はUITableViewですね。
それぞれとても素晴らしい記事で感謝しています。
記事はUITableViewに関してですが、UICollectionViewでも参考になります。
Network (JSON Parse)
サーバとiOSアプリのデータのやり取りを〇〇倍高速化する方法
JSONパース時に工夫することでパフォーマンスを改善した例です。
結構この2つの記事は目から鱗的なんじゃないかと思います。
先入観は捨てる。勉強になります。
CoreData
CoreDataの非同期処理 - UIスレッドを止めないために
Adventures in Multithreaded Core Data
CoreDataを使っててパフォーマンスを改善するには避けて通れないマルチスレッド対応ですね。
昨今は上記のような素晴らしい記事が多く、助かります。
CALayer
iOSにおける描画と印刷のガイド
Apple公式ドキュメントです。(PDF)
CALayer を用いた「影」の描画処理を軽くするAdd Star
UIView の drawRect と setNeedsDisplay の関係
描画のパフォーマンス向上といえば言わずもがなですね。
オープンソースを参考にする
Path: スクローリング時の画像表示を早くするiOSライブラリをオープンソースで提供
SDWebImageを1年半使ってみた
みんな使ってるSDWebImageの解説記事です。参考になります。
また、上記FastImageCacheとの連携についても書かれています。
そもそものパフォーマンス測定方法
INSTRUMENTSのTIME PROFILERを使って重たいメソッドを特定する
まず測れって話ですね。
Xcode6からパフォーマンスを評価するためのAPIが追加されたようです。参考になります。
後から雑に追加
Method Dispatch in Swift
Swiftレターには感謝しかないですね
https://medium.com/swift-column/issue11-63c218e55371#.1kci0lgem
iOSアプリのUX改善! FacebookのAsyncDisplayKitで60FPSのハイパフォーマンスなiOSアプリを作る
まあ、改善しないんだけど.. → Think Different
考えを変えてみるのも手かもしれませんね。
ユーザーが「どう感じる」かどうかが重要ということでしょうか。
しかしながらこの手法は定量的に評価できないので説得する人が居る場合は難しいですね。