Bagaimana cara membuat aplikasi Android sepenuhnya dengan python? [Tutup]

107

Saya ingin mengembangkan aplikasi android (yang agak sederhana) untuk didistribusikan melalui Play Store. Saya ingin melakukannya sepenuhnya dengan python. Namun, penelitian online belum cukup mencerahkan saya: sebagian besar komentar sudah usang (> 1 tahun, dan saya merasa mungkin ada integrasi python yang lebih baik sejak saat itu) atau mereka berbicara tentang menjalankan python di android (misalnya di sini ).

Oleh karena itu, saya mencari informasi mengenai pertanyaan:

  • apakah layak untuk mengembangkan Aplikasi sepenuhnya dengan python - dan apa alat untuk melakukannya? (Apakah misalnya Kivy direkomendasikan?)
  • jika ya: apa lingkungan perangkat lunak terbaik untuk menerapkan ini? (Saya tidak berhasil mencoba menggunakan Android Studio tetapi tidak dapat menemukan cara untuk menjalankan kode python di sana.)

Saya cukup baru dalam pengembangan aplikasi dan akan sangat menghargai petunjuk apa pun untuk melakukan ini dengan python daripada di Jave dll, yang belum saya ketahui.

Terima kasih banyak atas bantuan Anda sebelumnya.

Ivo
sumber
1
Dulu, saya menggunakan kivy dan program buildozer mereka. mereka memiliki dokumentasi di sini kivy.org/docs/guide/packaging-android.html
es
Secara native Anda harus menggunakan Java atau Kotlin, namun seperti yang ditunjukkan orang lain, ada "pembuat aplikasi" pihak ketiga atau kerangka kerja yang dapat Anda gunakan dengan python seperti PyMob atau Kivy.
Dominik Schmidt
7
Saya membuat game Android yang sepenuhnya dikembangkan dengan Python menggunakan Kivy. Ini disebut CoinTex tersedia di sini di Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactfast . Kode sumber permainan tersedia di sini di GitHub: github.com/ahmedfgad/CoinTex . Saya juga menulis sebuah buku yang akan diterbitkan tahun itu untuk membangun aplikasi Android menggunakan Python. Ini berjudul "Membangun Aplikasi Android dengan Python Menggunakan Kivy dengan Android Studio: Dengan Pyjnius, Plyer, dan Buildozer Ahmed Fawzy Gad" tersedia di sini di Amazon: amazon.com/dp/1484250303 .
Ahmed Gad
1
Tidak dapat memposting jawaban, tetapi di sini tampaknya ada solusi : Teknologi yang berbeda akan didemonstrasikan, termasuk GUI QML berbasis PySide menggunakan port Necessitas Qt dan pendekatan berbasis Py4A / SL4A, yang dapat dikombinasikan dengan WebKit Android dan kembali -menggunakan kerangka web Python.
Basj

Jawaban:

115

Untuk menjawab pertanyaan pertama Anda: ya, layak untuk mengembangkan aplikasi android dengan python murni , untuk mencapai ini saya sarankan Anda menggunakan BeeWare , yang hanya merupakan seperangkat alat python , yang bekerja sama dengan sangat baik dan memungkinkan Anda untuk mengembangkannya. platform aplikasi asli dengan python.

checkout video ini oleh pencipta BeeWare yang sempurna menjelaskan dan menunjukkan aplikasi itu

Bagaimana itu bekerja

Bahasa implementasi yang disukai Android adalah Java - jadi jika Anda ingin membuat aplikasi Android dengan Python, Anda harus memiliki cara untuk menjalankan kode Python Anda di Mesin Virtual Java. Inilah yang dilakukan VOC . VOC adalah transpiler - ia mengambil kode sumber Python, mengkompilasinya ke CPython Bytecode, dan kemudian mentranspilasi bytecode itu ke bytecode yang kompatibel dengan Java. Hasil akhirnya adalah file kode sumber Python Anda dikompilasi langsung ke file .class Java, yang dapat dipaketkan ke dalam aplikasi Android.

VOC juga memungkinkan Anda untuk mengakses objek Java asli seolah-olah objek itu adalah objek Python, mengimplementasikan antarmuka Java dengan kelas Python, dan subkelas kelas Java dengan kelas Python. Dengan ini, Anda dapat menulis aplikasi Android langsung pada API Android asli.

Setelah Anda menulis aplikasi Android asli Anda, Anda dapat menggunakan Briefcase untuk mengemas kode Python Anda sebagai aplikasi Android.

Tas kerja adalah alat untuk mengubah proyek Python menjadi aplikasi asli mandiri. Anda dapat mengemas proyek untuk:

  • Mac
  • Windows
  • Linux
  • iPhone / iPad
  • Android
  • AppleTV
  • tvOS.

Anda dapat memeriksa Aplikasi asli Android Tic Tac Toe ini ditulis dengan Python, menggunakan suite BeeWare. di GitHub

Selain alat BeeWare, Anda harus sudah menginstal JDK dan Android SDK untuk menguji aplikasi Anda.

dan untuk menjawab pertanyaan kedua Anda: lingkungan yang baik dapat berupa apa pun yang Anda sukai baik itu editor teks dan baris perintah, atau IDE, jika Anda mencari IDE python yang bagus, saya sarankan Anda mencoba Pycharm , yang memiliki edisi komunitas yang gratis, dan memiliki lingkungan yang mirip dengan studio android, karena fakta yang dibuat oleh perusahaan yang sama.

Saya harap ini membantu

maroof shittu
sumber
2
Apakah hanya saya, atau apakah VOC telah ditinggalkan?
Dana Gugatan Monica
2
ini jalan buntu (Terakhir kali saya memeriksanya: Desember 2018). Satu atau lebih komponen dalam solusi yang terlalu kompleks ini tidak berfungsi lagi, atau tidak dapat terus diperbarui.
Berry Tsakala
2
Hanya pembaruan untuk tahun 2019 ini, tetapi Kotlin sekarang menjadi bahasa pilihan untuk pengembangan Android.
DaveTheMinion
3
@Basj Saya ingin mengatakan bahwa Beeware pasti akan ada untuk sementara waktu, karena hanya dengan melihat akun GitHub-nya, Anda akan menemukan bahwa itu sedang dikembangkan secara aktif, dan jika Anda menuju ke saluran Gitter, Anda dapat selalu menjangkau seluruh tim, terutama Dr Russell (freakyboy) sang pencipta, dan komunitasnya cukup ramah, dan juga ada tweet terbaru (26 Sep 2019) dari akun resmi mereka yang mengumumkan bahwa mereka menerima hibah pendidikan dari Python fondasi perangkat lunak. Saya pikir itu akan sepadan dengan waktu Anda, terutama jika Anda menyukai python sebagai bahasa
maroof shittu
1
BeeWare tampaknya tidak mendukung Android (Java) pada tahap ini dalam acara apa pun.
Mark Anderson
15

Anda dapat mencoba BeeWare - seperti yang dijelaskan di situs web mereka:

Tulis aplikasi Anda dengan Python dan lepaskan di iOS, Android, Windows, MacOS, Linux, Web, dan tvOS menggunakan antarmuka pengguna asli yang kaya. Satu basis kode. Banyak aplikasi.

Memberikan Anda ingin sekarang Anda ingin menulis Aplikasi Android dengan Python, plus memiliki keuntungan bahwa Anda tidak perlu mempelajari kerangka kerja lain lagi di masa depan jika Anda akhirnya juga ingin melakukan sesuatu di salah satu platform terdaftar lainnya.

Berikut Tutorial untuk Aplikasi Android .

emmagordon
sumber
5
Apakah Anda membuat aplikasi sendiri dengan BeeWare?
Berry Tsakala
12

Ada dua pesaing utama untuk aplikasi python di Android

Chaquopy

https://chaquo.com/chaquopy/

Ini terintegrasi dengan sistem build Android, menyediakan Python API untuk semua fitur android. Mengutip situs "API Android lengkap dan perangkat antarmuka pengguna siap membantu Anda."

Waspadalah (toolkit widget Toga)

https://pybee.org/

Ini menyediakan transpiler multi target, mendukung banyak target seperti Android dan iOS. Ini menggunakan toolkit widget (toga) generik yang memetakan ke panggilan antarmuka host.

Yang mana?

Keduanya adalah proyek aktif dan akun github mereka menunjukkan cukup banyak aktivitas terkini.

Berhati-hatilah Toga seperti semua pustaka widget bagus untuk mendapatkan dasar-dasarnya ke berbagai platform. Jika Anda memiliki desain dasar, dan keinginan untuk memperluas ke platform lain, ini akan bekerja dengan baik untuk Anda.

Di sisi lain, Chaquopy jauh lebih tepat dalam memetakan API python ke Android. Ini juga memungkinkan Anda untuk menggabungkan Java, berguna jika Anda ingin menggunakan kode yang ada dari sumber lain. Jika Anda memiliki target desain yang ketat, dan terutama ingin menargetkan Android, ini adalah sumber daya yang jauh lebih baik.

Harvey
sumber
10

Android, Python!

Ketika saya melihat dua kata kunci ini bersama-sama dalam pertanyaan Anda, Kivy adalah salah satu yang datang ke pikiran pertama saya.

Logo Kivy

Sebelum datang ke pengembangan Android asli di Java menggunakan Android Studio, saya telah mencoba Kivy . Itu luar biasa. Inilah beberapa keuntungan yang bisa saya temukan.


Mudah digunakan

Dengan dasar python, Anda tidak akan kesulitan mempelajarinya.


Komunitas yang baik

Ini didokumentasikan dengan baik dan memiliki komunitas yang aktif dan hebat.


Lintas platform.

Anda dapat mengembangkan sesuatu untuk Android, iOS, Windows, Linux dan bahkan Raspberry Pi dengan kerangka tunggal ini. Sumber terbuka.


Ini adalah perangkat lunak gratis

Setidaknya beberapa dari kompetitor (Cross platform) itu ingin Anda membayar jika Anda menginginkan lisensi komersial.


Dukungan grafis yang dipercepat

Mesin grafis Kivy yang dibangun di atas OpenGL ES 2 membuatnya sesuai untuk perangkat lunak yang memerlukan rendering grafis cepat seperti game.



Sekarang masuk ke bagian pertanyaan selanjutnya, Anda tidak dapat menggunakan Android Studio IDE untuk Kivy. Berikut adalah panduan rinci untuk menyiapkan lingkungan pengembangan.

Bertram Gilfoyle
sumber
5
Dukungan Windows tertinggal jauh di belakang standar produksi (atau bahkan standar penghobi). Plus, separuh dunia tidak dapat menggunakannya karena kurangnya dukungan RTL.
Berry Tsakala
Mengapa Anda meninggalkan Kivy dan mengubahnya menjadi alat pengembangan asli? Anda menyarankan bahwa ini memiliki beberapa kelemahan.
igoemon