7

ショートバージョン:

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

ロングバージョン

phonegap への移植を検討しているアプリケーションがいくつかあります。一般に、アプリは Python で作成されます。それらの一部には Web フロントエンドがあり、一部は wxpython に基づくインターフェイスを備えたスタンドアロンの Python アプリです。

したがって、各アプリケーションには、既に html+javascript+css に含まれているか、喜んで html+javascript+css に変換できるクライアント側のものがあります。

サーバー側の場合、一部のアプリケーションでは、サーバー コードをサーバーに残しても問題ありません。しかし、一部/ほとんどの場合、サーバー側のロジックを phonegap アプリにパッケージ化して、スタンドアロン アプリにすることができます。この要件は、2 つのニーズから生じます。1 つは、これらのアプリの多くが緊急対応に使用され、携帯電話基地局やその他のネットワーク インフラストラクチャが利用できない場合でも機能する必要があることです。もう 1 つは、一部のアプリは非常に単純であり、クライアント/サーバー アーキテクチャを保証していないということです。Python で記述された「バックエンド ロジック」タイプのコードがたまたま多く含まれているだけです。

これで、バックエンドの Python ロジックをすべて JavaScript に移植できることはわかっていますが、このかなりのコード ベースを Python に残すことができる解決策を見つけたいと思っていました。

私の考えは、実際に完全な Python インタープリターを含む phonegap プラグインを作成できるということです (少なくとも、私のコード ベースのほとんどのものを処理するのに十分なほど完全です)。(つまり、iOS と Android の両方でネイティブ C コードが許可されているため、ソースから Python (または少なくともその大部分) をコンパイルするか、他の人が構築した iOS および Android Python ライブラリにリンクするだけでよいはずです。)

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

私の質問は次のとおりです。

(1) その計画は合理的に聞こえるか?

(2) 誰かがすでにこの問題を解決しましたか? 私は、たとえば「phonegap サーバー」と呼ばれるプロジェクトを見つけたいと思っていました。これは、クライアントから任意の呼び出しを受け取り、それらの呼び出しを選択したサーバーにディスパッチするという意味で、本質的に「ユニバーサル」PhoneGap 拡張機能ですさまざまなメカニズム: Python、Java、mono など。言語)。そのようなプロジェクトは、切断された状態で実行する必要がない、および/または「バックエンド」ロジックの大きなコード ベースを持っていないため、ほとんどの人には必要ない可能性があります。スタンドアロン アプリに展開したいが、元の言語のままにしたい。でもそれが必要な人もいるようですよね?

4

1 に答える 1