Assets LibraryフレームワークのRubyMotion用ラッパーを作った

akahigeg/motional – GitHub

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ドキュメントを見てもらえれば。
あとサンプルアプリ

加えて忘れてはならない注意点。

* エラー処理が適当かもしれない
* メモリリークとかあるかも
* ドキュメントの英語が怪しい

プルリクエストなど歓迎です。

前の記事

RubyMotionでシングルトン

次の記事

NanocでFont Awesomeを使う