Home > iPhone SDK / Cocoa / Objective-C

iPhone SDK / Cocoa / Objective-C Archive

画像表示のパフォーマンス向上策

公式ドキュメントにいくつかポイントが書いてあるのですが、その中にはなかった要素の一つとして、「ファイルサイズ」の影響が思いの外大きいようです。

数十点程度のサムネイル画像を表示するビューを作成した際、表示に時間がかかりすぎるためいろいろ試行錯誤していたところ(プロファイラを使いこなせれば試行錯誤するまでもないことなのかもしれませんが…)、ファイルサイズを小さくすることで(5KB→1.5KB程度)パフォーマンスが大きく改善しました。

ちなみに、小さめの画像で圧縮率を高めにする場合は、同程度のファイルサイズで比較するとPNGよりもJPGの方が画質がかなりマシです。ですので少なくともこのようなケースに限っていえば、推奨フォーマットであるPNGにこだわらずにJPGを使った方が、そこそこの画質でよいパフォーマンスが得られるようです。

関連する投稿

CocoaとWin32APIのフローは似ている

Macでの開発経験もないので、Objective-CとCocoaから勉強を始めました。

とは言っても、言語仕様についてはもともと気にしない質なので自然とCocoaの設計思想やフローを中心に学ぶこととなりました。

一通りドキュメントを眺めていて思ったのは「Win32API + C++に似ている」です。
どちらも、Cまたはそれから派生した言語を用いているため処理はmain関数から開始されるということもあるのですが、イベントディスパッチループからイベント処理が呼び出だされその後描画処理が呼び出されるというフローが似ていると思いました。

.Net Frameworkではディスパッチループを意識させることがなく、Webアプリでは基本的にディスパッチループは存在しないので、そう感じたのかもしれません。

と、なんとも主観的な内容になってしまいました。
次回からはもう少し役に立つ情報を書きたいと思います。

関連する投稿

UINavigationControllerで水平方向の遷移をする

階層構造のデータのナビゲーションに使う”UINavigationController”で、その階層構造を水平方向に遷移させたい場合(例えばリスト表示のビューから詳細表示のビューに遷移するアプリで、ある項目の詳細ビューから別の項目の詳細ビューへリスト表示のビューを経由せずに直接遷移したい場合)は、UINavigationControllerのviewControllersプロパティをいじってやればよい。

[self.navigationController pushViewController:nextViewController animated:YES];
 
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[viewControllers removeObjectAtIndex:([viewControllers count]-2)];
 
self.navigationController.viewControllers = viewControllers;

ただ、この方法だと遷移後に標準のNavigationBarItem(”Back”など)が消えてしまうという問題があるみたいです。自分でset***BarButtonItemしたボタンは問題なく表示されるので、今作っているアプリではとりあえず大丈夫ではあるのですが。

関連する投稿

ホーム > iPhone SDK / Cocoa / Objective-C

Search
Feeds
Meta

Return to page top