Sunteți pe pagina 1din 35

Universitatea POLITEHNICA București

Facultatea Automatică şi Calculatoare


Departamentul Automatică şi Informatică Aplicată

LUCRARE DE LICENŢĂ

Suport decizional pentru alegerea


meniului zilnic

Coordonator Absolvent

Alexandra-Suzana Alexandru Cristian


Cernian Armasoiu

2016
Cuprins
1. Introducere (Descrieretea domeniului din care face parte licenţa,Scopul şi obiectivele
lucrării,Descrierea capitolelor).......... .......................................................................... 5

2. Descrierea problemei abordate(Descrierea problemei abordate,Studiu asupra aplicaţiilor


similare din domeniu,Descrierea funcţionalităţilor aplicaţiei)............................................ 12

3. Analiza metodelor de rezolvare a problemei(Tehnologii utilizate,Motivarea alegerii prin


comparaţie)......................................................................................................................... 17

4. Considerente legate de dezvoltarea aplicaţiei................................................................ 24

4.1. Arhitectura aplicaţiei............................................................................................... 22

4.2. Testarea aplicaţiei.................................................................................................... 24

5.Studiu de caz( Scenariul complet al aplicaţiei)................................................................ 31

6. Concluzii şi contribuţii personale................................................................................... 33

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

În ultima perioadă, cu precădere în ultimii ani se observă o evoluţie rapidă a


tehnologiei şi mai ales în domeniul IT,acest domeniu având un impact foarte mare asupra
societăţii umane.Fiecare persoană are în ziua de astăzi acces la PC,tablete sau smartphone.
Pentru a răspunde cerinţelor clientului,multitudinea de companii de profil IT
implementează diferite aplicaţii mobil pentru a satisface nevoile oamenilor sau pentru a le
uşura munca de zi cu zi,deoarece în zilele noastre aproape fiecare persoană este posesoare
a unui smartphone.Dacă înainte puteai avea acces la diferite lucruri,spre exemplu în
situaţia dată la anumite reţete culinare şi alimentaţie sănătoasă doar dintr-o carte de
bucate,acest lucru a evoluat,iar acum cu o aplicaţie poţi avea o evidenţă a reţetelor culinare
prezente pe piaţă,poţi adăuga în aplicaţie reţete personale sau poţi avea acces la un meniu
zilnic,în acest mod putând avea un stil de viaţa sănătos.

În ultimii ani tehnologia a evoluat într-un ritm rapid,companiile dezvoltatoare de


software s-au extins foarte mult şi la ora actuală pe piaţă sunt foarte multe companii cu
profil IT menite să satisfacă nevoile tuturor utilizatorilor.Datorită multitudinii de companii
cu acest profil şi piaţa la ora actuală este plină de aplicaţii de care utilizatorii dispun.
În acest caz,o idee inovativă îţi poate aduce succesul şi să reuşeşti să te impui în domeniul
IT.Este destul de greu să aduci ceva nou pe piaţă fiind dată multitudinea de aplicaţii ce
există în acest moment,dar prin implementarea unor noi funcţionalităţi faţă de anumite

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

1.2 Scopul si obiectivele lucrării

Lucrarea de licenţă realizata este reprezentata de o aplicaţie android ce prezintă


diferite funcţionalităţi şi anume la gestionarea unui meniu zilnic pentru o alimentaţie
sănătoasă,gestionarea unor reţete de bucătărie,adăugarea unor reţete de bucătărie la reţete
favorite,acces la o bază de date amplă cu o multitudine reţete,căutarea unor reţete după
anumite ingrediente de care un utilizator dispune la momentul respectiv,precum şi o
gestionare a alimentaţiei pe baza caloriilor,utilizatorul având acces la o secţiune din
aplicaţie unde poate face o căutare a unor reţete pe baza numărului maxim de calorii admis
pentru o zi.

Obiectivul aplicaţiei este acela de a satisface nevoile utilizatorilor şi de a veni în


ajutorul lor,prin gestiunea zilnică şi accesul la diferite reţete de bucătărie ei având o
alimentaţie,o nutriţie şi un stil de viaţă sănătos,acest lucru fiind benefic pentru fiecare
persoană în parte.
Alimentaţia,în cazul fiecărei persoane este un aspect foarte important,deoarece stă la baza
unui stil de viaţă sănătos.

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

2.1 Descrierea problemei abordate

Pornind de la ideile abordate anterior,am încercat ca aplicaţia android dezvoltată să


satisfacă nevoile tuturor utilizatorilor de smartphone.Se va face o analiză asupra cerinţelor
software şi elaborarea unui plan menit să ajute la îndeplinirea tuturor cerinţelor în vederea
dezvoltării aplicaţiei.
În general o cerinţă software este compusă din mai multe părţi,dar voi enumera 3
din cele mai importante :
-cerintele elaborate de client în vederea îndeplinirii lui de către dezvoltator,pentru ca
utilizatorii să poată realiza atingerea obiectivului din punct de vedere al clientului
-cerintele pe care un dezvoltator trebuie să le implementeze,în vederea obţinerii unui
produs finit menit să satisfacă toate cerinţele impuse de client
-document specificaţii tehnice în care sunt precizate toate functionatlitatile şi cazurile de
utilizare
Prima parte se referă la cerinţele non-tehnice pe care un client le elaborează pentru
satisfacerea nevoilor utilizatorilor, posibilitatea realizării unei soluţii de a îndeplini
obiectivele acestuia, a doua parte se adresează dezvoltatorul aplicaţiei, care trebuie să ofere
un produs care respectă toate cerinţele utilizatorului, să respecte toate condiţiile
impuse,precum şi. Cea de-a treia parte ne ofera documentul tehnic care reprezintă un punct
comun între dezvoltator şi utilizator şi este realizat pentru o bună înţelegere a aplicaţiei
dezvoltate.

Problemelele pe care clientul le ridică în dezvoltarea unei aplicaţii sunt elaborate în


primă fază în termeni non-tehnici.Este necesară o identificare clară a problemelor pe care
utilizatorul le ridică în dezvoltarea aplicaţiei,deoarece în următoarea fază se creează un
document tehnic în care se vor elabora toate cerinţele clientului transpuse în termeni
tehnici,în vederea trimiterii acestor cerinţe către dezvoltator.După o analiză amănunţită a
documentului de către dezvoltator,acesta va decide toate etapele în care se va dezvolta
aplicaţia,se va face prioritizarea funcţionalităţilor.În următoarea etapă se va prezenta
documentul tehnic clientului cu toţi termenii clari din punct de vedere logic,în acest fel
putând fi livrat către client după dezvoltare un produs menit să satisfacă toate cerinţele care

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.

Utilizatorul poate face multiple acţiuni,primul pas în deschiderea aplicaţiei va avea


sistemul de logare unde acesta are parte de 2 moduri în care poate face logarea în
aplicaţie.Primul mod eşti prin creearea unui cont cu ajutorul adresei de email,acesta
trebuind să completeze câteva câmpuri(Nume,Prenume,Telefon,Adresă email,Username şi
Parolă).Un al doilea mod,acesta din urmă este puţin mai faci,deoarece în ziua de azi
majoritatea posesorilor de smartphone au cont pe o reţea de socializare.Utilizatorii se pot
loga în aplicaţie prin intermediul reţelei de socializare Facebook.Aplicaţia va accesa datele
de pe reţeaua de socializare,realizând astfel logarea în aplicaţie.

Ulterior,după ce va realiza logarea în cadrul aplicaţiei,utilizatorul va dispune pe pagină


principală de un meniu zilnic recomandat care se va actualiza în fiecare zi.

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.

Scopul util şi simplu al aplicaţiei este de a oferi tuturor utilizatorilor aplicaţiei o


alimentaţie sănătoasă şi un stil de viaţă sănătos.Utilitatea practică a acestei aplicaţii constă
în reducerea timpului petrecut pentru a realiza un anumit tip de mâncare fără a şti exact tot
ce trebuie să ai la îndemnă pentru realizarea unei reţete.Printr-o simplă accesare vei avea
acces la toate informaţiile legate de o anumită reţetă culinară,precum vei avea şi o evidenţă

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.

2.2 Studiu asupra aplicaţiilor similare din domeniu


a) Reţete culinare
Reţete culinare este o aplicaţie android destinată utilizatorilor,care printr-o simplă
descărcare de pe magazinul online pot accesa aplicaţia şi pot face o căutare după o
reţetă dorită,dar aplicaţia având doar o funcţionalitate de căutare implementată.

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

2.3 Descrierea funcţionalităţilor aplicaţiei

Într-un studiu efectuat asupra aplicaţiilor asemănătoare existente pe piaţă în acest


moment,se observă că anumite funcţionalităţi sunt standard şi se regăsesc în majoritatea

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

Aplicaţia care urmează a fi implementată doreşte a veni în ajutorul utilizatorului


pentru a le facilita modul de viaţă sănătos printr-un suport decizional în privinţa alegerii
meniului zilnic.Pe lângă funcţionalităţile de bază,utilizatorul va dispune de multe alte
funcţionalităţi,spre exemplu acesta va putea face o căutare detaliată în funcţie de anumite
ingrediente de care dispune la momentul respectiv sau accesând secţiunea Alimentaţie
sănătoasă va avea vizibilă o coloană de calorii şi acesta va putea face o sortare după
numărul de calorii ,astfel putând avea un mod de viaţa cât mai sănătos.De asemenea
acestea poate realiza si o sortare alfabetica pe langa sortarea dupa numarul de calorii,in
acest mod avand o situatie clara a gestiunii retetelor culinare din aplicatie.Utilizatorul
poate împărtăşi cu ceilalţi descoperirile lui în materie culinară, putând adăuga reţete în
aplicaţie,edita reţete sau şterge reţete personale.Fiecare utilizator va primi pe pagina
principală un meniu recomandat zilnic compus din(Mic dejun,Prânz,Cină,Desert),meniu
care se actualizează zilnic,utilizatorul având un meniu diversificat în fiecare zi.De
asemenea aplicaţia dispune de un sistem de notificări,în sensul că odată cu actualizarea
meniului zilnic pe pagina principală,utilizatorul va primi o notificare cu meniul din ziua
respectivă.

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.

Un aspect important al aplicaţiilor este securitatea,de aceea aplicaţia dispune de un


sistem de logare.Utilizatorul are 2 opţiuni de logare:cu o reţea de socializare existenta pe
piaţă,în acest mod realizându-se autenticitatea utilizatorului sau prin crearea unui cont.Prin
completarea câmpurilor care se găsesc în opţiunea de creare cont,datele utilizatorului vor fi
salvate în baza de date,acesta putând ulterior realiza logarea cu ajutorul adresei de email şi
parolă.

12
3.Analiza metodelor de rezolvare a problemei

3.1 Tehnologii utilizate

O aplicaţie android este un program ce se află pe un server şi permite utilizatorilor


să acceseze date din aplicaţie,să modifice date ulterior salvate în baza de date de pe
server,în cazul în care aplicaţia foloseşte o bază de date,sau să utilizeze diferite
funcţionalităţi ale aplicaţie în funcţie de domeniul pentru care este dezvoltată aplicaţia.
Multitudinea de tehnologii existente la ora actuală îi oferă dezvoltatorului o foarte mare
flexibilitate şi de cele mai multe ori uşurându-i munca.Majoritatea dezvoltatorilor folosesc
cele mai noi tehnologii de pe piaţă,acestea având de cele mai multe ori un efect destul de
mare asupra utilizatorilor de aplicaţii dornici mereu de funcţionalităţi şi interfeţe
customizate.
Aplicaţia realizată în lucrarea de licenţă este implementată cu ajutorul următoarelor
tehnologii:
a) Baze de date SQLite
b) Firebase Api
c) Java
d) Android
e) Mediu de lucru:Android Studio 2.0

Firebase este o platformă de dezvoltare software mobil fondată în 2011 de Andrew


Lee şi James Tampli şi achiziţionată de Google ulterior în 2014.Primul produs firebase este
o bază de date real-time,care oferă un API(librărie) ce oferă posibilitatea dezvoltatorilor să
stocheze date pentru sincronizarea între mai mulţi utilizatori.
Bazele de date oferite de de firebase sunt baze de date NoSql.Tot mai mulţi
dezvoltatori aleg să folosească bazele de date NoSql datorită beneficiilor pe care le aduc
acestea şi pentru faptul că sunt mult mai uşor de utilizat.
Sunt diferenţe destul de mari între bazele de date NoSql şi bazele de date relaţionale,de
exemplu acestea sunt folosite pentru stocarea de volume de date foarte mari,un exemplu în
acest sens fiind faptul că majoritatea reţelelor de socializare folosesc baze de date NoSql.
Un alt avantaj ar fi faptul că acestea disponibilitate continuă,neavând perioade de
nefuncţionare.

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

Deşi Firebase vine odată cu sistemul de logare şi cu propriul UI pentru


utilizator,acesta poate fi customizat,serviciile firebase fiind flexibile din acest punct de
vedere.Autentificarea cu firebase ne oferă şi baza de date pentru utilizatori stocată pe
serverul acestora.Datele sunt trimise sub formă de JSON(JavaScript Object Notation ).
În cazul logării cu reţeaua de socializare Facebook am exemplificat în Fig.4 cum se
realizează logarea:Facebook generează un token,acesta este trimis la uşer,apoi la Firebase
care realizează logarea pe baza tokenului primit,apoi întoarce token-ul la uşer,în cele din
urmă obţinându-se logarea cu Facebook.

SQLite este o bibliotecă care se integrează în aplicaţia dezvoltată.Este foarte des


utilizată,cu precădere în realizarea aplicaţiilor mobile,dar şi în proiecte la nivel înalt.Spre
deosebire de alte baze de date,SQLite citeşte şi scrie direct în fişierele de pe disc.O bază de
date SQLite cu mai multe tabele este conţinută într-un fişier direct pe disc.Toate
funcţionalităţile SQLite,precum şi portabilitatea fac ca aceasta să fie foarte folosită în
dezvoltarea aplicaţiilor.O caracteristică esenţială este faptul că performanţa este totuşi
destul de bună chiar dacă are alocată o memorie redusă.

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.

Android este un sistem de operare în prezent dezvoltat de Google,este bazat pe un


kernel de Linux şi este folosit în prezent pe tablete şi smartphones.
Acesta a apărut prima dată în 2003, iar după achiziţionarea de către cei de la Google acest
sistem de operare a cunoscut un succes foarte mare pe piaţa mondială de telefonie
mobilă,ajungând în zilele noastre foarte popular fiind aproape
indispensabil.Deoarece,aproape toate sistemele ce folosesc sistemul de operare Android
sunt alimentate de baterii,acesta este realizat în aşa fel încât să gestioneze foarte bine toate
procesele şi să ţină consumul la un nivel scăzut.Când o cerere nu este în funcţiune,sistemul
suspendă activitatea acesteia,aşadar aceasta nu utilizează procesorul şi nici viaţa bateriei.
Aplicaţiile care sunt stocate în sistemul de operare Android sunt gestionate în mod
automat.Atunci când nivelul memoriei este în scădere,sistemul începe singur procesul de
închidere a aplicaţiilor,începând cu aplicaţiile inactive şi apoi cele care nu au fost folosite
demult.

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 prezintă câteva elemente de bază în dezvoltarea aplicaţiilor:


-activitati,servicii,furnizori conţinut
-fiecare componentă are rol bine stabilit şi fiecare se poate activa individual
-in fişierul manifest se declara toate componentele,cerinţele,precum şi versiunea minimă
necesară configurării

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

Pornind de la ideile abordate anterior,alegerea tehnologiei în care va fi dezvoltată


aplicaţia a fost una destul de facilă,datorită numeroaselor facilităţi pe care le are
dezvoltatorul.
În primul rând sistemul de operare Android este open-source lucru care se pare că
este un avantaj categoric faţă de iOS.Pentru dezvoltator este mult mai facilă dezvoltarea
unei aplicaţii în Android,pornind şi de la faptul că nu este necesară o licenţă ca în cazul
iOS.
În al doilea rând Android are la bază limbajul de programare Java,un limbaj foarte popular
în zilele noastre fiind utilizat de majoritatea companiilor în dezvoltarea aplicaţiilor şi destul
de uşor de învăţat.
Deşi performanţa nu este un punct forte al limbajului de programare Java,spre
exemplu faţă de C++,dezvoltatorii susţin că garbage collector poate face un management
mai eficient al resurselor.De asemenea C++ nu suportă multi-threading.Un alt avantaj al
limbajului de programare Java este JVM(Java Virtual Machine) care conţine
compilarea(JIT) just-in time pentru o performanţă sporită.

Un alt motiv de discuţie asupra tehnologiilor folosite ar fi în privinţa tehnologiei


folosite pentru baza de date.În dezvoltarea aplicaţiei s-a folosit SQLite-baze de date
relationale-pun în aplicare un model de lucru cu datele în care entităţile sunt stocate în
tabele relaţionate între ele.SQLite este o bibliotecă ce se integrează în aplicaţia
dezvoltată.Este o bază de date de sine stătătoare bazată pe unul sau mai multe fişiere şi
oferă o gamă variată de tool-uri ce manipulează date cu mai puţine constrângeri în
comparaţie cu un proces găzduit pe un server.Când o aplicaţie foloseşte SQLite,integrarea
se face folosind apeluri către fişierul ce conţine datele.Acest lucru face ca SQLite să fie
extrem de rapid şi eficient.

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

4.1 Arhitectura aplicaţiei

În urma unui studiu amănunţit legate de alte tehnologii,am ales să folosesc


tehnologiile enumerate mai sus luând în calcul mai multe considerente,cum ar fi faptul că
sunt uşor de înţeles,sunt eficiente,testarea este sigură,în cazul bazei de date este portabilă
acesta fiind un considerent major.
În general o aplicaţie android are următoarele componente:
a)Activităţi
b)Intent-uri
c)Servicii

Aplicaţia implementată are în componenţa sa 3 Activităţi,9 Fragmente şi 5 Modele.


Activităţile sunt reprezentate de:
 Home Activity
 Login Activity
 SignUp Activity

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

În Fig.6 este reprezentată structura aplicaţiei.Fişierul AndroidManifest.xml conţine


diferite configurări pentru aplicaţie,stiluri,numele aplicaţiei,importul sdk pentru logarea cu
reţeaua de socializare,cheia generată pentru conectarea cu Facebook,precum şi anumite
permisii.
În secţiunea Activities sunt prezente 3 activităţi,acestea fiind părţile principale ale
aplicaţiei.În Home Activity sunt prezente diferite metode,cea mai importantă fiind
realizarea meniului principal al aplicaţiei.

În LoginActivity sunt prezente toate metodele de logare ale unui utilizator în


aplicaţie:metode de logare ale unui utilizator dacă acesta are un cont deja creat în aplicaţie
şi metodele de logare cu reţeaua de socializare.

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:

Fig.8-Reguli acces baza de date firebase

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

În Fig.10 este reprezentată diagrama bazei de date.Aceasta cuprinde 7 tabele


relaţionate între ele şi tabela de uşeri,aceasta din urmă fiind reprezentată separat.
În secţiunea res sunt prezente toate fişierele .xml necesare realizării părţii de UI(interfaţa
utilizator).Pentru fiecare componentă a aplicaţiei este realizat un fişier .xml în care sunt
sunt prezentate numele fiecărei secţiuni ce apare în interfaţă,culorile folosite şi
dimensiunile.

22
Metoda pentru realizarea meniului de navigare:

4.2 Testarea aplicaţiei

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

În capitolele abordate anterior a fost prefaţată o introducere în aplicaţia


implementată.
Este o aplicaţie de reţete culinare şi alimentaţie sanatoasa-un sistem decizional în privinţa
alegerii unei alimentaţii sanatoase,un mod de viaţă sănătos.
În momentul accesării aplicaţiei de către utilizator acesta va fi întâmpinat de o pagină unde
a fost implementat sistemul de logare,securitatea fiind în zilele de astăzi un aspect extrem
de important.
Sistemul de logare a fost realizat cu ajutorul unor servicii de autentificare furnizate de
Firebase(Firebase Authentification).Interfaţa a fost customizata ulterior.

Fig.11-Pagina logare

În Fig.11 se poate oberva pagina de autentificare în care utilizatorul îşi introduce


email şi parola sau acesta are o alternativă de autentificare cu o reţea de socializare prin
apăsarea butonului Logare cu Facebook.

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.

Pe pagina principală a aplicaţiei utilizatorul va găsi zilnic un meniu format din 4


reţete pentru diferite perioade ale zile(Mic dejun,Prânz,Cină,Desert).Acest meniu se va
actualiza zilnic în fiecare dimineaţă astfel încât,la o accesare zilnică a aplicaţiei acest
meniu se va schimba în funcţie de zile.În acest fel utilizatorul va avea un meniu zilnic
echilibrat lucru important în privinţa unei alimentaţii sănătoase.
De asemenea,la actualizarea meniului de pe pagina principală utilizatorul va primi
şi o notificare pe telefon cu meniul din ziua respectivă,astfel încât va avea în permanenţă
acces la reţete chiar dacă nu este logat în acel moment în aplicaţie.
La apăsarea pe o anumită reţetă,lucru exemplificat în Fig.12, utilizatorul va avea în detaliu
toate specificaţiile reţetei respective precum timpul necesar
gătirii,preparearea,ingredientele necesare,precum şi un set complet de instrucţiuni în
privinţa realizării acesteia.

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

La accesarea secţiunii Alimentaţie sănătoasă,utilizatorul va vedea o coloană cu


caloriile pe care fiecare reţetă de bucătărie le are.Acesta poate sorta reţetele culinare
crescător sau descrescător după numărul de calorii,având în acest fel o evidentă pentru
consumul maxim de calorii din ziua respectivă.
De asemenea acesta poate face sortarea şi în ordine alfabetică a reţetelor.

Î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

Utilizatorul poate şterge reţeta adăugată de acesta,făcând swipe spre stânga pe


reţetă care se doreşte a fi ştearsă va apărea un buton,iar prin apăsarea acestuia se va şterge
reţeta respectivă.Acest lucru este posibil doar pentru reţetele adăugate de fiecare utilizator
personal.Făcând swipe spre dreapta utilizatorul are opţiunea de editare a reţetei,acest lucru
fiind posibil pe orice reţetă.

Butonul din stânga sus ne va deschide meniul de reţete [Fig.16] ce pune la


dispoziţia utilizatorului diferite secţiuni cum ar fi(Mic Dejun,Prânz,Cină,Desert,Reţete
Favorite,Alimentaţie sănătoasă).Primele secţiuni ne vor da reţetele specifice fiecărei
categorii,iar la secţiunea Reţete Favorite se găsesc reţetele pe care utilizatorul curent le-a
adăugat la favorite.Pe fiecare dintre aceste secţiuni utilizatorul dispune de o căutare
detaliată şi anume acesta va putea face căutare după ingredientele de care acesta dispune la
momentul respectiv,iar acesta va primi reţetele pe care le poate prepara la momentul
respectiv în funcţie de ingredientele de care dispune.

29
Fig.16-Meniu Retete

În Fig.17 este prezentată secţiunea Alimentaţie sănătoasă.aceasta fiind legată de un


stil de viaţă sănătos,deoarece aici se va putea face o căutare detaliată după numărul de
calorii pe care îl are fiecare reţetă culinară.Accesând această secţiunea,utilizatorul va putea
vedea conţinutul de calorii al fiecărei reţete culinare.Acesta va putea face o sortare după
numărul de calorii al reţetelor,în acest mod gestionandu-şi numărul de calorii necesar
consumului zilnic.

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.

6.2 Contribuţii personale

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.

Faţă de alte aplicaţii,în aceasta s-a introdus un sistem de logare,securitatea având un


rol foarte important în ziua de azi.Fiind foarte populare în zilele noastre şi realizând faptul

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.

În secţiunea alimentaţie sănătoasă,utilizatorul poate introduce un număr maxim de


calorii recomandat pentru ziua respectivă.Astfel aplicaţia îi va întoarce rezultatele dorite
încadrându-se în numărul maxim de calorii recomandat pentru o zi.

Deoarece majoritatea persoanelor în ziua de astăzi sunt utilizatori ai unui


smartphone,majoritatea lucrurilor sunt mai facile,accesul la informaţie este mult mai rapid
având la dispoziţie o multitudine de aplicaţii din diverse domenii care vin deseori în
ajutorul fiecăruia.
În concluzie,în urma unui studiu amănunţit,au fost identificate toate problemele şi cerinţele
ridicate de utilizatori şi a fost dezvoltată aplicaţia descrisă mai sus în scopul de a rezolva
toate aceste probleme şi de a se mula perfect pe nevoile utilizatorilor.
De aceea,cred că aplicaţia dezvoltată va fi benefică pentru fiecare utilizator venind în
ajutorul acestora prin diferitele funcţionalităţi implementate.

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

S-ar putea să vă placă și