View on GitHub

Maisto bankas

Valgių apskaitos programėlė

download .ZIPdownload .TGZ

Maisto bankas

Gitter

PI;N (angl. TL;DR)

Valgių apskaitos programėlė "Maisto bankas": subalansuota "Maisto banko" savanoriams, bet tinka ir "Maltiečių ordino" virtuvių šefams bei kebabinių gaspadinėms!

Programėlė "Maisto bankas" yra licencijuota pagal "Apache License" sąlygas, vadinasi, programinę įrangą galima laisvai:

Projekto techniniai niuansai

Šiame dokumente galite susipažinti, kaip vyksta programėlės tobulinimas, apauginant ją nauju funkcionalumu ir koreguojant ar atsisakant senesnio, nebeatitinkančio vartotojų poreikių (arba bankrutavus kokiam nors API teikėjui).

Idėjų semtasi iš kyborgų korifėjaus Viliaus Kraujučio 2014 m. vasarį "Vinted" patalpose vestų "Android" mokymų, kurių metu buvo šnekučiuojamasi programuotojams skirtoje tarnyboje "Gitter".

Programavimo aplinkos įdiegimas

Jei norite prisidėti, tobulinant aplikaciją, turite lokaliai įsidiegti:

"Android" programėlės generavimas

Pasinaudojus "Android Studio" vedliu, iš "GitHub" kodo versijavimo sistemos galima parsiųsti programėlės struktūrą:

VCS --> Checkout from Version Control... --> GitHub.

Atsidariusiame lange į "Vcs Version URL" laukelį įveskite: https://github.com/apuokenas/MaistoBankas.git, o kaip "Parent Directory" nurodykite vietinį aplanką, kuriame talpinsite projekto failus.

P. S. Savo mašinoje reikia turėti git.exe bylą, kurios adresas įvedamas per "Settings" meniu:

File --> Settings --> Version Control --> Git.

Lauke "Path to Git executable" nurodomas kelias iki minėto failo. Pvz., jei esate "Windows" vartotojas:

C:\Users[Vartotojas]\AppData\Local\GitHub\PortableGit_[40_raidžių_ir_skaičių]\bin\git.exe.

Kodo modifikacijas ir susijusius komentarus galite peržiūrėti "GitHub" pakeitimų įrašuose.

Layout komponentai pagrindiniame fragment'e

"Nustatymų" fragment'o pridėjimas

Tai paprasta forma, kurioje randami keli įvesties laukeliai:

Ir, žinoma, mygelis "Išsaugoti".

Brūkšninio kodo skenerio implementavimas

Brūkšninius kodus skenuoja kita į "Maisto banką" integruota programėlė - "ZXing" (dar žinoma kaip "Zebra Crossing"). Skenavimas vykdomas, naudojantis Intent'u. Instrukcijas, kaip visa tai integruoti, galite rasti čia.

Activity gyvavimo ciklo registravimas

Siekdamas geriau suprasti Activity ir Fragment gyvavimo ciklus (angl. lifecycle), peržiūrėjau atitinkamą diagramą, kuria remiantis, įdėjau Log.d() komandas į BaseActivity šiuose metoduose:

Fragment'ų gyvavimo ciklo registravimas

Analogiškai Activity gyvavimo ciklo loginimo atvejui, pasidariau Fragment gyvavimo ciklo registravimą. Apie Fragment gyvavimo ciklus galima pasiskaityti oficialioje "Google" dokumentacijoje

Taigi reikia susikurti BaseFragment pagrindinę klasę, kurioje patalpinti loginimo metodai:

Duomenų bazės, skirtos saugoti brūkšninius kodus, integravimas

Funkcionalumas įgyvendintas, pasitelkus "ORM Lite".

Duomenų modelio kūrimas

Saugotina informacija

Prekė Item:

Nuskenuota prekė ScannedItem:

Naujai skenuojamų produktų išsaugojimas duomenų bazėje

Sukuriamas ir duomenų bazėn patalpinamas naujas ScannedItem objektas.

Apie tai, kaip susikurti "ORM Lite" duomenų bazės Helper klasę, galima sužinoti iš šių šaltinių:

Pasinaudojant Helper klase, įrašas išsaugomas duomenų bazėje.

Irašų, išsaugotų duomenų bazėje, rodymas

Atvaizduojamas nuskenuotų prekių sąrašas vis atnaujinamas naujais įrašais iš duomenų bazės

Nuskenuotos prekės informacijos rodymas

Ne pagal "Material Design" principus sukurtos vartotojo sąsajos pavyzdys: 2014-03-29 14 37 12