Wolfram CDF Player Proの互換性に関する開発者用ガイドライン
CDF Player Proのプログラミング
CDF Player Pro用のアプリケーションの構築には,Mathematicaで利用できるプログラミングおよび計算関数のほとんどすべてが利用できます.しかし,多少のプログラミング上の制限があります.
- .NET/Linkを含むWolfram Symbolic Transfer Protocolの操作はサポートされていません.Install,LinkConnect,Links等のコマンドは使わないようにしてください.これにはgridMathematica.等のリモートのMathematicaカーネルへのリンクも含まれます.
- InputField は任意のMathematicaプログラムを受け入れません.しかし,Mathematicaプログラムのように見えない数式や他の入力は受け入れることがあります.
- Java,C/C++,.NETで書くことのできるカーネルへの別のフロントエンドはサポートされません.カーネルを使うためのサポートされる唯一の方法はMathematicaノートブックインターフェースを使う方法です.
- GUIKitはサポートされません.
データのプレロード
CDF Player Proアプリケーションでは必要に応じて外部データをロードすることができるため,データの埋込みは必要ありませんが,アプリケーションをなるべく内蔵型にしたい場合は,以下の点を考慮してください.
埋込みには基本的な方法が2つあります.
Initialization
Initializationオプションを使って,Manipulateコマンドに小さいコードブロックを入れることができます.次のコードをご覧ください.
Manipulate[myfunction[mydata,n],{n,0,1},
Initialization:>(myfunction[dat_,n_]:=...;mydata={...})];
SaveDefinitions
大きいコードブロック,パッケージ,大きいデータファイルの場合は,Manipulateを作成する前にそれらを定義してからSaveDefinitionsオプションを使い,Manipulate内でその状態を保存した方が便利です.
<<MyPackage`
mydata=Import[...];
Manipulate[myfunction[data,n],{n,0,1},SaveDefinitions->True];
外部ファイルの利用
CDF Player Proは実行時に外部ファイルにアクセスできるため,さまざまな利点があります.
コードの構成と保護
大きいプロジェクトの場合,コードをパッケージに入れて整理する(Wolfram Workbenchを使う場合も含む)と,メンテナンス可能な開発の役に立ちます.Initializationコマンドを使ってManipulate内部にコードを入れる代りに,パッケージの呼び出しを入れることができます.すべてのパッケージは,.mxバイナリファイル生成のためにEncodeコマンドかDumpSaveを使って符号化しなければなりません.詳細はスクリーンキャストをご覧ください.
こうすると,これを動的インターフェースからロードすることができます.以下はその例です.
Manipulate[myfunction[n],{n,0,1},Initialization:>Needs["EncodedPackage`"]]
さらに,これにはソースコードを暗号化するという利点もあります.
リアルタイムおよびユーザ定義のデータ
ノートブックに外部データの呼出しを挿入し,CDF Player Proユーザが自分のデータを使ったり,事前に指定されたリアルタイムデータを取得したりできるようにするには,いくつかの方法があります.以下は典型的な例です.
- リモートソースのデータを含むアプリケーションを初期化する:
Manipulate[...,Initialization:>(data=Import["http://server.domain.com/latestdata.dat"])] - Webカメラからデータを取得する:
Manipulate[...,Button["Get image", data=Import["http://server.domain.com/webcam.jpg"] - ユーザに解析用のローカルデータを選ばせる:
Manipulate[..., Button["Load data", mydatapath = SystemDialogInput["FileOpen"]]]
ノートブックとその他のファイル
Mathematicaで作成されたノートブックだけ開くことができます.有効なファイルアウトラインキャッシュのないノートブックは開けません.ノートブック以外のファイルも開けません.