0

科学/教育アプリケーションを構築しており、パワー ユーザー向けのスクリプト機能を提供する必要があります。私の選択肢は次のとおりです。

  • Python や Lua などの既存の言語を埋め込む
  • または、たとえば coco/R を使用して独自の言語を作成する

(最初は C# でビルドしていますが、後で iPad と Android 用に C++ に移植する予定です。) それぞれのアプローチには利点がありますが、大きな要因は、アプリ ストアから締め出されたくないということです。Apple は、解釈されたコードを実行するアプリを禁止しているようです。これがどのように定義されているのかよくわかりません。確かにアプリは独自のデータ構造を解釈して実行されますか? それはある種の「ポルノを見ればわかる」という定義だと思いますが、システムをあまりにも強力に見せすぎてはいけません。もしそうなら、私が独自の言語を構築し、アクティブな構文ツリーのみを送信し、スクリプト ソースを送信しないと、警告ベルをトリガーする可能性が低くなると考えています。古いデータのように見えます。構造。これが正しいかどうか知っている人はいますか?

4

1 に答える 1

1

Apple は、ライセンス契約の文言を緩和して、数年前に Lua を許可しました。膨大な数の iOS ゲーム (Angry Birds、すべての EA ゲームなどを含む) で使用されています。実際、App Store には、Corona や MOAI などの Lua ベースのフレームワークを使用して、Lua で作成された多くのゲームがあります ( Bungie Aerospaceが資金提供したゲームで、App Store で数週間 1 位だったCrimson: Steam Piratesなど)。 . エンドユーザーがデバイス上でゲーム/おもちゃを構築するために使用できる Lua スクリプト環境である Codea のようなアプリもあります。Lua はiOS プラットフォームで非常に人気があります。

独自の言語を作成するのはばかげているでしょう、IMO。Lua はあまりにも優れており、軽量、高速、ハッキング可能、ユーザー フレンドリー、組み込みと拡張が容易など、iOS に最適です。しかし、C# アプリに統合するのは難しいかもしれません。MonoTouch の仕組みはよくわかりませんが、デスクトップの世界では、C# はマネージ コードであり、バイト コードにコンパイルされますが、Lua の API はネイティブ コードです。そのギャップを埋めることはできますが、より多くの作業が必要です。

つまり、 Lua を使用でき、非表示にする必要はありません。許可されていないのは、ユーザーが基本的に完全に新しいアプリケーション (Apple によってレビューされていないもの) をアプリからダウンロードできる「メタプラットフォーム」を作成することです。

編集:「私は C# で構築していますが、おそらく後で iPad と Android のリーチのために C++ に移植する予定です」に関しては、MOAI を確認することをお勧めします。Lua でゲームを作成するための C++ で書かれた、オープン ソースのクロス プラットフォーム (PC、Mac、iPad、Android、Chrome) フレームワークです。後で移植するよりも、そこから始める時間を節約できるかもしれません。Lua でほとんどすべてを直接実行できます。また、ベアメタル パフォーマンスが必要な場合や、Lua API を介してまだ公開されていない機能へのアクセスが必要な場合は、C または C++ で記述できます。

于 2012-04-13T16:58:00.957 に答える