Assets LibraryフレームワークのRubyMotion用ラッパーを作った
RubyっぽいインターフェースでAssets Libraryにアクセスできますと。Assets Libraryを使うと画像の参照や保存がさくっとできる。
だいたい以下のようなことを念頭に作った。
* 各クラスの取得と作成をfind_all,find_by_url,each,createでなるべく統一
* ブロックを二つ取るメソッドはブロック一つで書けるように
* Asset#al_asset、Group#al_asset_groupなどで元のフレームワークのクラスにアクセスできる
以下Assets Libraryフレームワークの予備知識や使い方のざっくりとしたメモ。
* Library,Group,Asset,Representationの階層構造
MotionAL.library.groups.each do |group| group.assets.each do |asset| asset.representations.each do |rep| end end end
* 元のフレームワークの制限で更新や削除は基本的にできない
* AssetとGroupの関連は多対多
* AssetにはPhotoとVideoのタイプがある
* Groupには色々なタイプがある
* 自分の作成したGroupにのみAssetを追加することが可能
* Representationは直に作ることはできず、Assetを作成/更新した時に自動で作成/更新される
* RepresentationはJPEG/RAWなど二種類以上ある場合もあるがたいていはひとつっぽい
* AssetとGroupの取得はfind_by_urlまたはfind_all(エイリアスでeach)
* AssetとGroupの作成はcreate
* 自分の作成したAssetのみupdateが可能
* 既存のAssetに手を加えたものを保存する場合はsave_newで別のAssetとして保存(createで作成した場合と違って元のAssetをoriginal_assetとして保持)
* find_by_url,find_all,each,createは基本的に非同期で動く
詳しい使い方はREADMEのOverviewとAPIドキュメントを見てもらえれば。
あとサンプルアプリ。
加えて忘れてはならない注意点。
* エラー処理が適当かもしれない
* メモリリークとかあるかも
* ドキュメントの英語が怪しい
プルリクエストなど歓迎です。