web-dev-qa-db-ja.com

Androidアプリは完全にpythonにあります

Playストア経由で配布される(ややシンプルな)Androidアプリを開発したいと思います。私は完全にPythonでやりたいです。しかし、オンライン調査は私を十分に啓発していません:ほとんどのコメントは時代遅れです(> 1歳、それ以来pythonのより良い統合があるかもしれないと思う)または彼らは話しますAndroidでpythonを実行します(例 here )。

したがって、私は質問に関する情報を探しています:

  • pythonでアプリを完全に開発することは可能ですか?-そのためのツールは何ですか? (たとえば、Kivyはお勧めですか?)
  • もしそうなら:これを実装するのに最適なソフトウェア環境は何ですか? (Android St​​udioの使用に失敗しましたが、pythonコードを実行する方法がわかりませんでした。)

私はアプリ開発が初めてなので、これをJaveなどではなくpythonで行うことのリードを高く評価しますが、まだわかりません。

よろしくお願いします。

50
Ivo B.

最初の質問に答えるために:はい、純粋なpythonでAndroidアプリケーションを開発することは可能です、これを達成するために BeeWare これはpythonツールのスイートであり、非常にうまく機能し、Pythonでプラットフォームネイティブアプリケーションを開発できます。

checkout このビデオ BeeWareの作成者による、アプリケーションの完全な説明とデモ

使い方

Androidの優先実装言語はJavaです。したがって、PythonでAndroidアプリケーションを作成する場合は、Pythonコードを実行する方法が必要です。 Java仮想マシン。これがVOCの動作です。 VOC はトランスパイラーです-Pythonソースコードを取得し、CPythonバイトコードにコンパイルしてから、そのバイトコードをJava互換のバイトコードにトランスコンパイルします。最終結果は、PythonソースコードファイルがJava .classファイルに直接コンパイルされ、Androidアプリケーションにパッケージ化できることです。

VOCを使用すると、ネイティブJavaオブジェクトにPythonオブジェクトであるかのようにアクセスし、Javaクラスを使用してPythonインターフェイスを実装し、サブクラスJavaクラスとPythonクラス。これを使用して、ネイティブAndroid AP​​Iに対してAndroidアプリケーションを直接作成できます。

ネイティブAndroidアプリケーションを作成したら、 Briefcase を使用してPythonコードをAndroidアプリケーションとしてパッケージ化できます。

Briefcaseは、Pythonプロジェクトをスタンドアロンのネイティブアプリケーションに変換するためのツールです。以下のプロジェクトをパッケージ化できます。

  • マック
  • Linux
  • iPhone/iPad
  • Android
  • AppleTV
  • tvOS。

BeeWareスイートを使用して、Pythonで作成されたこのネイティブAndroid Tic Tac Toeアプリ を確認できます。 GitHubで

beeWareツールに加えて、アプリケーションをテスト実行するためにJDKとAndroid SDKをインストールする必要があります。

そして、2番目の質問に答えます:良い環境は、テキストエディターとコマンドライン、IDEのいずれであっても快適です。良いpython IDE Pycharm を試してみることをお勧めします。無料のコミュニティエディションがあり、Android studioと同様の環境があります。同じ会社によって。

これがお役に立てば幸いです

52
maroof shittu

Webサイトで説明されているように、 BeeWare を試すことができます。

アプリをPythonで記述し、iOS、Android、Windows、MacOS、Linux、Web、およびtvOSで、豊富なネイティブユーザーインターフェイスを使用してリリースします。 1つのコードベース。複数のアプリ。

PythonでAndroidアプリを今すぐ作成したいだけでなく、他のフレームワークで何かをしたい場合は、将来別のフレームワークを学ぶ必要がないという利点があります。リストされたプラットフォーム。

Androidアプリのチュートリアル です。

12
E. Gordon

Androidのpythonアプリには2つの主要な候補があります

チャコピー

https://chaquo.com/chaquopy/

これはAndroidビルドシステムと統合され、Pythonのすべての機能にAndroid AP​​Iを提供します。サイトを引用するには、「完全なAndroid AP​​Iとユーザーインターフェイスツールキットを自由に使用できます。」

Beeware(Togaウィジェットツールキット)

https://pybee.org/

これにより、マルチターゲットトランスパイラーが提供され、AndroidやiOSなどの多くのターゲットがサポートされます。 Hostインターフェース呼び出しにマップする汎用ウィジェットツールキット(toga)を使用します。

どれ?

どちらもアクティブなプロジェクトであり、そのgithubアカウントはかなりの量の最近のアクティビティを示しています。

Beeware Togaは、すべてのウィジェットライブラリと同様、基本を複数のプラットフォームに公開するのに適しています。基本的な設計があり、他のプラットフォームに拡張したい場合は、これでうまくいくはずです。

一方、ChaquopyはAndroidへのpython AP​​Iのマッピングにおいてはるかに正確です。また、他のリソースの既存のコードを使用する場合に便利なJavaを混在させることもできます。厳密な設計ターゲットがあり、主にAndroidをターゲットにしたい場合、これははるかに優れたリソースです。

6
harvey

Android、Python!

あなたの質問でこれら2つのキーワードを一緒に見たとき、 Kivy が最初に思いついたものです。

Kivy logo

Android St​​udioを使用してJavaでネイティブAndroid開発に進む前に、 Kivy を試しました。すごい。ここに私が見つけられるいくつかの利点があります。


使いやすい

pythonの基本を使用すると、学習に問題はありません。


良好なコミュニティ

よく文書化されており、素晴らしい、活発なコミュニティがあります。


クロスプラットフォーム。

この単一のフレームワークを使用して、Android、iOS、Windows、Linux、さらにはRaspberry Pi向けに開発することができます。オープンソース。


これはフリーソフトウェアです

少なくともいくつかの(クロスプラットフォーム)競合他社は、商用ライセンスが必要な場合に料金を支払うことを望んでいます。


高速グラフィックスのサポート

Kivy のOpenGL ES 2上のグラフィックエンジンビルドは、ゲームなどの高速グラフィックレンダリングを必要とするソフトウェアに適しています。



次の質問に進むと、KivyではAndroid St​​udio IDEを使用できません。 ここ は、開発環境をセットアップするための詳細なガイドです。

3
Anees