
Saya belajar python
kivy dan memutuskan sendiri untuk menulis aplikasi kecil untuk mendiversifikasi diet saya. Saya memutuskan untuk membagikannya. Artikel ini untuk pendatang baru untuk kivy. Aplikasi ini membutuhkan sekitar 100 baris kode.
Tujuan membuat
aplikasi sepeda:
- Hindari pengulangan yang sering dalam makanan. Agar tidak makan hidangan yang sama terlalu sering.
- Jangan lupa hidangan yang saya makan, lalu lupa, dan selama bertahun-tahun tidak kembali ke mereka, karena saya tidak ingat norak. Itu terjadi pada saya.
Intro
Anda tidak dapat membaca lirik di intro.
Saya harus tinggal di satu negara, di satu hotel, di mana saya diberi makan telur setiap hari untuk sarapan dan tidak lebih, jadi sebulan kemudian saya mulai gatal. Dia mencari bantuan medis, meskipun dia belum pernah menderita yang seperti ini sebelumnya. Diajarkan oleh pengalaman pahit, setelah itu dia memutuskan untuk dirinya sendiri untuk memungkinkan pengulangan sesedikit mungkin dalam makanan sehingga tidak ada yang bisa menumpuk di tubuh. Saya katakan ini adalah pengalaman pribadi saya, tanpa memaksakan. Mungkin tidak ada aturan tanpa kecuali, mungkin oatmeal dapat dimakan setiap hari selama beberapa dekade.
Tangkapan layar

Misalkan diet saya terdiri dari 50 hidangan. Sebagai contoh, saya makan telur dadar hari ini. Saya klik tombolnya, dan omeletnya ada di baris 50 sejalan, dan di depannya ada 49 hidangan yang akan saya makan untuk sampai ke omelet lagi. Itulah keseluruhan logika aplikasi. (Dalam tangkapan layar, hidangan dimasak, semua kebetulan adalah acak, tidak ada hubungannya dengan diet saya yang sebenarnya).
Kode Sumber dan Penjelasan
main.pyfrom kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout from kivy.uix.screenmanager import ScreenManager, Screen from kivy.uix.recycleview import RecycleView from kivy.uix.gridlayout import GridLayout from kivy.core.window import Window from kivy.config import ConfigParser from kivy.uix.textinput import TextInput from kivy.uix.label import Label from kivy.metrics import dp from datetime import datetime import os import ast import time class MenuScreen(Screen): def __init__(self, **kw): super(MenuScreen, self).__init__(**kw) box = BoxLayout(orientation='vertical') box.add_widget(Button(text=' ', on_press=lambda x: set_screen('list_food'))) box.add_widget(Button(text=' ', on_press=lambda x: set_screen('add_food'))) self.add_widget(box) class SortedListFood(Screen): def __init__(self, **kw): super(SortedListFood, self).__init__(**kw) def on_enter(self):
Saya sengaja tidak menggunakan file kv, karena kode ini diberikan untuk tujuan pendidikan, untuk orang-orang yang terbiasa dengan python. Semuanya ditulis dengan python telanjang. Dalam penjelasannya, saya tidak akan membahas penjelasan kode python, tetapi segera melanjutkan ke fitur spesifik Kivy.
Ayo pergi:
class MenuScreen(Screen):
Kelas bertanggung jawab untuk meluncurkan halaman awal aplikasi, dapat disebut apa saja, misalnya, StartScreen. Dan mewarisi modul Layar kivy . Aplikasi terdiri dari 3 jendela, jendela ini dibuat menggunakan modul ini box = BoxLayout(orientation='vertical')
BoxLayout membagi layar menjadi bagian yang sama, horisontal secara default, saya menulis orientasi = 'vertikal' untuk membelah secara vertikal Button(text=' ', on_press=lambda x: set_screen('list_food'))
Tombol - membuat tombol, on_press mengatur fungsi mana yang akan diluncurkan saat ditekan.
.add_widget()
- Menambahkan tombol ke lapisan dan jendela self.layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
Layout Grid agak mengingatkan pada tag tabel dalam html, menunjukkan cols - jumlah kolom atau baris - jumlah baris.
Anda dapat menentukan parameter atau satu parameter.
Layar akan dibagi menjadi jumlah rongga yang diinginkan.
root = RecycleView(size_hint=(1, None), size=(Window.width, Window.height))
RecycleView - modul yang dapat digunakan untuk membuat gulir vertikal di aplikasi saya. Fitur RecycleView adalah ia membangun gulungan dengan elemen dengan lebar dan tinggi yang sama. Dan itu bekerja dengan cepat. Dan ada modul ScrollView , ia dapat membangun gulungan dengan elemen ukuran yang berbeda, tetapi bekerja lebih lambat dari RecycleView
config.get('General', 'user_data')
- dalam kode baris seperti itu sering ditemukan. Saya hanya menggunakan repositori asli Config kivy sebagai penyimpan data. Baiklah, biarlah ada beberapa ribu hidangan, tidak masuk akal memagari taman dengan sqlite dan semacamnya. Semua data disimpan dalam satu file. File ini disimpan dalam folder yang sama dengan aplikasi itu sendiri, jika Anda menentukan self.directory seperti dalam kode saya, tetapi Anda dapat menentukan self.user_data_dir sehingga file ini tidak dihancurkan selama permutasi atau pembaruan.
Berjalan di windows & linux & makro
Prinsip untuk semua sistem operasi adalah sama:
- Kami menempatkan python3
- Kami menempatkan kivy
- Kami membuat file main.py dan menempelkan seluruh kode di atas ke dalamnya
- Dijalankan oleh tim
python3 main.py
Program harus bekerja.
Bangun file apk dan jalankan di ponsel dengan android
Jadi, kami memiliki file kode program yang ditulis dengan python. Bagaimana sekarang membuat aplikasi sehingga bisa diluncurkan di ponsel dengan android? Sebelumnya, itu adalah proses yang agak canggih yang membutuhkan keterampilan dan tarian dengan rebana. Sekarang ini bukan masalah.
Berikut ini adalah instruksi langkah demi langkah:
- Unduh mesin virtual siap pakai dari pengembang kivy, di mana semuanya sudah terkonfigurasi. https://github.com/Zen-CODE/kivybits/blob/master/KivyCompleteVM/ReadMe.txt . Kata sandi: kivy
- Kami meluncurkannya di Kotak Virtual.
- Buka terminal dan masukkan perintah berikut:
- Perintah terakhir membuat folder nampan di direktori yang sama, di nampan Anda akan menemukan file foodoptions-0.1-debug.apk, yang dapat Anda unggah ke ponsel Anda, instal dan nikmati aplikasi
Bagaimana cara mengunggah file apk ke ponsel?Tentu saja, Anda dapat melakukannya sesuka Anda, mengirimkannya melalui pos, meletakkannya di suatu tempat, memasukkannya ke dalam telegram, dll., Lalu mengunduh aplikasi ke telepon Anda.
Tetapi ada alat khusus untuk ini. Kami mengaktifkan mode pengembang di telepon, sambungkan dengan kabel USB. Mesin virtual akan melihat bahwa Anda telah menghubungkan ponsel. Selanjutnya, pasang adb:
sudo apt install adb
Setelah instalasi, buka folder bin dan masukkan perintah
adb install -r foodoptions-0.1-debug.apk
Dan Anda dapat melihat aplikasi di telepon dalam waktu sekitar satu menit setelah kami melihatnya
Sukses di konsol.
kivy@kivy-complete:~/Project/FoodOptions/bin$ adb install -r foodoptions-0.1-debug.apk 342 KB/s (10083019 bytes in 28.730s) Success kivy@kivy-complete:~/Project/FoodOptions/bin$
Jika tiba-tiba aplikasi mogok atau tidak berfungsi seperti yang diharapkan, maka ada perintah untuk melihat kesalahan
adb logcat| grep python
Nama aplikasi RusiaJika Anda ingin aplikasi Anda dipanggil dalam bahasa Rusia, misalnya, "Makanan Harian", maka Anda perlu membuat perubahan pada file:
.buildozer/android/platform/build/dists/foodoptions/templates/strings.tmpl.xml
Nama aplikasi Rusia ditulis dalam tag appName, folder ini dibuat setelah peluncuran pertama debug android buildozer. Setelah mengedit file, kembali ke folder FoodOptions dan jalankan debug buildozer android lagi. File akan dikumpulkan dengan cara baru. Setelah instalasi di telepon, nama program akan ditulis dalam bahasa Rusia.
Tentang file buildozer.specIni file github saya:
buildozer.specFile ini memberi tahu buildozer bagaimana tepatnya membangun paket.
Ada banyak variasi berbeda. Siapa yang peduli, lalu masukkan perintah di dalam mesin virtual:
cd /tmp buildozer init
File buildozer.spec default akan dibuat dengan banyak komentar dan penjelasan. Misalnya, jika Anda ingin beberapa ikon untuk aplikasi Anda, maka sebutkan di baris:
icon.filename = %(source.dir)s/data/icon.png
file Anda dengan ikon. Dan aplikasi akan sudah berkumpul dengan ikon Anda.
Jika Anda perlu memuat beberapa modul tertentu yang bukan bagian dari pustaka python resmi, maka ini dilakukan di baris requirement =. Secara umum, cerita tentang file buildozer.spec dapat mengambil seluruh artikel, atau bahkan dua.
Unduh aplikasi di Google PlayPenting untuk mendaftar, melalui semua prosedur, mendapatkan kunci. Dan kemudian jalankan:
sudo apt install zipalign buildozer android release jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /path/keystore bin/apk-unsigned.apk apkname zipalign -v 4 bin/apk-apkname-unsigned.apk bin/apk-apkname-release.apk
File yang dihasilkan apk-apkname-release.apk diunggah ke Google Play.
Referensi
Pada prinsipnya, setiap orang yang dapat memprogram dengan python akan dapat mengubah aplikasi dan dengan mudah menambahkan yang berikut:
- Tambahkan desain untuk membuat aplikasi ini indah
- Gunakan file kv untuk membuat kode lebih mudah. Saya akan memberikan analogi: mereka yang akrab dengan pemrograman web, bayangkan kode tanpa template html dan template html. Menghapus tombol, layer dan hal-hal lain ke dalam file-kv adalah sesuatu seperti jinja2 untuk seorang programmer web. Logikanya tetap di file .py, dan pernak-pernik tetap di file kv.
- Tambahkan penghitungan kalori, protein, karbohidrat, lemak (BJU)
- Tambahkan kemampuan untuk memotret hidangan