Caedeを使用した際のCurl言語の基本的な構文


Caedeを使用したモバイルアプリケーション開発にはCurl言語を使用します。Curl言語の基本的な構文はRIAアプリケーションを使用する際と同じです。ただし、Caedeを使用したモバイルアプリケーション開発ではCaede SDKのフレームワークを使う必要があるという前提が違います。そのため、テキストを単純に表示する場合もフレームワークの手続きに従って開発する必要があります。ここではRIAアプリケーションを作る際と違う、Caede SDKのフレームワークの説明を中心に説明します。
学習の流れとしては、まずRIA開発編の Curl言語の基本的な構文 を学習してから以下の説明を確認してください。


CaedeSDKのフレームワークとは?

CaedeSDKのフレームワークは画面遷移などの機能を提供しているMVCフレームワークです。
フレームワークではGraphicクラスとScreenクラスを一組にして一つの画面およびロジックを定義します。
たとえば以下の図の例では最初に呼び出される画面がA画面でそこからB画面に遷移するような場合です。
このように1画面に対し1Graphicクラスと1Screenクラスを定義していきます。

ちなみにプロジェクトの作成時にテンプレートを選択するとあらかじめGraphicクラスとScreenクラスのコードが自動的に生成されます。2のサンプルではprompt-graphic.scurlファイルにPromptGraphicクラス、prompt-screen.scurlファイルにPromptScreenクラスが定義されています。

Caede Framework

※Curl言語ではクラスを定義することができます。
クラスの詳細については 「 Curl開発者ガイド - 基本概念 - データ型 - クラス 」 を参照してください。


Graphicクラスとは?

Graphicクラスとは「画面レイアウトを定義するクラス」となります。任意のクラス名を使用することができ、FrameやCanvasといったCurl標準のグラフィカルなコンテナクラスを継承したクラスを定義することができます。

Graphicクラスは以下のようなクラス定義となります。

コード1

なお、フレームワークにおけるGraphicクラスは「静的(動的変化のない)」なレイアウトのみを定義し、 動的なレイアウト(ユーザーの操作などに伴う画面の一部のみのレイアウト変更など)はScreenクラスで実装する必要があります。

またCaedeフレームワークを使用した場合のその他の制限事項として以下のようなものがあります。

  • Curl標準提供以外のユーザー定義による独自コンテナクラスや独自コントロールクラスクラスを継承することはできません。
  • イベントハンドラは定義できません。イベントハンドラはScreenクラスで定義する必要があります。 Graphicクラスにて以下のように コンストラクタに引数として渡す形でイベントハンドラを定義した場合、これはCaedeでは無視されます。Screenクラスでダイナミックなイベントハンドラとして定義、実装してください。

  • fieldやメソッドなどを定義することはできません。

Screenクラスとは?

Screenクラスとは対となるGrahicクラスに対する「ビジネスロジックやイベント処理を定義するクラス」となります。Screenクラス内で、画面の初期化処理やイベントの起動処理、画面の遷移処理などを記述します。

Screenクラスは以下のようなクラス定義となります。

コード2

Screenクラスの定義は、Caedeフレームワークのクラスを継承して行います。Screenクラスは「inherits {Screen-of XxxxGraphic}」のようにScreen-ofを継承します。VLEでデザインされた画面の場合はVScreen-ofを継承します。VLEによる画面レイアウトの作成についてはCaede入門のVLE編を参考にしてください。
またXxxxGraphicは対応するGraphicクラス名を指定します。


Caede SDKフレームワークへの画面宣言

定義したGraphicクラスとScreenクラスをアプリケーションで使用する画面としてフレームワークに認識させる必要があります。

clientプロシージャとscreen-graphic-referenceプロシージャを使用して以下のような記述を行います。第一引数に与える名称(String型)は画面ごとに一意なものとし、他の画面と重複しないよう注意してください。第二引数にはGraphicクラスのクラス名を指定します。

{client {screen-graphic-reference "a-gamen",AGraphic}}

記述場所の制約はありませんが、画面ごとに必要になるものですので各画面のScreenクラスの定義の後をおすすめします。


Start.curlへの初期画面表示の設定

CaedeアプリケーションはCurlアプリケーションと同様、start.curlが起動ファイルとなります。
Start.curlにstartupプロシージャを使用して最初に表示する画面の処理を記述します。

{startup AScreen}

最初に表示する画面をScreenクラス名で定義します。なお、Start.curlでstartupプロシージャの処理を記述していない場合はCaedeアプリケーションは起動しません。


ダイナミックレイアウトとは?

ダイナミックレイアウトとはスマートフォンからタブレットまでの複数のディスプレイサイズに対応したプログラムを実装する方法です。

詳しくはデベロッパーセンターをご覧ください。 - ダイナミックレイアウトとは?