【iOS】パフォーマンス改善で参考にした記事まとめ(随時更新)

  • 353
    Like
  • 0
    Comment

iOS開発におけるパフォーマンス改善の際、参考にさせていただいた記事まとめです。
(思い出したり新しい記事あったら随時追加していきます)
パフォーマンスの改善ってくくりだと大雑把すぎてとっちらかるかもしれませんが
許して下さい。。
思い出したり見つけたら随時追加していこうと思っています。

こんなんあるよとか言っていただければ感謝の上、追加させていただきます。

まずは基礎

パフォーマンスチューニングに関するアップルのドキュメント

まずはAppleさんの教科書的なドキュメントをまとめてくださったshu223さんの記事です。

UITableView, UICollectionView

[iOS] TableView スクロールパフォーマンスの改善

なめらかに動作するUITableViewのつくりかた

見積もりの高さでUITableViewを高速化する話。

大抵のアプリの本丸はUITableViewですね。
それぞれとても素晴らしい記事で感謝しています。
記事はUITableViewに関してですが、UICollectionViewでも参考になります。

Network (JSON Parse)

サーバとiOSアプリのデータのやり取りを〇〇倍高速化する方法

iOSアプリを170倍高速化できた2つの意外な盲点

JSONパース時に工夫することでパフォーマンスを改善した例です。
結構この2つの記事は目から鱗的なんじゃないかと思います。
先入観は捨てる。勉強になります。

CoreData

CoreDataの非同期処理 - UIスレッドを止めないために

Adventures in Multithreaded Core Data

CoreData 非同期データ処理

CoreDataを使っててパフォーマンスを改善するには避けて通れないマルチスレッド対応ですね。
昨今は上記のような素晴らしい記事が多く、助かります。

CALayer

iOSにおける描画と印刷のガイド
Apple公式ドキュメントです。(PDF)

CALayer を使って UIImage を描画する

CALayer を用いた「影」の描画処理を軽くするAdd Star

UIView の drawRect と setNeedsDisplay の関係

描画のパフォーマンス向上といえば言わずもがなですね。

オープンソースを参考にする

Path: スクローリング時の画像表示を早くするiOSライブラリをオープンソースで提供

SDWebImageを1年半使ってみた
みんな使ってるSDWebImageの解説記事です。参考になります。
また、上記FastImageCacheとの連携についても書かれています。

そもそものパフォーマンス測定方法

INSTRUMENTSのTIME PROFILERを使って重たいメソッドを特定する

まず測れって話ですね。

Xcode6で追加された、XCTestの新機能

Xcode6からパフォーマンスを評価するためのAPIが追加されたようです。参考になります。

後から雑に追加

iOS10時代のCollectionView最適化

Method Dispatch in Swift
Swiftレターには感謝しかないですね
https://medium.com/swift-column/issue11-63c218e55371#.1kci0lgem

iOSアプリのUX改善! FacebookのAsyncDisplayKitで60FPSのハイパフォーマンスなiOSアプリを作る

まあ、改善しないんだけど.. → Think Different

UIの改悪がUXを改善させる場合

考えを変えてみるのも手かもしれませんね。
ユーザーが「どう感じる」かどうかが重要ということでしょうか。
しかしながらこの手法は定量的に評価できないので説得する人が居る場合は難しいですね。