その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Assets Library フレームワークを使用した無料アプリをリリースしました

大量の画像をダーッと見るための高速画像ビューアです。



i走馬灯
※無料です


Assets Library というiOS4から追加されたフレームワークを使用して、フォトライブラリの中身をまるっと取得することで、高速スライドショーを可能にしています。

Assets Libraryまわりの実装

Assets Libraryまわりの実装は全面的にこちらの書籍のKatokichiSoftさんのサンプルを参考にさせていただきました。


iOS4プログラミングブック
畑 圭輔 加藤 寛人 坂本 一樹 藤川 宏之 高橋 啓治郎 沖田 知彦 柳澤 昇
インプレスジャパン
売り上げランキング: 283,100


グループリストを取得

ALAssetsLibraryGroupsEnumerationResultsBlock resultBlock =
^(ALAssetsGroup *assetsGroup, BOOL *stop) {
	if (assetsGroup) {
		[self.items addObject:assetsGroup];
	} else {
		// 収集完了
		[self.myTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
	}	
};


グループ内のアセットを取得

ALAssetsGroup *group = (ALAssetsGroup *)[self.items objectAtIndex:indexPath.row];
[group setAssetsFilter:[ALAssetsFilter allPhotos]];
NSEnumerationOptions options = 0;
ALAssetsGroupEnumerationResultsBlock resultBlock =
^(ALAsset *asset, NSUInteger index, BOOL *stop) {
	if (asset) {
		[assets addObject:asset];
	}
	else {
		// グループ収集完了
	}
};
[group enumerateAssetsWithOptions:options
				   usingBlock:resultBlock];

課題など

土日だけの個人制作のため、細かいところまでは作り込めていません。対応は未定ですが、気になっているところをピックアップしておきます。


・速度
高速高速とはいったものの、画像サイズが大きめだとあんまり速くありません。
サイズを小さくしてキャッシュ、といった処理が必要そうです。
そもそもAssetの取得処理の中身を理解してないので、そこらへんに改善手段があるかもしれません。


・使い勝手
ランダム、巻き戻し(逆方向再生)、お気に入りとか。


・市場調査
似たようなアプリがあるのかないのか、まったく調べておりません。