2013-06-26 4 views
6

ショートバージョン束ねるパイソン「バックエンド」コード

PhoneGapのクライアントアプリケーションとの「バックエンドサーバ」タイプのコードをPythonのをバンドルするための標準的な方法はありますか?

ロングバージョン

私はPhoneGapのへの移植検討しているアプリケーションの数を持っています。一般に、アプリはPythonで書かれています。その中にはWebフロントエンドを持つものもあれば、wxpythonに基づいたインターフェイスを備えたスタンドアロンのPythonアプリもあります。

それぞれのアプリケーションには、すでにhtml + javascript + cssに入っているクライアントサイドのものや、html + javascript + cssに翻訳していただいているものがあります。

サーバー側では、一部のアプリケーションでサーバーコードをサーバーに残しても問題ありません。しかし、ほとんどの場合、私はphonegapアプリケーションでサーバー側のロジックをパッケージ化したいので、スタンドアロンのアプリケーションにすることができます。この要件は、2つのニーズからもたらされます。 1つは、これらのアプリの多くが緊急時の対応に使用されており、セルタワーやその他のネットワークインフラストラクチャが利用できない場合でも動作する必要があることです。もう一つは、アプリケーションのいくつかが非常にシンプルで、クライアント/サーバーアーキテクチャを保証するものではないということです。ちょうどPythonで書かれた "バックエンドロジック"タイプのコードがたくさんあります。

私は、バックエンドのPythonロジックをすべてjavascriptに移植できることを知っていますが、この大規模なコードベースがPythonに残っている可能性があるソリューションを見つけることを願っていました。

私の考えは、完全にPythonインタプリタが含まれているphonegapプラグインを書くことができるということです(コードベースでほとんどのものを処理するのに十分です)。 (つまり、iOSとAndroidはどちらもネイティブのCコードを許可しているので、Pythonをソースから、あるいは少なくとも他のものがビルドしたiOSやAndroid Pythonライブラリにリンクすることができるはずです)

JavaScriptコードでは、クライアントに「InvokeBackEndMethod()」のような関数を呼び出させることができます。これはajax呼び出しのように動作しますが、ネットワーク上で呼び出す代わりに、Pythonプラグインにquery/url /メッセージを送ります。私の理解では、phonegapプラグインは永続的な状態を維持することができます(データベースプラグインを使用すると、データベースを開く呼び出しを1回行い、それ以降の呼び出しを読み込んで閉じることができます)。したがって、Pythonの "サーバ"コードは、実際のサーバ上のようにその状態を維持することができます。実際、PythonコードはcherrpyのようなWebフレームワークを実行している可能性があるので、クライアントとサーバーの両方を同じモバイルアプリケーションで実行するようなものです。

私の質問は:

(1)その計画は合理的ですか?

(2)誰かがすでにこの問題を解決していますか?私は、「phonegap server」と呼ばれるプロジェクトを見つけることを望んでいました。それは、クライアントからの任意の呼び出しを受け取り、それらの呼び出しをあなたの選択肢に送るという意味で、本質的に「普遍的な」PhoneGap拡張です。さまざまなメカニズム:Python、Java、monoなど(つまり、この普遍的なphonegap拡張は、様々な言語の "プラグイン"によって "拡張"されます)そして、それらのプラグインは、言語)。そのようなプロジェクトは、切断された状態で実行される必要がなく、配備したい "バックエンド"ロジックの大きなコードベースを持たないため、ほとんどの人が必要としないことがありますスタンドアローンのアプリケーションでは、元の言語で残してください。しかし、それを必要とする人がいるようですね。

+0

いいえ、PhoneGapアプリはクライアント側のコードのみであるはずです。しかし、PhoneGapコードをラップするJava/Pythonコード内にロジックを書くことができます。 –

+0

@limelights:私の拡張アイデアは、基本的にJava/Pythonコードをラッパー(つまり、埋め込みブラウザーの外にあるphonegapの部分)に入れています。私の質問は、誰かがすでにその枠組みを設定しているかどうかです。 –

答えて

1

2つの非常に異なるイニシアチブをチェックアウトしてください。http://omz-software.com/pythonista/ Xcodeプロジェクトへのエクスポートを許可します。

およびhttp://code.google.com/p/brython/ HTML5開発用のJavascriptの代わりにPythonを使用します。

+0

ありがとうございます。 pythonistaはあまりにも多くの "パッケージ"であり、iOSのためだけですが、brythonはかなり面白く見えます。私はそれがどれくらいうまくいくかを考えています... –

+0

よく、私はbrythonとpyjacoとpy2js/pajamasを試しました。すべてのケースで、私はそれらを「プライムタイムの準備ができていません」と見つけました。 Py2jsはかなり洗練されていますが、私のコードで使用されているPython構文のすべてをサポートしていません(これは一般的にコードを修正してサポートしていないものを取り除くことができるので実行可能です)。しかし、この殺人犯は、皆さんのバグを追跡するのが非常に難しいということです。コンパイルされたjavascriptコードにブレークポイントを設定するのは難しいです(少なくともそのようなコードにブレークポイントを設定する方法はわかりません)。 –

関連する問題