Androidアプリを完全にPythonで作成する方法は?[閉まっている]


104

Playストアで配布する(かなりシンプルな)Androidアプリを開発したいと思います。私は完全にpythonでそうしたいと思います。ただし、オンライン調査では十分な啓発はありませんでした。ほとんどのコメントは古くなっている(> 1年前で、それ以来pythonの統合が改善されていると思われる)か、androidでのpythonの実行について話してます(例:ここ)。

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

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

私はアプリ開発に非常に慣れていないので、これをJaveなどではなくpythonで行うことのリードを高く評価します。

よろしくお願いします。


以前は、kivyとそのbuildozerプログラムを使用していました。彼らはここにドキュメントを持っていますkivy.org/docs/guide/packaging-android.html
es

ネイティブではJavaまたはKotlinのいずれかを使用する必要がありますが、他の人が指摘しているように、PyMobやKivyなどのpythonで使用できるサードパーティの「アプリビルダー」またはフレームワークがあると指摘しています。
ドミニクシュミット

6
私は、Kivyを使用して完全にPythonで開発されたAndroidゲームを作成しました。これは、Google Playで利用可能なCoinTexと呼ばれています:play.google.com/store/apps/details ?id=coin.tex.cointexreactfast 。ゲームのソースコードは、GitHub:github.com/ahmedfgad/CoinTexから入手できます。また、Pythonを使用してAndroidアプリを構築するために、この年に出版される本も書きました。「Amazon StudioでKivyを使用してPythonでAndroidアプリを構築する:Pyjnius、Plyer、およびBuildozer Ahmed Fawzy Gadを使用して」というタイトルは、Amazon(amazon.com/dp/1484250303)で入手できます。
Ahmed Gad

1
回答を投稿できませんが、これが解決策のようですNecessitas Qtポートを使用するPySideベースのQML GUIや、AndroidのWebKitと組み合わせることのできるPy4A / SL4Aベースのアプローチなど、さまざまなテクノロジーがデモされます-Python Webフレームワークを使用します。
Basj

回答:


111

あなたの最初の質問に答えるために:はい、純粋なPythonでのAndroidアプリケーションを開発することが可能である私は、あなたが使用することをお勧めこれを達成するために、BeeWareだけで、Pythonツールのスイートを、一緒に非常によく仕事は、彼らが開発することができますことをPythonのプラットフォームネイティブアプリケーション。

BeeWareの作成者によるこのビデオをチェックアウトして、アプリケーションの説明とデモを完全に行ってください。

使い方

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

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

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

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

  • マック
  • ウィンドウズ
  • Linux
  • iPhone / iPad
  • アンドロイド
  • AppleTV
  • tvOS。

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

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

2番目の質問に答えるには、テキストエディターとコマンドライン、またはIDEのいずれでも、快適な環境であれば何でもかまいません。優れたPython IDEを探している場合は、Pycharmを試してみることをお勧めします。コミュニティエディションは無料で、同じ会社が作成したという事実により、android studioと同様の環境になっています。

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


1
それは私だけですか、それともVOCは放棄されましたか?
モニカの訴訟に資金

2
これは行き止まりです(前回チェックしたのは2018年12月です)。この過度に複雑なソリューションの1つ以上のコンポーネントが機能していないか、最新の状態に保つことができません。
ベリーTsakala

2
2019年の更新ですが、KotlinがAndroid開発の優先言語になりました。
DaveTheMinion

3
@Basj GitHubアカウントを見るだけで活発に開発されていることがわかるので、Beewareは間違いなくしばらくの間存在します。Gitterチャネルにアクセスすると、常にチーム全体、特にクリエーター博士(フリーキーボーイ)のクリエイターにリーチし、コミュニティは非常に友好的です。また、公式アカウントからの最新のツイート(2019年9月26日)があり、彼らはPythonから教育助成金を受け取ったことを発表していますソフトウェア基盤。特に言語としてpythonが好きなら、あなたの時間は価値があると思います
maroof shittu

1
BeeWareは、いかなる段階でも、この段階ではAndroid(Java)をサポートしていないようです。
マークアンダーソン

15

BeeWareを試すことができます -彼らのウェブサイトに記載されています:

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

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

こちらがAndroidアプリチュートリアルです


4
BeeWareを使用して自分でアプリを作成しましたか?
ベリーTsakala

11

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

チャコピー

https://chaquo.com/chaquopy/

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

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

https://pybee.org/

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

どれ?

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

Beeware Togaは、すべてのウィジェットライブラリのように、基本を複数のプラットフォームに提供するのに適しています。基本的なデザインがあり、他のプラットフォームに拡張したい場合は、これでうまくいきます。

一方、Chaquopyは、Python APIからAndroidへのマッピングがはるかに正確です。また、Javaで混在させることもできます。他のリソースの既存のコードを使用する場合に役立ちます。厳密な設計ターゲットがあり、主にAndroidをターゲットにする場合、これははるかに優れたリソースです。


10

Android、Python!

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

Kivyロゴ

Android Studioを使用したJavaでのネイティブAndroid開発に入る前に、私はKivyを試しました。それだけで素晴らしい。ここに私が見つけたいくつかの利点があります。


使い方は簡単

Pythonの基本があれば、習得に苦労することはありません。


良いコミュニティ

十分に文書化されており、すばらしい活発なコミュニティがあります。


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

この単一のフレームワークで、Android、iOS、Windows、Linux、さらにはRaspberry Piの開発も可能です。オープンソース。


フリーソフトです

商用ライセンスが必要な場合は、(クロスプラットフォームの)競合他社のなかで、料金を支払うことを求めているものはほとんどありません。


加速されたグラフィックのサポート

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



質問の次の部分に入ると、KivyにAndroid Studio IDEを使用できません。開発環境をセットアップするための詳細なガイドを以下に示します。


4
Windowsのサポートは、生産標準(または趣味の標準)に比べてもかなり遅れています。さらに、RTLサポートが不足しているため、世界の半分はそれを使用できません。
ベリーTsakala

なぜKivyを離れ、ネイティブの開発ツールに変更したのですか?あなたはそれがいくつかの欠点を持っていることを示唆しています。
igoemon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.