python

Studiez python kivy și pentru mine am decis să scriu o mică aplicație pentru a-mi diversifica dieta. A decis să împărtășesc. Articolul este conceput pentru începători în kivy. Aplicația necesită aproximativ 100 de linii de cod.

Scopul creării unei aplicații pentru biciclete:

  1. Evitați repetările frecvente în dietă. Să nu mănânci prea des același fel de mâncare.
  2. Nu am uitat felurile de mâncare pe care le-am mâncat, apoi am uitat și de ani de zile nu m-am mai întors la ele, pentru că nu mi-am amintit banal. Mi se întâmplă.

Introducere

Nu puteți citi în nici o versiune introductivă.

A trebuit să locuiesc într-o țară, în același hotel, unde erau hrăniți zilnic pentru micul dejun ouă și nimic mai mult, și după o lună a început să mă mâncărească. El a solicitat ajutor medical, deși nu suferise niciodată de așa ceva. După ce a învățat din experiența amară, după aceea, a decis pentru sine să permită cât mai puține repetări în mâncare, astfel încât să nu poată acumula nimic în corpul său. Aceasta este experiența mea personală, spun doar, fără să impun. Poate că nu există reguli, fără excepție, probabil că fulgi de ovăz pot fi consumați în fiecare zi timp de zeci de ani.

Capturi de ecran

Să presupunem că dieta mea constă din 50 de feluri de mâncare. De exemplu, astăzi am mâncat o omletă. Fac clic pe buton, iar omleta se află pe a 50-a linie din coadă și sunt 49 de feluri de mâncare în fața ei, pe care le voi mânca pentru a ajunge din nou la omletă. Aceasta este întreaga logică a aplicației. (Pe capturile de ecran, vasele sunt goale, toate coincidențele sunt întâmplătoare, nu au nicio legătură cu dieta mea reală).

Cod sursă și explicații

În mod deliberat nu am folosit fișiere kv, deoarece codul este dat în scopuri educaționale, pentru persoanele care sunt familiare cu python. Totul este scris pe piton gol. În explicații, nu mă voi opri asupra explicației codului python, ci merg imediat la caracteristicile specifice ale lui Kivy.


  • Clasa este responsabilă pentru lansarea paginii de pornire a aplicației, poate fi apelată după cum doriți, de exemplu StartScreen. Și moștenește modulul kivy Screen. Aplicația este formată din 3 ferestre, aceste ferestre sunt create folosind acest modul.

  • BoxLayout împarte ecranul în părți egale, orizontal în mod implicit, am scris orientare = 'vertical' pentru a împărți vertical

  • Buton - creează butoane, în on_press este setată funcția care va fi lansată la apăsare.
  • - adaugă butoane la straturi și ferestre

  • Aspectul grilei este oarecum similar cu eticheta tabelului din html, indicând cols - numărul de coloane sau rânduri - numărul de rânduri.

Puteți specifica ambii parametri sau un parametru.
Ecranul va fi împărțit în numărul dorit de compartimente.


  • RecycleView este modulul care creează derulare verticală în aplicația mea. O caracteristică a RecycleView este că construiește suluri cu elemente de aceeași lățime și înălțime. Și funcționează rapid. Și există un modul ScrollView, acesta poate construi suluri cu elemente de diferite dimensiuni, dar funcționează mai lent decât RecycleView
  • - în cod se găsesc deseori astfel de linii. Tocmai am folosit Config kivy ca magazin de date. Ei bine, să existe câteva mii de feluri de mâncare, nu are sens să faci o grădină cu sqlite și ceva similar. Toate datele sunt stocate într-un singur fișier. Acest fișier este stocat în același folder cu aplicația însăși, dacă specificați self.directory ca în codul meu, dar puteți specifica self.user_data_dir astfel încât acest fișier să nu fie distrus în timpul swapului sau actualizărilor.

  • Rulați pe Windows și Linux și MacOS

    Principiul pentru toate sistemele de operare este același:

    1. Punem python3
    2. Punem kiwi
    3. Creați un fișier main.py și lipiți întregul cod de mai sus în el
    4. Rulați comanda


    Programul ar trebui să câștige.

    Construiți un fișier apk și rulați pe telefonul dvs. Android

    Deci, avem un fișier de cod de program scris în python. Cum să creați o aplicație acum pentru a putea fi lansată pe un telefon Android? Anterior, a fost un proces destul de complicat, care necesita abilități și dans cu o tamburină. Acum nu este o problemă.
    Iată un ghid pas cu pas:

    1. Descarcăm mașina virtuală gata de la dezvoltatorii kivy în care totul este deja configurat. https://github.com/Zen-CODE/kivybits/blob/master/KivyCompleteVM/ReadMe.txt. Parolă: kiwi
    2. Rulați-l în caseta virtuală.
    3. Deschideți terminalul și introduceți următoarele comenzi:

  • Ultima comandă creează folderul bin în același director, în bin veți găsi fișierul foodoptions-0.1-debug.apk, pe care îl puteți încărca pe telefon, instala și bucura aplicația.

  • Cum se încarcă fișierul apk pe telefon?

    Puteți, desigur, să o faceți după cum doriți, să vă trimiteți prin poștă, să o puneți undeva, să o puneți în telegrame etc., apoi să descărcați aplicația pe telefonul dvs.

    Dar există un instrument specializat în acest sens. Activăm modul dezvoltator pe telefon, îl conectăm cu un cablu USB. Playerul virtual ar trebui să vadă că ați conectat telefonul. Următoarea instalare adb:


    După instalare, accesați folderul bin și introduceți comanda


    Și după aproximativ un minut, puteți vedea aplicația pe telefon după ce ați văzut-o
    Succes în consolă.


    Dacă brusc aplicația se blochează sau nu se comportă așa cum era de așteptat, atunci există o astfel de comandă pentru a vizualiza erorile

    Numele aplicației rusești

    Dacă doriți ca cererea dvs. să fie apelată în limba rusă, de exemplu, „Jurnal alimentar”, trebuie să faceți modificări la fișier:


    Numele rusesc al aplicației este scris în eticheta appName, acest folder este creat după prima lansare a depanării buildozer Android. După editarea fișierului, reveniți la folderul FoodOptions și rulați din nou depanarea buildozer Android. Fișierul va fi colectat într-un mod nou. După instalare pe telefon, numele programului va fi scris în limba rusă.

    Despre fișierul buildozer.spec

    Aici e al meu github fișier: buildozer.spec
    Acesta este fișierul care spune buildozer cum să construiască pachetul.

    Există multe variații diferite. Pentru cine este interesant, apoi introduceți următoarea comandă în interiorul utilizatorului virtual:


    Un fișier implicit buildozer.spec va fi creat cu o grămadă de comentarii și explicații. De exemplu, dacă doriți o pictogramă proprie pentru o aplicație, specificați în linie:


    fișierul dvs. cu o pictogramă. Și aplicația va fi asamblată cu pictograma dvs.

    Dacă trebuie să încărcați un modul specific care nu este inclus în biblioteca oficială Python, atunci acest lucru se face în cerințele = linie. În general, povestea fișierului buildozer.spec poate avea un articol întreg, sau chiar două.

    Descărcarea aplicației pe Google Play

    Trebuie să vă înregistrați, să parcurgeți toate procedurile, să obțineți cheile. Și apoi fugiți:


    Fișierul rezultat apk-apkname-release.apk se încarcă pe Google Play.

    Link-uri

    • Lecții video despre kivy în limba rusă. Mi-a plăcut personal
    • Articole despre Habré despre kivy de la HeaTTheatR (și îi mulțumim pentru ajutor!)

    În principiu, oricine poate programa în python poate schimba aplicația și poate adăuga cu ușurință următoarele:

    1. Adăugați design pentru a face aplicația frumoasă
    2. Utilizați fișierele kv pentru a ușura codul. Aș da această analogie: cei care sunt familiarizați cu programarea web, își imaginează un cod fără șabloane html și cu șabloane html. Punerea butoanelor, straturilor și a altor lucruri în fișiere kv este ceva de genul jinja2 pentru un programator web. Logica rămâne în fișierele .py și baubles - în fișiere kv.
    3. Adăugați numărarea de calorii, proteine, carbohidrați, grăsimi (BJU)
    4. Adăugați capacitatea de a fotografia alimente