iOS SDK iOS SDK v2.0 APPENDIX (iOS v2.0)
最終更新日 2015-6-23

ユーザ定義クラスを使用する

ユーザ定義クラスを使用する

※ 2015年6月時点で、ABDBObject、ABUser、ABDevice 以外は任意フィールドを定義できません。ご注意ください。

Appiaries SDK(v2.0以降)では、アピアリーズ REST API のレスポンス(JSON)を自動的にオブジェクトへマッピングします。

以下に、REST API に対応する組み込みクラスの対応表を示します。

BaaS API Appiaries SDK 組み込みクラス
DB API com.appiaries.baas.sdk.ABDBObject
File API com.appiaries.baas.sdk.ABFile
Seequence API com.appiaries.baas.sdk.ABSequence
User API com.appiaries.baas.sdk.ABUser
Device API com.appiaries.baas.sdk.ABDevice
Push API com.appiaries.baas.sdk.ABPushMessage

上記組み込みクラスは、特別なことをせずともプログラマが自由に任意フィールドを追加することができます。

以下に、コードの一例を挙げます。

このように、組み込みクラスをそのまま利用するだけで十分にアピアリーズ BaaS を活用することはできるのですが、
高品質なアプリを開発する上で重要となる格納値のデータ型チェックの責務を、依然として実装者が負担する点を不満に感じられるかもしれません。

この点を解消するのが ユーザ定義クラス です。

ユーザ定義クラスは、上記組み込みクラスを開発者が拡張して作成するモデルクラスのことで、開発者がモデルのプロパティをデータ型とともに定義することで、SDK はその情報をもとに、BaaS から受け取ったレスポンスを適切なデータ型に変換してオブジェクトへ格納することができるようになります。

以下に、「商品」モデルをユーザ定義クラスとして実装する例を示します。

フィルタを定義する

アピアリーズ上に格納するデータは、JSONがサポートするデータ型(文字列値、数値、論理値、配列、ディクショナリ)である必要があります。
JSONがサポートするデータ型は基本的なデータ型に限られるため、複雑なアプリを開発する上で、これらデータ型だけでは不十分である場合があります。
この問題を解決するのが フィルタ です。

フィルタとは、アプリとアピアリーズ間でやり取りするデータ(入力データ/出力データ)に対し、任意加工を施すためのフックメソッドのことです。
フィルタを定義することで、JSONでは扱うことのできない複雑なデータ型をアプリ内で扱えるようになります。

以下に、NSDate 型のフィールドに対してフィルタをかける例を示します。

このようにひと手間かけることで、より使い勝手のよいコードへ発展させることができますので、
ぜひ、ユーザ定義クラスの活用にチャレンジしてみてください。