Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
LUCRARE DE LICENŢĂ
Coordonator Absolvent
2016
Cuprins
1. Introducere (Descrieretea domeniului din care face parte licenţa,Scopul şi obiectivele
lucrării,Descrierea capitolelor).......... .......................................................................... 5
7.Bibliografie...................................................................................................................... 34
2
Abstract
In lucrarea de licenta abordata este prezentata o solutie pentru pentru utilizatorii
smartphone şi tablete cu sistemul de operare Android şi anume propune o alimentaţie şi un
stil de viaţă sănătos.Lucrarea este reprezentată de o aplicaţie bazată pe un suport decizional
pentru alegerea meniului zilnic.Utilitatea aplicaţiei constă în următoarele lucruri:un
utilizator poate avea acces la diferite reţete culinare în vederea unei alimentaţii
sănătoase,poate adăuga o reţetă proprie,poate avea acces zilnic la un daily menu,poate găti
diferite preparate având instrucţiuni de gătire pentru fiecare aplicaţie,precum şi numărul de
calorii pentru o evidenţă clară a unei limite zilnice consumate în vederea unei alimentaţii
sănătoase.
1.Introducere
1.1 Descrierea domeniului din care face parte tema de licenţa
3
aplicaţii existente ar putea aduce noi considerente în ceea ce priveşte tehnologia şi în
principal aplicaţiile mobil.
Tot mai mulţi utilizatori folosesc diferite aplicaţii pentru a-şi uşura în acest mod
viaţa,pentru a avea acces mult mai rapid la anumite informaţii şi în acest mod putând să
realizeze mai multe lucruri într-o singură zi.Companiile au văzut această cerere pe piaţă şi
vin mereu cu ceva nou în speranţa de a reuşi să impresioneze societatea,zi de zi apărând
noi aplicaţii implementate cu ajutorul diferitelor tool-uri în special cele mai noi tehnologii
de pe piaţă având un avantaj,deoarece omul este mereu un adept al lucruri nou,revoluţionar
4
1.3 Descrierea capitolelor
Pentru o bună înţelegere a lucrării,descrierea capitolelor este destul de importantă,în acest
fel avându-se o imagine clară şi de ansamblu asupra paşilor care au fost făcuţi în realizarea
lucrării:
Capitolul 1-Introducere şi prezentarea domeniului lucrării de licenţă-ne prezintă o scurtă
introducere în domeniul lucrării,precum şi motive generale ale alegerii temei de licenţă
Capitolul 2 – Descrierea problemei abordate(Studiul asupra aplicaţiilor similare din
domeniu,Descrierea funcţionalităţilor).În acest capitol sunt detaliate pe larg toate
problemele legate de descrierea funcţionalităţilor,precum şi un studiu amănunţit despre
aplicaţii similare existente la ora actuală pe piaţă
Capitolul 3 -Analiza metodelor de rezolvare a problemei(Tehnologii folosite,Motivarea
alegerii prin comparaţie)-In capitolul 3 sunt prezentate toate tehnologiile folosite în
implementarea aplicaţiei,precum şi diverse motive în alegerea acestora în detrimentul altor
tehnologii
Capitolul 4-Dezvoltarea aplicaţiei(Arhitectura aplicaţiei,Testarea aplicaţiei)-Capitolul 4 ne
prezintă toate detaliile tehnice ale aplicaţiei,deoarece aici este descrisă toată arhitectura
aplicaţiei,metode folosite,precum şi testarea aplicaţiei bazată pe anumite scenarii.
Capitolul 5- Studiu de caz(Scenariu complet al aplicaţiei)-Capitolul 5 se adresează tuturor
utilizatorilor,deoarece aici este făcut un studiu de caz realizat pe baza tuturor paşilor pe
care un utilizator poate să îi facă pentru a ajunge la rezultatul dorit,sau pentru toţi paşii de
utilizare pe care acesta îi poate face.
Capitolul 6- Concluzii şi contribuţii personale(Concluzii,Contribuţii personale)-Sunt
prezentate câteva aspecte în urma studiului făcut în vederea realizării lucrării de licenţă.
Capitolul 7- Bibliografie
5
2.Descrierea problemei abordate
6
acestea le-a cerut.Se vor prezenta de asemenea şi posibile riscuri legate de implementarea
anumitor funcţionalităţi şi ulterior se va lua decizia dezvoltării proiectului.
Respectarea tuturor paşilor enumeraţi mai sus sunt fac parte dintr-o analiză amplă a
oricărui proiect de dezvoltare software.
Pentru a îndeplini corespunzător cele spuse mai sus, aplicaţia Suport decizional
pentru alegerea meniului zilnic, se adresează tuturor utilizatorilor ce folosesc sistemul de
operare Android.Toate functionalitatile aplicatiei sunt implementate intr-un mod cat mai
simplu pentru o buna intelegere a utilizatorului in general,devoltatorul implementand totul
pas cu pas pentru a ajunge la rezultatul dorit.
Acesta va putea accesa din meniul din partea stângă diferitele categorii de reţete
culinare,va putea adăuga reţete noi,va putea edita reţete sau va putea şterge reţetele
adăugate de el.De asemenea,acesta va putea adăuga o anumită reţete la reţetele sale
favorite şi va putea acorda un rating fiecare reţete preparate.
7
a numărului de calorii pe care trebuie să îl consumi,lucru important în menţinerea unei
alimentaţii sănătoase şi a unui stil de viaţă sănătos.
Fig.1-Retete culinare
8
b) Reţete ca la mama
Reţete ca la mama este o aplicaţie mobil destinată utilizatorilor de smartphone cu
sistem de operare android.Aceştia pot accesa diferite tipuri de reţete culinare din
meniul din partea stângă,pot accesa o reţetă având paşii de preparare a acesteia şi
ingredientele utilizate.Aceştia pot căuta o reţetă preferată şi o pot adăuga în categoria
Reţete Favorite.
Fig.2-Retete ca la mama
c) Gustos.ro
Gustos.ro este o aplicaţie android fără prea multe funcţionalităţi dezvoltate,cele mai
importante fiind partea de căutare a reţetei,posibilitatea de a adăuga o reţetă la reţetele
tale favorite,precum şi secţiunea de comentarii.Meniul principal este format din din
componente:Căutare,Reţete favorite şi cărţi de bucate.
9
Reţetele tale favorite-aceasta componentă îi permite utilizatorului să salveze toate
reţetele pe care le-a gătit până acum,sau cele pe care urmează să le gătească.
Cautare-componenta ce permite utilizatorului să caute reţeta dorită
Cărţi de bucate-aceasta componentă îţi oferă posibilitatea de a explora multitudea de reţete
culinare pe care le oferă aplicaţia,precum şi posibilitatea de a te informa cu ultimele noutăţi
în materie de gastronomie.
Fig.3-Gustos.ro
10
aplicaţiilor de acest tip,acestea fiind de baza oricărui utilizator ce doreşte o alimentaţie şi o
nutriţie sănătoasă:
Gamă variată de reţete culinare
Gestionarea reţetelor printr-un motor de căutare,în acest fel
utilizatorul putând accesa reţeta dorită doar prin introducerea
numelui
Gestionarea reţetelor printr-un motor de căutare avansate,în funcţie
de ingrediente sau calorii
afişarea unui meniu zilnic pe pagina principală format din 3 reţete
culinare
Instrucţiunile de gătire pentru fiecare reţetă în parte
Gestionarea reţetelor anterioare prin adăugarea acestora în secţiunea
reţete favorite
Feedback-ul pentru fiecare reţetă în parte
11
Fiecare utilizator va avea posibilitatea de a-şi salva reţetele favorite prin adăugarea
acestora la Reţete favorite,precum şi acordarea unei recenzii pentru fiecare reţetă culinară
în parte.
12
3.Analiza metodelor de rezolvare a problemei
13
Firebase conţine diferite funcţii,precum Firebase Authentification folosită în
aplicaţia dezvoltată pentru sistemul de logare.Firebase Authentification oferă diferite
servicii de back-end,SDK-uri uşor de utilizat şi biblioteci UI pentru logarea utilizatorilor în
aplicaţia dată.Suportă autentificare cu cont de email şi parolă sau cu diferite reţele
sociale(Facebook,Twitter,Gmail).
Fig.4-Autentificare User
14
SQLite are o mulţime de caracteristici,una dintre cele mai importante fiind faptul că nu
necesită administrare şi instalare.Tranzacţiile prezintă cele 4
proprietăţi(ACID):atomicitate,durabilitate,consistentă,independenţă,vine în componenţa sa
cu o interfaţă de sine stătătoare prin care se poate administra baza de date.
După cum am spus şi mai sus, Android este bazat pe un kernel de Linux.Kernel-ul
este nucleul unui sistem de operare şi împreună cu acesta ajută la o bună gestionare a
resurselor sistemului,comunică cu dispozitivele externe şi ajută aplicaţiile să comunice cu
hardware-ul.
15
Fig.5-Kernel Android
Android are la bază limbajul de programare Java care are acces fără absolut nicio
restricţie la API-urile de Android.Java este la ora actuală unul dintre cele mai folosite
limbaje de programare orientat obiect mai ales pentru aplicaţiile client-server.Java este un
limbaj de programare portabil,de aceea majoritatea companiilor în ziua de astăzi se
bazazea pe acest nou trend:Java.
Android Studio 2.0 este un mediu de dezvoltare în care poţi construi destul de
repede şi cu o calitate ridicată aplicaţii pentru platformă Android.Acesta este realizat în
parteneriat cu platforma Android şi suportă cele mai noi Api-uri de pe piaţă la ora
actuală.Acest mediu de dezvoltare are integrat şi un emulator,ce simulează un smartphone
în privinţa testării aplicaţiei realizate.Emulatorul de pe acesata versiune este mult mai rapid
decât cel precedent.Un alt avantaj al acestui mediu de dezvoltare este rularea
instantă,dezvoltatorul putând vedea în timp real în aplicaţie modificările pe care le
realizează asupra codului.
16
3.2 Motivarea alegerii prin comparatie
Un avantaj major în folosirea SQLite este faptul că toată baza de date este stocată
într-un fişier pe disc,lucru care face ca baza de date să fie portabilă.Un alt avantaj ar fi
simplitatea acestei biblioteci în dezvoltarea aplicaţiilor mobil,la ora actuală fiind una dintre
cele mai folosite.
17
4.Considerente legate de dezvoltarea aplicaţiei
Home Activity este activitatea principală a aplicaţiei aici regăsindu-se implementate mai
multe metode cum ar fi metoda de creare e meniului şi metoda de creare a bazei de date.
18
Fig.6-Structura aplicatiei
19
Fig.7-Metoda logare
În Fig.7 este prezentată metoda de logare cu firebase a unui utilizator care are un cont deja
creat în aplicaţie.
În SignUpActivity sunt realizate metodele pentru crearea contului unui utilizator prin
completarea anumitor câmpuri.Contul creat se va salva în tabela utilizatori existentă în
Firebase.
Pentru a putea avea acces la baza de date firebase sunt necesare câteva reguli prezentate în
Fig.8:
Datele în urma înregistrării unui utilizator se vor salva în baza de date oferită de firebase-
tabela Users.Datele se vor salva sub forma unui JSON.
20
Fig.9-Salvare cont in baza de date
În Fig.9 este realizată salvarea unui cont în baza de date firebase.De menţionat este
faptul că bazele de date oferite de firebase sunt NoSql.
Fragmentele sunt reprezentate de categoriile de mese din cadrul alimentaţiei(mic
dejun,prânz,cină).În fiecare fragment există create diferite metode şi instanţe.În fiecare
dintre aceste fragmente există câte o listă în care sunt adăugate reţetele culinare filtrare în
funcţie de categoria din care fac parte.
Tot aici sunt prezente şi şi partea de adăugare a unei reţete culinare(AddFragment).În acest
fragment sunt realizate diferite permisii,precum faptul că un utilizator în momentul
adăugării unei reţete poate accesa galeria proprie a telefonului sau poate face o captură
instant.
În secţiunea Models sunt implementate diferite
clase(Categorie,DailyMenu,Ingredient,Reţeta,Uşer),ce conţin constructori şi câmpuri
utilizate şi în baza de date.
În secţiunea utils sunt prezente 3 clase:o clasă este realizată pentru baza de date şi
anume DataBaseHelper în care sunt implementate şi interogările făcute în baza de
date,celalalte clase conţinând metode utilizate în aplicaţie
21
Fig.10-Diagrama bazei de date
22
Metoda pentru realizarea meniului de navigare:
Există o multitudine de teste care se pot face după dezvoltarea unei aplicaţii,de
exemplu testare manuală,testare automată,testare funcţională.
Testarea are un rol foarte important în realizarea unei aplicaţii,deoarece aceasta constă în
investigarea tuturor defectelor ce apar pe parcursul dezvoltării.Realizarea testării duce la
livrarea unui produs de o calitate ridicată.Se testează de asemenea şi componentele ce ţin
de parte de interfaţă,precum dimensiunile să fie similare între secţiuni sau să nu fie folosite
o gamă largă de culori.
În general existe multe mai multe echipe de testare care investighează un
produs,acesta trecând prin mai multe faze în cadrul testării,precum şi o echipă care
investighează faptul cât de repede utilizatorul primeşte un răspuns în urma unei cereri.
23
În privinţa realizării testării aplicaţiei,ne putem baza pe testarea manuală,care
cuprinde un scenariu cu fluxul aplicaţiei.
Se va crea un cont de test pentru logarea în aplicaţie.Dacă userul sau parola sunt greşite se
va afişa un mesaj de eroare.După accesarea aplicaţiei se vor verifica toate funcţionalităţile
acesteia,butoanele dacă sunt funcţionale,precum şi dacă fiecare secţiune din meniu este
populată corespunzător.
Se va avea în vedere şi faptul că fonturile folosite să fie similare pentru a nu apărea o
discrepanţă în secţiunile aplicaţiei,precum şi o paletă de culori corespunzătoare în vederea
unui aspect plăcut din perspectiva utilizatorului.
24
5.Studiu de caz
5.1 Scenariul complet al aplicaţiei
Fig.11-Pagina logare
25
În cazul în care un utilizator nu are cont creat acesta are posibilitatea de a se
înregistra.
Apăsând butonul Înregistrare se va deschide o nouă pagină în care utilizatorul îşi va
introduce date personale precum Nume,Prenume,Număr de telefon,Adresa de
Email,Username folosit pentru autentificare şi parola.Contul va fi salvat în tabela de useri
pe care firebase o creează automat.Ulterior când vom accesa aplicaţia cu contul şi parola
create se realizează un request către firebase,realizându-se logarea în cadrul aplicaţiei.
26
Fig.12-Detalii reteta
Tot aici utilizatorul îşi poate adăuga reţeta respectivă la Favorite prin apăsarea
butonului ''Adauga la favorite''.Tot aici utilizatorul va putea acorda un rating reţetei
respective,acest rating fiind între 1-5 stele.
În Fig.13 se pot observa toate aceste aspecte,în care utilizatorul îşi poate adăuga reţeta
respectivă la favorite sau poate acorda un rating reţetei accesate.
Fig.13-Rating-ul aplicatiei
Pe pagina principală se găseşte în colţul din dreapta ''Search button'',prin apăsarea acestuia
utilizatorul putând face o căutare personalizată pentru o reţetă respectivă.
27
Sub bară ce conţine butonul de Search există o bară de căutare avansată[Fig.14] în care
utilizatorul îşi poate introduce alimentele de care dispune,aplicaţia returnând apoi rezultate
în funcţie de ingredientele introduse.
Fig.14-Cautare avansata
În colţul din dreapta jos se afla butonul de ''Adaugare reteta''.Prin apăsarea acestuia
se va deschide o nouă pagină [Fig.15] în care utilizatorul poate adăuga o reta
proprie.Acesta va selecta prima dată categoria din care face parte reţeta culinară,acestea
fiind reprezentate printr-o listă de cateogorii din care acesta va selecta una.
Apoi va urma completarea câmpurilor(Nume,Timp de preparare,Timp gătire,Nivel,Număr
porţii,Cantitate,Ingredient,Intructiuni).Prin apăsarea butonului ''Adauga ingredient nou''
utilizatorul poate adăuga toate ingredientele necesare preparării reţetei culinare.De
asemenea se poate adăuga şi poza cu reteta respectivă din galeria proprie a telefonului.Prin
apăsarea butonului ''Galerie'' aplicaţia va accesa pozele din Galeria telefonului.Butonul
''Fotografie'' se poate folosi în cazul în care utilizatorul doreşte să fotografieze şi să încarce
reţeta preparată în momentul respectiv.
Butonul ''Renunta'' va anula salvarea reţetei şi îl va trimite pe utilizator în pagina
principală.Prin apăsarea butonului ''Adauga'' reţeta va fi salvată în baza de date.Aceasta va
fi vizibilă în secţiunea ''Favorite'' din meniul din partea stângă.
28
Fig.15-Adaugare reteta
29
Fig.16-Meniu Retete
30
Fig.17-Sortare retete
Fiecare reţetă culinară conţine o secţiune unde fiecare utilizator va putea lăsa o
recenzie despre prepararea reţetei respective.
În meniul din stânga se află butonul de Delogare.Prin apăsarea acestuia utilizatorul va fi
scos din aplicaţie şi va fi redirecţionat în pagina principală de logare,acesta putând să
aleagă o nouă opţiune de logare în aplicaţie sau să închidă aplicaţia definitiv.
31
6.Concluzii şi contribuţii personale
6.1Concluzii
Cum am spus şi mai sus existenţa multor companii cu profil IT se datorează cererii
de pe piaţă, cu precădere din ultimii ani.
Datorită,multitudinii de tehnologii existente pe piaţă la ora actuală,dezvoltarea de aplicaţii
a devenit destul de facilă,iar majoritatea aplicaţiilor sunt foarte utile şi de bun augur pentru
utilizatori.
Aplicaţia ''Suport decizional pentru alegerea meniului zilnic'' dispune de câteva
funcţionalităţi menite să îi reducă timpul necesar unei persoane de a găti un preparat
culinar şi să îi ofere un stil de viaţă sănătos.Utilizatorul îşi poate găti şi anumite reţete
culinare doar cu ingredientele de care dispune la momentul respectiv având o
funcţionalitate disponibilă în aplicaţie ce îi permite introducerea unor ingrediente şi
întoarcerea rezultatelor în funcţie de ingredientele respective.
Fiecare om are nevoie de o alimentaţie sănătoasă,de aceea aplicaţia dezvoltată în acest
proiect doreşte a veni în ajutorul fiecare persoane prin recomendarea zilnică a unui meniu
în privinţa unei alimentaţii sănătoase.Aplicaţia cred că este benefică pentru fiecare
om,deoarece în acest mod poţi avea acces facil la o multitudine de reţete,meniul zilnic fiind
făcând parte dintr-un stil şi un mod de viaţă sănătos.
Realizarea acestei aplicaţii va avea o contribuţie pentru fiecare utilizator prin faptul
că va veni în ajutorul fiecăruia,oferindu-i o multitudine de reţete culinare în alcătuirea
meniului zilnic.
Toate funcţionalităţile implementate au fost gândite în aşa fel încât aplicaţia să vină în
ajutorul utilizatorului scurtându-i timpul de preparare a unui meniu zilnic prin instrucţiuni
fixe şi detalii despre prepararea unei anumite reţete culinare.
Am observat,în urma studiului aplicaţii similare,dar în realizarea acestei aplicaţii au fost
aduse funcţionalităţi noi.
32
că majoritatea persoanelor sunt active pe o reţea de socializare,în aplicaţia a fost
implementat şi sistemul de logare cu reţeaua de socializare Facebook.Partea de adăugare
reţetă a fost realizată,deoarece fiecare utilizator poate adăuga reţete noi pentru a le
împărtăşi cu alţi utilizatori,făcând astfel un schimb de informaţii.De asemenea utilizatorul
dispune şi de un motor de căutare avansată,acesta putând face o căutare a reţetelor după
anumite ingrediente,sau de ingredientele de care dispune la momentul respectiv.Aplicaţia
astfel îi va întoarce rezultatele dorite,astfel având reţete care le poate realiza la momentul
respectiv.
33
Bibliografie
1. Aplicatie Retete Culinare-Fig.1:
https://play.google.com/store/apps/details?id=ro.bluelineIT.reteteculinare&hl=ro/
accesat la data de 05.05.2016
2. Aplicatie Retete ca la mama-Fig.2:
https://play.google.com/store/apps/details?id=com.up2date.retetecalamama&hl=ro/
accesat la data de 05.05.2016
3. Aplicatie Gustos.ro-Fig.3:
https://play.google.com/store/apps/details?id=com.TreeWorks.Gustos.ro&hl=ro/
accesat la data de 05.05.2016
4. Autentificare User-Fig.4 https://firefeed.io/about.html/ accesat la data de
10.05.2016
5. Kernel Android-Fig.5 http://lifehacker.com/5881842/how-to-get-better-battery-life-
and-performance-on-your-android-phone-with-a-new-kernel/ accesat la data de
14.05.2016
6. Jonathan Simon, Head First Android Development 2012
7. Bill Phillips,Chris Stewart Brian Hardy & Kristin Marsicano, Android
Programming:The Big Nerd Ranch Guide 2nd Edition
8. Documentatie Firebase Api-https://www.firebase.com/docs/ accesat la data de
19.05.2016
9. Sistem de operare Android- https://developer.android.com/guide/index.html accesat
la data de 25.05.2016
https://developer.android.com/reference/org/w3c/dom/Document.html accesat la
data de 25.05.2016
10. Integrare Firebase cu Android- https://www.firebase.com/docs/android/guide/
accesat la data de 27.05.2016
11. Baze de Date SQLite- https://www.sqlite.org/docs.html accesat la data de
05.06.2016
12. Zigud Mednieks,Laird Dornin,G.Blake Meike & Masumi Nakamura,Programming
Android
13. Logare cu reteaua de socializare Facebook:
https://www.firebase.com/docs/web/guide/login/facebook.html accesat la data de
12.05.2016
34
14. Comparatie intre baze de date Sql si NoSql:
https://www.digitalocean.com/community/tutorials/a-comparison-of-nosql-
database-management-systems-and-models accesat la data de 07.06.2016
15. Documentatie Android:https://docs.localytics.com/dev/android.html#android
accesat la data de 22.05.2016
35