Caedeで開発できるアプリケーションはさまざまですが、ここでは業務システムにフォーカスして「入力更新画面」や「リスト画面」モバイル特有の機能を使った「デバイス連携画面」で一般的に使われるコントロールや機能を取り上げます。具体的にはリストコントロールや入力用コントロールおよびカメラや画像を使用し、業務アプリケーションに必要な機能を実装しています。
また、スマートフォンだけでなく、タブレットでも使えるようにダイナミックレイアウトを使用しています。
入力コントロール、選択コントロールなど
カメラの起動や画像の表示など
トップ画面や一覧などに使われるリストビュー
サンプル・アプリケーションを構成するすべてのファイルは、以下のURLからダウンロードできます。
ファイル名:CaedeSample_3.0.zip
ダウンロードして解凍すると2つのフォルダが生成されますが、「CaedeSample_3.0」のフォルダ内にあるプロジェクトをCDEがインストールされたEclipseでインポートするとソースファイルがすべて参照できます。
RIAアプリケーションとして使用する場合、Curlはクライアント(PC)で動作しますが、Caedeアプリケーションの場合はモバイル端末(AndroidおよびiOS)で動作します。そこで使用されるデータ(DB)はサーバにあることが一般的ですが、モバイルの特性上、ネットワークへの接続は断続的であり、必ずしもデータサーバーに接続できるわけではありません。ですから同時にモバイル端末上にデータを保存しておく必要もある場合があります。このため、Caedeアプリケーションの構成は下図のようになります。Caedeアプリケーションからデータ(DB)にアクセスする場合、通常はHTTP(またはHTTPS)のPOSTおよびGETを使用してWebアプリケーション・サーバへリクエストし、サーバからレスポンスとしてデータ(XML、CSV、Json、バイナリなど)を取得します。それを下図の「モデル・レイヤ」において、Curl内部で扱いやすいデータモデルに変換して使用します。たとえばArrayやHash-TableなどのコレクションやJsonObjectなどが代表的なクラスです。またそのデータをモバイル端末に保存する必要がある場合はデバイス上のローカルストレージやSDカードなどを使用します。
データモデルを作成したら、その表現形式については「プレゼンテーション・レイヤ」に処理を任せます。
プレゼンテーションはRIAアプリケーションと同じように通常のコンテナやGUI、またはモバイル独自のコンテナやGUIを使用します。たとえば例えば、リスト形式で表現する場合はListViewクラスを使用します。
画面遷移はCaede SDKフレームワークの画面遷移機能であるchange-pageメソッドを使用し、1画面内のダイナミックなレイアウト変更にはコンテナクラスなどのadd、clearメソッドなどを使用します。
サンプル・アプリケーションでは、サーバとの通信部分やデータのローカルストレージへの書き込みなどの部分はありませんが、基本的にはWebサーバにリクエストを送ってレスポンスを取得し、モデル・レイヤのデータオブジェクトにデータを設定する処理を追加することで、ほぼ完全なモバイルアプリケーションとして成り立ちます。また取得したデータをローカルストレージで格納すればオフラインでも稼働するアプリケーションになります。
サンプル・アプリケーションの詳細な機能および基本クラスは以下のようになっています。
使用目的 |
クラス名 |
機能 |
---|---|---|
入力画面 |
TextFieldクラス |
入力および登録 |
一覧画面 |
ListViewクラス |
リストによる表示と選択 |
カメラの起動や画像処理 |
run-cameraプロシージャ |
カメラ起動や画像の表示 |
画面遷移処理 |
Screenクラス |
画面遷移 |
内部保存データ |
StrageConnectionクラス |
SQLiteデータベースへの操作 |