Ghidul studentului F.M.I. utiliz ˆand elemente de realitate augmentat ˘a. Coordonator s ¸tint ¸ific Stupariu Mihai-SorinAbsolvent Cojocaru… [622975]

UNIVERSITATEA BUCURES ¸TI
FACULTATEA DE MATEMATIC ˘A S ¸I INFORMATIC ˘A
SPECIALIZAREA INFORMATIC ˘A
Lucrare de licent ¸ ˘a
Ghidul student: [anonimizat] ˆand
elemente de realitate augmentat ˘a.
Coordonator s ¸tint ¸ific
Stupariu Mihai-SorinAbsolvent: [anonimizat] ¸ti, iunie 2020

Abstract
Aplicat ¸ia prezentat ˘aˆın aceast ˘a lucrare se numes ¸te FMIguid, iar ideea aplicat ¸iei
a pornit de la experienta mea ca boboc in aceasta facultate, cu sperant ¸a c ˘a va fi
de ajutor viitoarelor generatii de boboci ce vor intra pe us ¸ile acesteia. Pentru a fi
cˆat mai interactiv ˘a s ¸i usor de folosit, am utilizat elemente de realitate augmentat ˘a.
Obiectivul acestei lucr ˘ari este de a explica mai pe larg, s ¸i ˆın special cum am folosit
eu, conceptele s ¸i tehnologiile utilizate ˆın construirea acestei aplicat ¸ii.

Cuprins
1 Introducere 6
1.1 Motivat ¸ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Obiective s ¸i rol . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Structur ˘a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Studiu de piat ¸ ˘a 10
2.1 Ce este s ¸i ce nu este aceast ˘a aplicat ¸ie . . . . . . . . . . . . . . . . 11
2.2 Colectarea cerint ¸elor prin metode directe s ¸i indirecte . . . . . . . 12
2.3 Publicul t ¸int ˘a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Aplicat ¸ii similare 14
3.1 Timberland Augmented Reality Campaign . . . . . . . . . . . . . 14
3.2 Home Depot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Star Walk 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 SketchAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 Pokemon GO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4 Tehnologii utilizate 23
4.1 Android SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Vuforia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.1 Realitate Augmentata . . . . . . . . . . . . . . . . . . . . 27
4.3 Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3.1 C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.2 Asset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5 Arhitectura aplicat ¸iei 33
5.1 Diagram ˘a Use Case . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Diagram ˘a de activitate . . . . . . . . . . . . . . . . . . . . . . . 35
5.3 Diagram ˘a package . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.4 Performant ¸ ˘a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5 Relevant ¸ ˘a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.6 Securitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.7 Uzabilitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.8 Fezabilitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.9 Testabilitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.10 Scalabilitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6 Implementare 44
6.1 AR camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2 Caut ˘a sala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3 Set ˘ari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.3.1 Audio s ¸i grafic ˘a . . . . . . . . . . . . . . . . . . . . . . . 49
6.3.2 Set ˘ari limb ˘a . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.3.3 Formular suport tehnic . . . . . . . . . . . . . . . . . . . 53
7 Posibilitatea extinderii aplicat ¸iei in viitor 56
8 Concluzii generale 58

Capitolul 1
Introducere
1.1 Motivat ¸ie
ˆIn c˘autarea unui subiect de licent ¸ ˘a am ˆınceput s ˘aˆımi revizuiesc tot ce am ˆınv˘at ¸at
ˆın facultate pentru a g ˘asi ceva ce s ˘a m˘a pasioneze ˆındeajuns de mult ˆıncˆat s˘a lucrez
un an ˆıntreg, sau poate chiar mai mult la o aplicat ¸ie ˆın acel domeniu. Am ajuns la
concluzia c ˘a orice as ¸ fi ales, exista deja o aplicat ¸ie asem ˘an˘atoare cu ce ˆımi doream,
care dep ˘as ¸ea cu mult standardele a ce as ¸ fi putut face eu de una singur ˘a. Mi se pare
foarte greu s ˘a g˘ases ¸ti o idee, nu neap ˘arat revolut ¸ionar ˘a, dar care s ˘a aduc ˘a ceva nou
s ¸i util societ ˘at ¸ii din zilele noastre, o idee care s ˘a nu fie deja pus ˘aˆın practic ˘a, s ¸i de
asemenea de o amploare mult mai mare.
Astfel am ajuns la concluzia c ˘a trebuie s ˘a ies din zona mea de comfort s ¸i s ˘a
ˆınv˘at ceva nou, astfel ˆıncˆat licent ¸a mea s ˘a arate c ˘a mi-am dat interesul c ˆat de mult
am putut, nes ¸tiind ce o s ˘a rezulte.
6

Consult ˆandu-m ˘a cu domnul profesor coordonator am ajuns s ˘a descop ˘ar Re-
alitatea Augmentat ˘a, o tehnologie pe care eu o cunos ¸team doar prin intermediul
aplicat ¸iei Pokemon GO, dar nimic mai mult. Document ˆandu-m ˘a am descoperit
mult mau multe aplicat ¸ii care folosesc aceast ˘a tehnologie dec ˆat as ¸ fi b ˘anuit vreo-
dat˘a. Astfel am decis c ˘a vreau s ˘aˆıncerc, chiar cu riscul de a nu reus ¸i s ˘a o duc p ˆan˘a
la cap ˘at.
Pentru a ˆımbina utilul cu pl ˘acutul m-am g ˆandit c ˘a facultatea ar fi locul perfect.
M-am g ˆandit c ˘a viitorii boboci vor fi atras ¸i de nou (Realitatea Augmentat ˘a fiind un
domeniu relativ nou ˆın industrie), la fel ca mine, iar curiozitatea ˆıi va ˆımpinge s ˘a
descopere mai multe. Iar dac ˘aˆın aceast ˘a privint ¸ ˘a gres ¸esc, sper ca m ˘acar aplicat ¸iea
mea s ˘aˆıi ajute cu orientarea s ¸i descoperirea Facult ˘at ¸ii de Matematic ˘a s ¸i Informa-
tic˘a.
Nu v ˘a gˆandit ¸i c ˘a am integrat ˆın aceast ˘a aplicat ¸ie toat ˘a istoria, arhitectura s ¸i
informat ¸iile adit ¸ionale g ˘asite pe internet. Sper c ˘a nu este nimeni interesat s ˘a afle
cˆate c ˘ar˘amizi au fost necesare pentru a construi universitatea. Am integrat doar
cˆateva informat ¸ii de cultur ˘a general ˘a, r˘aspunsuri la ˆıntreb ˘ari pe care s ¸i eu mi le-
am pus dea lungul anilor pe culoarele acestei facult ˘at ¸i. Spre exemplu cine este
T ¸ it ¸eica? Pot s ˘a spun sincer c ˘a m-am ˆıntrebat de nenum ˘arate ori ˆın timpul cursuri-
lor t ¸inute ˆın amfiteatrul ce ˆıi poart ˘a numele s ¸i mereu ˆımi spuneam c ˘a dupa ce ies
o s˘a caut, m ˘acar pentru a-mi satisface curiozitatea, s ¸i niciodat ˘a nu am f ˘acut-o.
7

1.2 Obiective s ¸i rol
Obiectivul meu este de a realiza o aplicat ¸ie simpl ˘a s ¸i us ¸or de utilizat, av ˆand un
design c ˆat mai intuitiv s ¸i pl ˘acut. Vreau s ˘a realizez un tur augmentat al facult ˘at ¸iiˆın
care student ¸ii s ˘aˆınvet ¸e lucruri noi, s ˘aˆıs ¸i dezvolte cultura general ˘a despre faculta-
tea la care au aplicat s ¸i s ˘a se distreze ˆın acelas ¸i timp (lu ˆandˆın calcul faptul c ˘a un
student la Facultatea de Matematic ˘a s ¸i Informatic ˘a a venit tocmai pentru c ˘a este
pasionat de tehnologie s ¸i de nou).
Al doilea obiectiv ar fi acela de a gr ˘abi procesul de g ˘asire a unei s ˘ali,ˆın special
pentru boboci, care nu s ¸tiu unde se afl ˘a spre exemplu biroul decanului sau secre-
tariatul s ¸i sunt presat ¸i de timp. Nu s ¸tiu dac ˘a aceast ˘a funct ¸ionalitate va ˆıncˆanta pe
toat˘a lumea, dar eu personal ˆın primul an as ¸ fi considerat-o foarte util ˘a, s ¸i voi fi
fericit ˘a dac ˘a voi ajuta s ¸i o singur ˘a persoan ˘a.
1.3 Structur ˘a
Lucrarea este structurat ˘a pe patru capitole care cuprind elementele pe care eu
le-am considerat esent ¸iale din crearea s ¸i utilizarea aplicat ¸iei.
Capitolul doi este un scurt studiu de piat ˘a, modul ˆın care am ajuns eu la aceast ˘a
idee s ¸i la toate functionalit ˘at ¸ile ei.
Al treilea capitol cuprinde o scurt ˘a descriere a unor aplicat ¸ii deja existente ce
folosesc realitatea augmentat ˘aˆıntr-un mod c ˆat mai ingenios. Fiecare din acestea
reus ¸e ˘ste s ˘a atrag ˘a mult ¸i utilizatori prin interact ¸iunea dintre realitatea as ¸a cum o
s ¸tim noi s ¸i un element de noutate.
8

Al patrulea capitol prezint ˘a principalele tehnologii utilizate ˆın construirea aplicat ¸iei.
V oi prezenta cum am folosit fiecare tehnologie ˆın parte s ¸i ce pas ¸ii ce trebuie urmat ¸i
pentru a le putea ˆımbina.
Capitolul al cincilea reprezint ˘a arhitectura aplicat ¸iei, modul ˆın care aceasta
este structurat ˘a.
Al s ¸aselea capitol descrie c ˆat mai pe larg cu putinta implementarea softului,
problemele care au ap ˘arutˆın procesul de dezvoltare s ¸i modul cum le-am rezolvat,
resursele folosite, tutorialele urmarite si problemele pe care le-am ˆıntˆampinat pe
parcursul implement ˘arii.
Capitolul al s ¸aptelea prezint ˘a modul ˆın care aplicat ¸ia poate sa fie dezvoltata pe
viitor.
9

Capitolul 2
Studiu de piat ¸ ˘a
Nu exist ˘a un r ˘aspuns foarte clar la ˆıntreb ˘arile dac ˘a, cum s ¸i de ce aplicat ¸iile
de realitate augmentat ˘a pot afecta percept ¸ia s ¸i evaluarea consumatorilor asupra
m˘arcilor. Exist ˘a studii pe aceast ˘a tem ˘a realizate de anumite companii care fo-
losesc aceast ˘a strategie de marketing, raportul fiind f ˘acut la client ¸ii s ¸i aplicat ¸ia
firmei, nimic foarte general. Astfel de studii schit ¸eaz ˘a inspirat ¸ia consumatoru-
lui ca o construct ¸ie de mediere ˆıntre beneficiile pe care acesta le poate obt ¸ine s ¸i
schimb ˘arile produse. Ele au ar ˘atat de-a lungul acestor c ˆat ¸iva ani, de c ˆand a ap ˘arut
pe piat ˘a tehnologia realit ˘at ¸ii augmentate, c ˘a tinerii sunt cei mai predispus ¸i la a
c˘adea ˆın capcane de marketing de genul acesta.
10

2.1 Ce este s ¸i ce nu este aceast ˘a aplicat ¸ie
Aceast ˘a aplicat ¸ie este un ghid al Facult ˘at ¸ii de Matematic ˘a s ¸i Informatic ˘a
care utilizeaz ˘a tehnologia realit ˘at ¸ii augmentate.
Aceast ˘a aplicat ¸ie este un mic dict ¸ionar de cultur ˘a general ˘a care vrea s ˘a ajute
viitorii student ¸i ai acestei institut ¸ii s ˘a afle curiozit ˘at ¸iˆıntr-un mod c ˆat mai
dinamic s ¸i c ˆat mai pl ˘acut lor (avand ˆın vedere c ˘a sunt la aceast ˘a facultate,
mai mult ca sigur ˆıi pasioneaz ˘a tehnologia).
Aceast ˘a aplicat ¸ie este un ajutor pentru a-t ¸i g ˘asi sala de curs ˆın momentele ˆın
care es ¸ti gr ˘abit sau trebuie s ˘a ajungi ˆıntr-o sal ˘a de a c ˘arei existent ¸ ˘a nici nu
s ¸tiai.
Aceast ˘a aplicat ¸ie este un impuls pentru student ¸ii de la Informatic ˘a, un exem-
plu de ce pot s ˘a creeze dac ˘a sunt ˆıntradev ˘ar pasionat ¸i de acest domeniu.
Aceast ˘a aplicat ¸ie NU este un ˆındrum ˘ator s ¸i nu cont ¸ine materiale ajut ˘atoare
pentru cursurile de zi. Am considerat c ˘a acest lucru nu este indicat, deoarece
de la an la an materiile se schimb ˘a, limbajele ˆın care se lucreaz ˘a la cursuri
se schimb ˘a, s ¸i va fi greu de actualizat.
Aceast ˘a aplicat ¸ie NU este un ˆındrum ˘ator s ¸i nu cont ¸ine materiale auxiliare,
subiecte rezolvate sau alte ajutoare pentru examene.
11

2.2 Colectarea cerint ¸elor prin metode directe s ¸i in-
directe
Colectarea cerint ¸elor pentru un proiect este o parte vital ˘a,ˆın special c ˆand este
vorba de un proiect mare ˆın cadrul unei companii. Acest proces ajut ˘a la definirea
scopulului final al proiectului ˆın timpul gestion ˘arii domeniului de aplicare. Acest
lucru ajut ˘a la livrarea produsului c ˆat mai aproape de realitatea clientului. Nici-
odat˘a nu o s ˘a fie livrat un produs identic cu ce vrea sau ˆıs ¸i imagineaz ˘a clientul
deoarece ˆın ziua de azi totul este dinamic. Nevoile s ¸i cerint ¸ele se schimb ˘a frec-
vent, iar responsabilitatea managerului de proiect este s ˘a asigure captarea tuturor
cerint ¸elor.
ˆIn cazul meu, este un simplu proiect de licent ¸ ˘a. Cu toate acestea, am considerat
c˘a este mai s ˘an˘ator s ˘aˆımi impun de la ˆınceput c ˆateva activit ˘at ¸i de baz ˘a pe care
aplicat ¸ia mea trebuie s ˘a le aib ˘a, am ˆıntrebat cat ¸iva prieteni mai apropiat ¸i ce ar
trebui ad ˘augat s ¸i ce se as ¸teapt ˘a ei s ˘a primeasc ˘a de la acest proiect, s ¸i astfel mi-
am f ˘acut o list ˘a cu cerint ¸e pe care vreau s ˘a le duc la bun sfars ¸it ˆın prima faz ˘a a
proiectlui. Dup ˘a ce le voi termina, o s ˘a m˘a gˆandesc la altele, astfel ˆıncˆat permanent
s˘a am un proiect funct ¸ional, poate prea simplu la ˆınceput, dar utilizabil.
2.3 Publicul t ¸int ˘a
Publicul t ¸int ˘a al aplicat ¸iei sunt student ¸ii Facult ˘at ¸ii de Matematic ˘a s ¸i Informa-
tic˘a. Aceasta nu va fi pe gustul tuturor, dar m-am axat pe faptul c ˘a foarte mult ¸i nu
12

cunosc ”istoria” facult ˘at ¸iiˆın care au ajuns. Probabil dac ˘a nu au vrut s ˘a intre aici,
nu a fost prima lor optiune pe lista preferint ¸elor, nici nu vor fi foarte interesat ¸i, dar
de asemenea aces ¸tia reprezint ˘a un foarte mic procent din totalul student ¸ilor.
13

Capitolul 3
Aplicat ¸ii similare
Acest capitol aduce ˆın vedere c ˆateva aplicat ¸ii de Realitate Augmentat ˘a din di-
ferite domenii ce se remarc ˘a prin ceva unic (o s ˘a precizez la fiecare ˆın parte),
ceva ce le face at ˆat de interesante pentru oameni. Am auzit diverse opinii despre
faptul c ˘a realitatea augmentat ˘a este ˆıntˆalnit˘aˆın preponderent ¸ ˘aˆın jocuri sau c ˘a se
adreseaz ˘a doar publicului t ˆan˘ar, ceea ce nu consider c ˘a este ˆıntru-totul adev ˘arat.
Dintre aplicat ¸iile pe care le-am ales s ˘a le prezint doar una singur ˘a este un joc,
restul adres ˆandu-se unui public foarte larg.
3.1 Timberland Augmented Reality Campaign
Un lant ¸ foarte mare de magazine, s ¸i anume Timberland, a pornit de la ideea
c˘a mult ¸i client ¸i consider ˘a c˘a probatul hainelor este un aspect incomod s ¸i care
consum ˘a foarte mult timp. Cu tot ¸ii am trecut macar odata pe l ˆang˘a un obiect
14

vestimentar care ne-a f ˘acut cu ochiul, dar din anumite cauze am zis ”poate data
viitoare”, dat ˘a ce nu a mai venit vreodat ˘a[4].
Astfel Timberland a folosit reali-
tatea augmentat ˘a pentru a aduce
experient ¸a chinuitoare a cabinei
de prob ˘a la un nou nivel. Fo-
losind tehnologia de detectare a
mis ¸c ˘arilor Kinect, au ˆınfiint ¸at ”o
cabin ˘a de prob ˘a” virtual ˘a
(sau mai bine spus o camer ˘a video in exteriorul magazinului) ˆın Galeria Moktow,
un centru comercial din Vars ¸ovia, Polonia. Aici, oamenii au putut ˆıncerca cea mai
nou˘a colectie din Timberland f ˘ar˘a s˘a intre ˆın magazin.
Promovarea se va realiza automat din om ˆın om, atr ˘agˆand astfel o baz ˘a de
client ¸i mai mare. La urma urmei consumatorii sunt mai predispus ¸i s ˘a aib ˘a mai
mult ˘aˆıncredere ˆın semenii lor dec ˆatˆın piata de marketing.
Din punct de vedere tehnic, aceast ˘a aplicat ¸ie combin ˘a inteligent ¸a artificial ˘a
cu elementele de realitate augmentat ˘a, astfel ˆıncˆat sa detecteze structural un corp
omenesc. Astfel pot ¸i proba o bluz ˘a, dar s ¸i un costum ˆıntreg. ˆIn acest caz, realitatea
augmentat ˘a intervine doar pentru a suprapune hainele, detectarea fiind realizat ˘a,
din punctul meu de vedere, ˆınˆıntregime de inteligent ¸a artificial ˘a.
15

3.2 Home Depot
Aproximativ acelas ¸i principiu ca Timberland a fost abordat s ¸i de HomeDe-
pot[11]. Este us ¸or s ˘a realizezi c ˆand anumite obiecte din casa ta trebuie schimbate,
dar este foarte greu s ˘a te hot ˘ar˘as ¸ti cu ce s ˘a le schimbi. Mereu apar ˆıntreb ˘arile:
”Oare culoarea aceasta se potrives ¸te cu perdeaua?”, ”Oare dulapul acesta ˆıncape
ˆıntre pat ˆsi televizor?”, ”Cum o s ˘a arate montat?”. Este foarte usor s ˘a te uit ¸i la
obiecte s ¸i s ˘a decizi ce ˆıt ¸i place, dar foarte greu s ˘a le transpui imaginar la tine ˆın
cas˘a pentru a vedea imaginea de ansamblu.
Pe acest lucru au mizat cei de la HomeDepot, integr ˆand Realitatea Augmen-
tat˘aˆın aplicat ¸ia lor mobil ˘a. Aceasta funct ¸ioneaz ˘a pe aproximativ toate produsele
lor s ¸i permite cump ˘ar˘atorilor s ˘a plaseze articolele virtuale ˆın lumea real ˘a prin in-
termediul ecranului telefonului. De asemenea, permite redimensionarea s ¸i rotirea
imaginii astfel ˆıncˆat s˘a se potriveasc ˘aˆın locul dorit.
16

Din punct de vedere tehnic, aceasta este o aplicat ¸ie realizat ˘aˆın totalitate uti-
lizˆand realitatea augmentat ˘a. Camera este fixat ˘a pe un anumit punct, pernit ¸ ˆandu-
ne s˘a ad˘aug˘am s ¸i s ˘a modific ˘am anumite elemente ˆın cadru. Nu se face o detect ¸ie
a imagini init ¸ial, dar se pot salva obiectele ˆın cadrul respectiv, iar mai t ˆarziu, c ˆand
vom reveni asupra acelui loc, ele vor fi ˆınc˘a acolo.
3.3 Star Walk 2
Noaptea senin ˘a de var ˘a reprezint ˘a un moment prielnic pentru a vedea stelele
pe cer, iar cu ajutorul aplicat ¸iei StarWalk putem afla s ¸i mai multe detalii despre
ele. Aceasta este o aplicat ¸ie educativ ˘a dezvoltat ˘a de Vito Technology care ne
permite s ˘a explor ˘am obiecte ceres ¸ti ˆın timp real prin intermediul ecranului dispo-
zitivului mobil. Avem acces la informat ¸ii specifice precum distant ¸a p ˆan˘a la soare,
temperatura, dimensiunea vizual ˘a etc.
17

Init ¸ial StarWalk a avut ca public t ¸int ˘a student ¸ii de la astronomie s ¸i profesionis ¸tii
ˆın domeniu, ajut ˆandu-i s ˘a localizeze peste 200.000 de stele, planete, constealt ¸ii s ¸i
satelit ¸i noaptea. ˆIn momentul de fat ˘a aplicat ¸ia a fost desc ˘arcat ˘a de peste 10 mili-
oane de ori, utilizatorii fiind de toate varstele s ¸i din toate domeniile.
StarWalk 2 este o actualizare solid ˘a a
aplicat ¸iei originale. Noua versiune are
o interfat ¸ ˘a nou ˘a, mult mai usor de utili-
zat s ¸i ofer ˘a o varietate de moduri pentru
camer ˘a: versiunea de baz ˘a gratuit ˘a, de-
filare manual ˘a s ¸i Realitate Augmentat ˘a.
Cea din urm ˘a este o preluare din aplicat ¸ia
init ¸ial ˘a. Pentru a explora obiectele ce-
leste, tot ce trebuie s ˘a fac ˘a utilizatorul
este s ˘a orienteze camera dispozitivului
spre cer, iar obiectele grafice vor aparea
suprapuse pe ecran peste obiectele reale.
Aceast ˘a aplicat ¸ie poate fi realizat ˘a destul de us ¸or utiliz ˆand platforma de dezvoltare
Unity s ¸i pachetul Vuforia. Este nevoie de un dispozitiv cu o camer ˘a care s ˘a cap-
teze foarte bine pozit ¸ia stelelor s ¸i de o sear ˘a senin ˘a pentru a realiza pozele ce vor
fi modificate pentru a integra elementele de realitate augmentat ˘a. Suprapunerea se
face peste pozit ¸iile exacte ale stelelor, fiind pur s ¸i simplu o detectare de imagini.
18

3.4 SketchAR
SketchAR este o aplicat ¸ie destinat ˘a celor ce ˆıs ¸i doresc s ˘aˆınvete s ˘a deseneze.
Este conceput ˘aˆın as ¸a fel ˆıncˆat s˘a poat ˘a ajuta un ˆıncep ˘ator s ˘aˆınvet ¸e, cu schit ¸e
simple s ¸i us ¸or de urm ˘arit, c ˆat s ¸i pentru un artist profesionalist, ca un mod simplu
s ¸i convenabil de a visuzliza schit ¸ele pe orice suprafat ¸ ˘a dorit ˘a.
Aplicat ¸ia ˆıt ¸i ofer ˘a posibilitatea s ˘aˆıt ¸i alegi un desen dintr-o galerie prestabilit ˘a
pe care ˆıt ¸i dores ¸ti s ˘aˆıl realizezi, detecteaz ˘a o suprafat ¸ ˘a plan ˘a, de preferat o foaie de
hˆartie alb ˘a, dup ˘a care ˆıt ¸i proiecteaz ˘a, folosind tehnologia Realitat ¸ii Augmentate,
pas cu pas desenul, fiecare viitor pas suprapun ˆandu-se perfect peste pasul anterior,
astfel ˆıncˆat utilizatorului s ˘aˆıi fie foarte us ¸or s ˘aˆıs ¸i continue lucrarea.
Personal consider c ˘a aceast ˘a aplicat ¸ie ar trebuie folosit ˘a doar cu ochelari spe-
ciali deoarece mi se pare foarte incomod s ˘a tin telefonul cu o m ˆan˘a ridicat ˘a de-
supra foii, dar nu foarte tare astfel ˆıncˆat s˘a m˘a pot uita ˆın ecran, s ¸i cu cealalt ˘a
19

s˘a desenez. Dar dep ˘as ¸ind acest obstacol, mi-a pl ˘acut foarte mult aplicat ¸ia deo-
arece ofer ˘a posibilitatea de a schimba dimensiunile s ¸i opacitatea desenului dup ˘a
preferint ¸ele personale, f ˘acˆand astfel foarte comod ˘a utilizarea ei. Aplicat ¸ia a fost
lansat ˘aˆın aprilie 2017 iar de atunci este actualizat ˘a permanent, fiind la punct cu
ultimele progrese pe partea de Realitate Augmentat ˘a. Mi se pare echilibrul perfect
dintre tehnologia de ultim ˘a generat ¸ie s ¸i arta at ˆat de veche a desenului.
3.5 Pokemon GO
Pokemon Go[3] este probabil cel mai cunoscut joc/aplicat ¸ie care foloses ¸te teh-
nologia Realit ˘at ¸ii Augmentate. Acesta se remarc ˘a, s ¸i este unic din cunos ¸tint ¸ele
mele, prin faptul c ˘a nu utilizeaz ˘a detectarea unei poze pentru a suprapune planul
virtual peste cel real. Aplicat ¸ia utilizeaz ˘a GPS-ul dispozitivului pentru a localiza,
captura, lupta s ¸i antrena creaturile virtuale care apar ca s ¸i cum ar fi ˆın locat ¸ia real ˘a
a jucatorului. Locat ¸ia acestor creaturi este asociat ˘a random s ¸i modificat ˘a la un
anumit interval de timp, astfel ˆıncˆat trebuie s ˘a ai norocul s ˘a fiiˆın locat ¸ia potrivit ˘a
la mometul potrivit.
20

Jocul ˆıncepe cu crearea unui cont s ¸i unui profil personalizat, care va fi afis ¸at
pe harta virtual ˘a, copie a lumii reale, pe baza locat ¸iei geografice a jucatorului. Pe
masur ˘a ce juc ˘atorii se deplaseaz ˘aˆın mediul real, avatarul se va deplasa pe harta
jocului. Diferitele specii de pokemoni traiesc ˆın diferitele zone ale lumii. De
exemplu pokemonii de ap ˘a se g ˘asesc ˆın general ˆın apropierea apei.
Existıa anumite puncte pe aceast ˘a hart ˘aˆın care
se g˘asesc arenele de lupt ˘a, locuri ˆın care juc ˘atorii
se pot ˆıntˆalni s ¸i interact ¸iona, totul realiz ˆandu-se
prin Realitatea Augmentat ˘a. Cˆand se captureaz ˘a
un nou Pokemon acesta poate fi vizualizat pe
ecranul dispozitivului cu un fundal generic retat
ˆın direct. Modul AR foloses ¸te camera s ¸i girosco-
pul de pe dispozitivul mobil al juc ˘atorului pentru
a afisa o imagine a unui Pokemon ca s ¸i cum ar fi
fostˆın lumea real ˘a.
Din punct de vedere tehnic, elementele de realitate augmentat ˘a, pokemonii,
sunt programat ¸i s ˘a apar ˘a la un anumit interval de timp la o distant ¸ ˘a randomizat ˘a
part ¸ial, acceptabil, ˆın funct ¸ie de pozit ¸ia ta. Nu este nimic foarte greu de realizat
din acest punct de vedere, partea dificila fiind ˆın momentul prinderii acestora, de-
oarece trebuie folosite funct ¸iile de sistem ale GPS-ului. Un alt aspect pe care ˆıl
apreciz la aceast ˘a aplicat ¸ie este grafica s ¸i modul at ˆat de realist ˆın care sunt contu-
rate personajele virtuale.
21

3.6 Concluzii
Domeniile ˆın care se poate aplica Realitatea Augmentat ˘a sunt foarte variate
dup˘a cum am exemplificat mai sus cu cele 5 aplicat ¸ii. Am g ˘asit de asemenea
cateva aplicat ¸ii asem ˘an˘atoare cu ideea mea, dar acestea sunt destinate muzeelor
sau locurilor de interes public, fiind mult mai usoar ˘a interact ¸iunea dintre ghidul
virtual s ¸i utilizator. Pe aceas ¸i idee vreau s ˘a funct ¸ioneze s ¸i aplicat ¸ia mea s ¸i s ˘a fie
ceva nou pentru facultate.
Exemplele de mai sus subliniaz ˘a faptul c ˘a societatea s-a dezvoltat foarte mult
ˆın ultimii ani, iar Realitatea Augmentat ˘a va deveni o rutina ˆın anii ce urmeaz ˘a.
S ¸i consider c ˘a ar trebui realizate c ˆat mai multe astfel de aplicat ¸ii ˆın scop educativ
deoarece copiii s ¸i adolescent ¸ii sunt atras ¸i de tehnologie, ˆıs ¸i petrec ore ˆıntregi cu
ochii ˆın telefon. Dac ˘a fiecare aplicat ¸ie ar avea un procent minim de educativ sau
cultur ˘a general ˘a cred c ˘a s-ar vedea o schimbare semnificativ ˘a. De asemenea este
un mod foarte bun de a ˆınv˘at ¸a lect ¸ii lungi s ¸i plictisitoare pentru copiii mici a c ˘aror
atent ¸ie este foarte greu de captat.
22

Capitolul 4
Tehnologii utilizate
Pentru crearea aplicat ¸iei am folosit Unity, toat ˘a partea de backend fiind scris ˘a
ˆın C#, limbaj ˆın care eu nu am mai lucrat niciodat ˘a pˆan˘aˆın acest moment. De
asemenea am realizat toate setarile necesare pentru ca aplicat ¸ia s ˘a poat ˘a fi folosit ˘a
pe dispozitivele mobile, iar pentru acest lucru am avut nevoie de Android SDK.
ˆIn cele ce urmeaz ˘a voi prezenta pe scurt toate tehnologiile pe care le-am folosit
s ¸i cum le-am integrat eu ˆın proiect.
4.1 Android SDK
Android SDK (Software Development Kit) [12] este un pachet utilizat pentru
dezvoltarea aplicat ¸iilor destinate platformei Android. Acesta include urmatoarele
componente: biblioteci necesare, debugger, emulator, exemple de coduri surs ˘a,
tutoriale s ¸i documentat ¸ia necesar ˘a pentru a le folosi.
23

Debugger-ul este un program integrat de obicei ˆın tehnologia de dezvoltare,
folosit pentru testarea s ¸i urmarirea erorilor din codul surs ˘a. Principala lui uti-
lizare este de a depana programul t ¸int ˘aˆın condit ¸ii controlate pentru a-i permite
programatorului s ˘a-s ¸i urmareasc ˘a operat ¸iunile ˆın desf ˘as ¸urare s ¸i s ˘a monitorizeze
modificarea resurselor.
Emulatorul este un sistem ce permite dispozitivului pe care se ruleaz ˘a un anu-
mit program s ˘a se comporte ca un alt sistem. El ofer ˘a posibilitatea de a dezvolta
aplicat ¸ii pentru Android, ˆın cazul de fat ˘a, f˘ar˘a a avea o component ˘a hardware ce
suport ˘a ca sistem de operare Android.
4.2 Vuforia
Vuforia este un kit de dezvoltare software pentru crearea aplicat ¸iilor ce folo-
sesc Realitatea Augmentat ˘a, destinate dispozitivelor ce permit acest lucru. Se
foloses ¸te de camera telefonului pentru a urm ˘ari imagini plane s ¸i obiecte 3D ˆın
timp real. Aceast ˘a proprietate de a ˆınregistra imagini le permite dezvoltatorilor s ˘a
pozit ¸ioneze s ¸i s ˘a orienteze obiectele virtuale, cum ar fi modelele 3D sau alte su-
porturi media, ˆın raport cu obiectele din lumea real ˘a atunci c ˆand sunt vizualizate
prin camera unui dispozitiv mobil. Obiectul virtual urmares ¸te pozit ¸ia s ¸i orienta-
rea imaginii ˆın timp real, astfel ˆıncˆat perspectiva privitorului asupra obiectului s ˘a
corespund ˘a cu perspectiva asupra t ¸intei, s ˘a par ˘a c˘a obiectul virtual este o parte a
scenei reale.
Vuforia accept ˘a o varietate de tinte, incluz ˆand imaginile nemarcate, modelele
24

3D s ¸i o form ˘a de marcator cunoscut ˘a sub denumirea de VuMark. Caracteristicile
suplimentare includ s ¸ase grade de localizare a dispozitivului, select ¸ia imaginei
t ¸int˘aˆın momentul rul ˘arii s ¸i posibilitatea de a cea s ¸i reconfigura seturi de t ¸inte
programatic, tot la momentul rularii.
Mai departe voi descrie pas cu pas modul ˆın care am integrat s ¸i am folosit eu
aceast ˘a tehnologie ˆın aplicat ¸ia mea. Pentru ˆınceput mi-am f ˘acut cont de dezvolta-
tor pe site-ul oficial (https://developer.vuforia.com) pentru a-mi ˆınscrie proiectul
s ¸i a obt ¸ine cheia de licent ¸ ˘a de care voi avea nevoie mai departe ˆın Unity.
Imaginile pe care le voi folosi pentru a avea suprapunerile virtuale caracteris-
tice Realitactii augmentate sunt c ˘autate ˆın momentul rul ˘ariiˆıntr-o baz ˘a de date.
Pentru acest lucru vom avea nevoie de Vuforia. Dupa crearea bazei de date se
introduc imaginile, care vor fi procesate s ¸i li se va atribui un nivel de augmen-
tare. Se poate observa i ¸n captura de ecran de mai jos c ˘a unele poze pe care le-am
ˆınregistrat nu sunt augmentate s ¸i nu pot fi folosite cu succes ˆın aplicat ¸ie.
Pentru a ˆımbun ˘at˘at ¸i rating-ul de augmentare al imaginilor f ˘ar˘a stele, se pot
ad˘auga noi imagini de tip marker suplimentare ˆın dreptul acestora.
25

ˆIn momentul ˆın care ad ˘aug˘am un obiect ˆın
baza de date, avem de ales ˆıntre imagine, para-
lelipiped, cilindru sau un obiect 3D. Dup ˘a ce am
selectat ce obiect vrem s ˘a ad˘aug˘am, tot ce mai
trebuie s ˘a facem este s ˘aˆıi atribuim un nume unic
ˆın baza de date s ¸i s ˘aˆıi set ˘am dimensiunea. Aici
trebuie ret ¸inut c ˘a ”1” ˆınseamn ˘a un metru, deci
toate fotografiile din baza mea de date au fost se-
tate la ”0.2”. Acest lucru poate fi modificat s ¸i
mai t ˆarziu din Unity, dar este mai usor s ˘a setezi
dimensiunea de la ˆınceput dec ˆat s˘a iei mai tarziu
toate pozele pe r ˆand s ¸i s ˘a le modifici.
Ultimul lucru pe care as ¸ vrea s ˘aˆıl ment ¸ionez despre Vuforia este c ˘a ofer ˘a
posibilitatea de a vedea caracteristicile ce corespund criteriilor de Realitate Aug-
mentat ˘a pentru fiecare obiect al bazei de date. Aceste caracteristici sunt extrase
26

din imaginea t ¸int ˘a s ¸i comparate ˆın timpul rul ˘arii cu cele din imaginea captat ˘a de
camer ˘aˆın timp real. ˆIn figura de mai jos exemplific acest lucru pentru o imagine
random realizat ˘aˆın facultate.
Tot ce mai am de f ˘acut acum este s ˘a descarc dataset-ul, ˆın care am grij ˘a s˘a
selectez Unity ca platform ˘a de dezvoltare s ¸i s ˘aˆıl adaug proiectului meu.
4.2.1 Realitate Augmentata
Realitatea augmentat ˘a (AR) [7] este o experient ¸ ˘a interactiv ˘a prin intermedul
c˘areia, ˆıntr-un mediu real, obiectele fizice sunt ˆımbun ˘at˘at ¸ite de informat ¸ii percep-
tuale generate de computer, uneori prin multiple modalit ˘at ¸i senzoriale, inclusiv
vizual, auditiv, haptic, somatosezorial s ¸i olfactiv. Realitatea augmentat ˘a poate fi
definit ˘a ca un sistem care ˆındeplines ¸te trei caracteristici de baz ˘a: o combinat ¸ie de
lumi reale s ¸i virtuale, interact ¸iune ˆın timp real s ¸i ˆınregistrare 3D exact ˘a a obiectelor
virtuale s ¸i reale. Informat ¸iile senzoriale suprapuse pot fi constructive (adic ˘a adi-
27

tive la mediul natural) sau distructive (adic ˘a mascarea mediului natural). Aceast ˘a
experient ¸ ˘a este perfect ˆımpletit ˘a cu lumea fizic ˘a, astfel ˆıncˆat este perceput ˘a ca un
aspect imersiv al mediului ˆınconjur ˘ator.
Realitatea augmentat ˘a modific ˘a astfel percept ¸ia permanent ˘a a mediului real, ˆın
timp ce realitatea virtual ˘aˆınlocuies ¸te complet mediul real al utilizatorului cu unul
simulat. Realitatea augmentat ˘a este legat ˘a de doi termeni ˆın mare parte sinonimi:
realitate mixt ˘a s ¸i realitate mediat ˘a de computer.
Valoarea principal ˘a pe care se bazeaz ˘a aceasta este modul ˆın care componen-
tele lumii digitale se contopesc ˆın percept ¸ia unei persoane despre lumea real ˘a,
nu ca o simpl ˘a afis ¸are a datelor, ci prin integrarea senzat ¸iilor imersive, care sunt
percepute ca p ˘art ¸i naturate ale unui mediu ˆınconjur ˘ator. Experient ¸ele de realitate
augmentat ˘a comerciale au fost introduse pentru prima dat ˘aˆın afacerile destinate
divertismentului, ˆın special jocuri. Ulterior, aplicat ¸iile ce folosesc realitatea aug-
mentat ˘a au cuprins industria comerciala, ap ˘arˆandˆın domenii precum educat ¸ia,
comunicat ¸iile, medicina etc. ˆIn educat ¸ie, spre exemplu, cont ¸inutul poate fi acce-
sat prin scanarea sau vizualizarea unei imagini de pe un dispozitiv mobil sau prin
utilizarea tehnicilor AR f ˘ar˘a marc ˘a.
4.3 Unity
Unity [10] este un game-engine de jocuri lansat pentru prima dat ˘aˆın iunie
2005 la Conferint ¸a Dezvoltatorilor Mondiali Apple Inc. fiind dezvoltat exclusiv
pentru IOS. P ˆan˘aˆın 2018, acesta a fost extins ˘a pentru a suporta mai mult de 25 de
28

platforme. Tehnologia Unity poate fi folosit ˘a pentru a crea jocuri de realitate tri-
dimensional ˘a, bidimensional ˘a, virtual ˘a s ¸i augmentat ˘a, precum s ¸i alte simul ˘ari. Cu
timpul, aceast ˘a tehnologie a fost folosit ˘a s ¸iˆın afara jocurilor video, spre exemplu
industria cinematografic ˘a, auto, arhitectural ˘a, construct ¸ii etc.
Motivul pentru care am ales s ˘a folosesc aceast ˘a tehnologie pentru dezvoltarea
aplicat ¸iei mele este integrarea simpl ˘a s ¸i us ¸or de folosit a realit ˘at ¸ii augmentate ˆın
aplicat ¸ie. Scripturile pot fi scrise ˆın limbajele de programare C #s ¸i JavaScript,
alegerea mea fiind primul dintre acestea. Am f ˘acut aceast ˘a alegere, ˆın condit ¸iile
ˆın care nu am mai lucrat niciodat ˘aˆın C#, deoarece am gasit foarte us ¸or de aplicat
principiile POO s ¸i faptul c ˘a marea majoritate a comunit ˘at ¸ii foloses ¸te acest limbaj
frecvent. ˆIn momentele ˆın care eram ˆın impas, mi-a fost us ¸or s ˘a g˘asesc o rezolvare
sau o metod ˘a alternativ ˘a pe internet.
Primul pas ˆın dezvoltarea aplicat ¸iei a fost de a-mi face cont Unity s ¸i de a crea
proiectul pe platform ˘a. Dup ˘a care a trebuit s ˘a integrez pachetele de la Vuforia
29

pentru a putea adauga scenei mele camera speciala de detect ¸ie folosit ˘aˆın cazul
aplicat ¸iilor de Realitate Augmentat ˘a. Unele unelte puse la dispozit ¸ie de Vuforia
nu pot fi folosite p ˆan˘a la introducerea cheii de licent ¸ ˘a. Cu alte cuvinte acest ˘a a
fost urmatorul pas, dupa care am ˆınc˘arcat baza de date.
Am ad ˘augat ˆın scena ce foloses ¸te
Realitatea Augmentat ˘a toate pozele din
baza de date, peste care a trebuit s ˘a adaug
un obiect de tip Quad c ˘aruia s ˘a-i dau
o textura. Acest proces a fost foarte
mig˘alos s ¸i de lung ˘a durat ˘a.
Dup˘a ce am terminat, totul a decurs mult mai repede. Quad-ul va fi diferit
pentru fiecare poz ˘aˆın parte s ¸i va influent ¸a comportamentul aplicat ¸iei ˆın momentul
ˆın care ˆıntˆalnes ¸te fiecare imagine ˆın viat ¸a real ˘a.
ˆIn final, am construit programul de
instalare a aplicat ¸iei din File- >Build
Settings- >Player Settings. ˆIn acest
moment, c ˆand aplicat ¸ia mea este
funct ¸ional ˘a, decid pentru ce tip de
dispozitiv va fi destinat ˘a.
Astfel pot s ˘a spun c ˘a ea este us ¸or de mutat pe computere, laptopuri(windows,
linux), dispozitive Apple (IOS), testele desf ˘as ¸urate ˆın timpul dezvolt ˘arii fiind ˆın
special pe windows. Mi se pare foarte lung procesul de a instala aplicat ¸ia pe
telefon de fiecare dat ˘a cˆand vreau s ˘a testez ceva, av ˆandˆın vedere multitudinea de
teste pe care o fac, fiind mult mai rapid s ¸i comod ˆın acest fel.
30

Aceast ˘a tehnologie a avut un rol foarte important ˆın dezvoltarea proiectului
meu, fiind un mediu de lucru foarte accesibil pentru ˆıncep ˘atorii ˆın domeniul Re-
alit˘at ¸ii Augmentate sau, de ce nu, Realit ˘at ¸ii Virtuale. Unity permite o relat ¸ionare
rapid ˘a cu Vuforia, c ˆat s ¸i posibilitatea de a exporta proiectul ˆın orice alt ˘a platform ˘a
ˆıti dores ¸ti, ˆın cazul meu Android [6].
4.3.1 C#
C# este un limbaj de programare dezvoltat de Microsoft ˆın cadrul .NET, cu
timpul fiind acceptat ca limbaj standard de Ecma s ¸i ISO. Acesta este un limbaj de
programare de scop general, multi-paradigm ˘a, care cuprinde o scriere imperativ ˘a,
declarativ ˘a, funct ¸ional ˘a, cu alte cuvinte, programare orientat ˘a pe obiecte. Astfel
ofer˘a multe variante de rezolvare pentru o gam ˘a foarte larg ˘a de probleme.
Unity ofer ˘a posibilitatea de a alege
dintre dou ˘a limbaje, C# sau JavaScript.
Se pot folosi am ˆandoua concomitent, dar
acest lucru este privit ca ”bad practice”,
deoarece poate duce la conflicte de com-
pilare s ¸i confuzie. Este recomandat ˘a fo-
losirea unui singur limbaj oriunde este
necesar.
Limbajul ales de mine, dupa cum reiese s ¸i de mai sus, este C #. Principalul
motiv pentru care am f ˘acut aceast ˘a alegere este faptul c ˘a C# se bazeaz ˘a pe pro-
gramarea orientat ˘a pe obiecte, g ˆandire ce mi-a fost foarte bine implementat ˘aˆın
31

facultate. Un alt motiv ar fi faptul ca acest limbaj de programare seman ˘a foarte
mult cu C++ s ¸i Java, as ¸ spune chiar c ˘a este o combinat ¸ie dintre cele dou ˘a. Fiind
familiar ˘a cu acestea, trecerea nu mi s-a p ˘arut at ˆat de dificil ˘a cum mi s-ar fi p ˘arut
ˆın cazul JavaScript.
4.3.2 Asset
Pentru a dezvolta o apliact ¸ie complet ˘a
ˆın Unity, trebuie s ˘a s ¸tii ce e acela asset,
cum se foloses ¸te s ¸i de unde ˆıl pot ¸i lua.
Asset Store este o platform ˘a de pe care pot ¸i desc ˘arca contracost (unele sunt
gratis) asset-uri create ˆın marea majoritate de comunitatea dezvoltatorilor. Un
asset este un pachet ce cuprinde modele, sunete, texte, scripturi etc, create de as ¸a
natur ˘aˆıncˆat s˘a poat ˘a fi importate foarte us ¸or ˆın Unity.
32

Capitolul 5
Arhitectura aplicat ¸iei
Arhitectura software [14] se refer ˘a la structurile fundamentale ale unui sistem
software s ¸i la disciplina cre ˘arii unor astfel de structuri s ¸i sisteme. Fiecare structur ˘a
cuprinde elemente de software, relat ¸iile dintre ele s ¸i propriet ˘at ¸ile acestora, dar s ¸i
propriet ˘at ¸ile relat ¸iilor.
Arhitectura unui sistem software este o metafor ˘a, analoag ˘a arhitecturii unei
cl˘adiri. Aceasta funct ¸ioneaz ˘a ca un model pentru sistemul s ¸i proiectul de dezvol-
tare, stabilind sarcinile necesare pentru a fi executate de echipele de proiectare.
Documentarea arhitecturii software faciliteaz ˘a comunicarea ˆıntre p ˘art ¸ile inte-
resate, capteaz ˘a decizii timpurii despre proiectarea la nivel ˆınalt s ¸i permite refolo-
sirea componentelor de proiectare ˆıntre proiecte.
33

5.1 Diagram ˘a Use Case
O diagram ˘a UML de tipul Use-Case este forma principal ˘a a cerint ¸elor de sistem,
software, pentru un nou program aflat ˆın stadiul de dezvoltare. Aceasta specific ˘a
comportamentul asteptat (ce) s ¸i nu metoda prin care se realizeaz ˘a (cum). Aceste
cazuri odat ˘a specificate, pot fi notate at ˆat printr-o reprezentare textural ˘a cˆat s ¸i vi-
zual˘a (ceea ce am facut s ¸i eu mai jos). Un concept cheie de modelare a cazurilor
de utilizare este faptul c ˘a ne ajut ˘a la proiectarea unui sistem din perspectiva uti-
lizatorului final. Este o tehnic ˘a eficienta ¸ pentru comunicarea comportamentului
sistemului ˆın termenii utilizatorului, specific ˆand tot comportamentul sistemului
vizibil extern [13].
Dup˘a cum am spus, o diagram ˘a a cazurilor trebuie s ˘a fie simpl ˘a s ¸i s ˘a cont ¸in ˘a
doar c ˆateva forme principale, dupa cum se poate observa ˆın a mea. Cazurile pe
care eu le-am considerat importante sunt:
Utilizatorul trebuie s ˘a fac ˘a o alegere ˆın privint ¸a a ce vrea s ˘a fac ˘a.
34

Utilizatorul poate s ˘a caute informat ¸ii, curiozit ˘at ¸i sau alte lucruri ascunse
prin intermediul camerei AR.
Utilizatorul poate s ˘a-s ¸i caute sala de curs.
Utilizatorul poate s ˘a schimbe set ˘arile default din meniul de set ˘ari.
Utilizatorul poate s ˘a trimit ˘a un feedback sau s ˘a raporteze dezvoltatorului
anumite probleme pe care le are aplicat ¸ia.
5.2 Diagram ˘a de activitate
Diagrama de activitate descrie modul ˆın care sunt coordonate activit ˘at ¸ile pentru
a furniza un serviciu care poate s ˘a difere ˆın funct ¸ie de nivelul de abstractizare.
ˆIn mod normal, un eveniment trebuie realizat dup ˘a anumite act ¸iuni, ˆın special
dac˘a operat ¸ia este destinat ˘a realiz ˘arii unui num ˘ar mare de lucruri diferite care
necesit ˘a coordonare sau modul ˆın care evenimentele dintr-unul din cazurile Use-
Case unice se raporteaz ˘aˆıntre ele, ˆın special pentru c ˘a acestea se pot suprapune s ¸i
necesit ˘a coordonare. De asemena este adecvat pentru modelarea modului ˆın care
se coordoneaz ˘a o colect ¸ie de cazuri de utilizare pentru a reprezenta fluxurile de
lucru pentru diverse afaceri [1].
Identificarea cazurilor de utilizare a candidat ¸ilor prin examinarea fluxului
de lucru pentru afaceri.
Identificarea condit ¸iilor pre s ¸i post (contextual) pentru cazurile de utilizare.
35

Modele de fluxuri de lucru ˆıntre cazurile de utilizare.
Modelarea fluxurilor de lucru complexe ˆın operat ¸iunile asupra obiectelor.
Modelarea ˆın detaliu a activit ˘at ¸ilor complexe ˆıntr-o diagram ˘a de activitate
la nivel ˆınalt.
Diagrama de activit ˘at ¸i de mai sus descrie fluxul de lucru pentru procesorul
aplicat ¸iei realizate de mine:
Deschide aplicat ¸ia.
Selecteaz ˘a ramura pe care vrei s ˘a continui/ activitatea pe care vrei s ˘a o
ˆıntreprinzi.
As ¸teapt ˘a s˘a seˆıncarce baza de date pentru realitatea augmentat ˘a.
Caut ˘a elementele augmentate din facultate.
36

Cauta-t ¸i sala de curs.
Se vor afis ¸a detalii despre cum s ˘a ajungi la aceasta.
Intr˘aˆın set ˘ari.
Acceseaz ˘a site-ul facult ˘at ¸ii direct din aplicat ¸ie.
Trimite un feedback sau scrie dezvoltatorului despre problemele pe care le-
aiˆıntˆampinat ˆın legatur ˘a cu aplicat ¸ia.
Se raporteaz ˘a trimiterea cu succes a mesajului sau viceversa.
Seteaz ˘a volumul melodiei de background.
Schimb ˘a grafica aplicat ¸iei.
Salveaz ˘a schimb ˘arile.
37

5.3 Diagram ˘a package
Diagrama de pachete, un fel de diagram ˘a structural ˘a, arat ˘a aranjamentul s ¸i or-
ganizarea elementelor de model ˆın proiectul la scar ˘a mijlocie p ˆan˘a la mare. Dia-
grama de pachete poate ar ˘ata at ˆat structura, c ˆat s ¸i dependent ¸ele dintre sub-sisteme
sau module, diferite percept ¸ii ale unui sistem. Spre exemplu o aplicat ¸ie cu mai
multe nivele, modelul de aplicat ¸ie cu mai multe straturi [9].
5.4 Performant ¸ ˘a
Performant ¸a, ˆın contextul preg ˘atirii s ¸i planific ˘arii, are un caracter general, aduc ˆand
ˆın fat ¸ ˘a punctele importente ce trebuie atinse sau care sunt as ¸teptate s ˘a fie asigurate
de produsul ˆın dezvoltare. Studiul performant ¸ei are scopul de a monitoriza parcur-
sul proiectului pe baza unor rapoarte asupra schimb ˘arii scopului, program ˘arilor,
costurilor s ¸i calit ˘at ¸ii.
38

T ¸ inˆand cont de aceste lucruri, am urm ˘arit s ˘a pun accentul pe fluiditatea interfet ¸ei
grafice s ¸i evitarea bloc ˘arii acesteia pe c ˆat de mult posibil, detectarea ˆıntr-un timp
cˆat mai scurt a elementelor din baza de date din Vuforia (acest lucru a depins foarte
mult de calitatea pozelor s ¸i de numarul de caracteristici detectabile), ˆınc˘arcarea ra-
pid˘a a resurselor informat ¸ionale s ¸i ˆıncadrarea acestora perfect ˘aˆın pagin ˘a, s ¸i auto-
matˆın ecranul dispozitivului utilizatorului.
5.5 Relevant ¸ ˘a
Relevant ¸a unui proiect este asociat ˘a cu m ˘asura ˆın care acesta ajunge s ˘a se inte-
greze ˆın domeniul care i-a fost destinat s ¸i procentajul de persoane care recurg la
utilizarea lui s ¸i care fac parte din grupul t ¸int ˘a ales ˆın stadiul init ¸ial.
Dup˘a cum am specificat mai sus ˆın capitolul despre publicul t ¸int ˘a al aplicat ¸iei
mele, ea este destinat ˘a student ¸ilor facult ˘at ¸ii de Matematic ˘a s ¸i Informatic ˘a, dar pot
spune ca este relevant ˘a pentru toate v ˆarstele. Am ales ca public t ¸int ˘a student ¸ii de-
oarece nu cred c ˘a vor exista foarte multe persoane ˆın rˆandul adult ¸ilor ˆıncˆantat ¸i de
ideea de a alerga prin facultate, cu dispozitivul pornit s ¸i camera activat ˘a, pentru a
descoperi c ˆateva informatii, pe care mult ¸i dintre ei probabil deja le s ¸tiu. Procentul
de persoane care va folosi aceast ˘a aplicat ¸ie nu pot s ˘aˆıl prezic de pe acum.
39

5.6 Securitate
Securitatea este procesul de ment ¸inere a unui nivel acceptabil de risc percep-
tibil asupra unei aplicat ¸ii. Nici o aplicat ¸ie s ¸i nici un proces nu sunt ˆın totalitate
sigure.
Ghidul FMI este pe c ˆat se poate de sigur, toate datele fiind stocate pe dispozi-
tivul pe care este salvat ˘a aplicat ¸ia. Nu se cere conectare s ¸i nu se salveaz ˘a nic ˘aieri
datele personale ale utilizatorului, astfel ˆıncˆat nu exist ˘a riscuri din acest punct de
vedere.
”Securitatea este un proces, nu o stare final ˘a” – Mitch Kabay
5.7 Uzabilitate
Uzabilitatea este un atribut calitativ care se refer ˘a la c ˆat de us ¸or de folosit este
un anumit obiect, ˆın cazul nostru, o anumit ˘a aplicat ¸ie. Acesta descrie c ˆat de repede
se acomodeaz ˘a utilizatorii cu ea, c ˆat de des o folosesc, c ˆat sunt de predispus ¸i la a
o utiliza gres ¸it s ¸i c ˆat de mult ˘a satisfacere pot obt ¸ine ˆın raport cu as ¸tept ˘arile pe care
le aveau ˆın momentul achizit ¸ion ˘arii acesteia.
Astfel pot spune despre Ghidul Facultatii c ˘a este foarte usor de folosit deoa-
rece:
Aplicat ¸ia nu implic ˘a sincronizare cu serverul deci nu exist ˘a problema concurent ¸ei
pe resurse ˆıntre utilizatori ˆıntruc ˆat datele necesare vor fi accesibile s ¸i stoca-
bile local.
40

Aplicaa ¸tia este ˆın limba rom ˆan˘a, ceea ce face foarte us ¸oar ˘a accesarea pagi-
nilor, presupun ˆand c ˘a nu toat ˘a lumea se descurc ˘a cu limba englez ˘a.
Este foarte bine structurat ˘a, f˘acˆand astfel us ¸oar ˘a parcurgerea ecranelor pen-
tru oricine. Se ajunge foarte us ¸or unde este nevoie, presupun ˆand c ˘a s ¸tii exact
ce vrei de la aceast ˘a aplicat ¸ie.
5.8 Fezabilitate
Fezabilitatea reprezint ˘a o analiz ˘aˆın faza incipient ˘a a unui proiect ce stabiles ¸te
potent ¸ialul acestuia de a ˆındeplini toate cerint ¸ele clientului ˆın bugetul alocat. Prin
studiul de fezabilitate se analizeaz ˘a utilizarea rat ¸ional ˘a a resurselor, at ˆat materi-
ale c ˆat s ¸i umane s ¸i financiare, s ¸i se determin ˘a modul prin care sunt satisf ˘acute
cerint ¸ele tehnice s ¸i economice impuse de dezvoltarea proiectului propriuzis.
Aplicat ¸ia mea a fost fezabil ˘aˆınc˘a de la ˆınceput, deoarece singura resurs ˘a de
care am fost constr ˆans˘a a fost timpul, toate aplicat ¸iile s ¸i tehnologiile pe care le-am
folosit ˆın dezvoltarea acestea fiind gratuite. Am ˆınceput s ˘a lucrez din timp, astfel
ˆıncˆat am fost sigur ˘a c˘a pot s ˘a o duc la cap ˘at s ¸i pot s ˘a termin tot ce mi-am propus
ˆın stadiul init ¸ial, cel putin.
Acum, ˆın momentul ˆın care scriu aceast ˘a documentat ¸ie, pot s ˘a spun c ˘a am s ¸i
reus ¸it.
41

5.9 Testabilitate
Testabilitatea este cel mai important proces din etapele dezvolt ˘arii software s ¸i
de aceea trebuie s ˘a i se acorde o atent ¸ie special ˘a s ¸i s ˘a fie monitorizat ˘aˆınc˘a de la
init ¸ierea proiectului. De-a lungul timpului s-a observat c ˘a este mai putin costisitor
s˘a se detecteze defect ¸iunile pe parcursul dezvolt ˘arii pentru a se p ˘astra calitatea
produsului. S ¸i este cumva logic acest lucru, deoarece, f ˘ar˘a s˘a testezi permanent
ceea ce lucrezi, pot ¸i ajunge ˆıntr-un punct ˆın care s ˘a realizezi c ˘a jumate de proiect
nu poate funct ¸iona ˆın concordant ¸ ˘a s ¸iˆın echilibru perfect cu cealalt ˘a jumatate, fiind
nevoit s ˘a refaci foarte mult ˘a munc ˘a.
5.10 Scalabilitate
Scalabilitatea, ˆın domeniul dezvolt ˘arii software, este o proprietate a unui sis-
tem sau proces, care arat ˘a capacitatea acestuia de a suporta corect un volum foarte
mare de date, care permite, de asemenea, marirea sau extinderea sa. Spre exem-
plu, un sistem de preluare a datelor este scalabil dac ˘a comportamentul lui nu se
schimb ˘a s ¸i nu apar defect ¸iuni sau erori ˆın momentul ˆın care volumul de date cres ¸te
considerabil. De asemena, un sistem poate fi considerat scalabil s ¸i dac ˘a este ca-
pabil s ˘a ofere rezultate ˆımbun ˘atat ¸ite ˆın condit ¸iile ˆın care ˆıi sunt ad ˘augate resurse
adit ¸ionale, lucru ce nu este cazul ˆın momentul de fat ¸ ˘a.
Pentru a realiza partea de realitate augmentat ˘a, m-am folosit de o baz ˘a de date
realizat ˘aˆın Vuforia, baz ˘a de date ce poate fi extins ˘a oric ˆand s ¸i oric ˆat. P ˆan˘a la
momentul altual, oric ˆate poze am ad ˘augat ˆın aceasta, nu am ˆıntˆampinat defect ¸iuni
42

s ¸i sistemul nu a devenit mai lent. Toate pozele sunt ˆınc˘arcate o singura dat ˘a, cˆand
se deschide aplicat ¸ia, astfel ˆıncˆat dup ˘a acest proces, doar se cerceteaz ˘a baza de
date ˆın c˘autarea caracteristicilor. Probabil ˆıntr-o baz ˘a de date ˆın care pot exista
poze de ordinul miilor, sau chiar mai mult, procesul de c ˘autare va fi ˆıngreunat
considerabil s ¸i ar putea aparea bug-uri ˆın aplicat ¸ie, dar consider c ˘a pentru ceea ce
este ea acum, s ¸i pentru o aplicat ¸ie destinat ˘a facult ˘at ¸ii, nu va fi cazul.
43

Capitolul 6
Implementare
ˆIn acest capitol voi detalia pe larg fiecare feature ˆın parte s ¸i voi vorbi despre
cum a fost implementat, tehnologiile pe care le-am folosit s ¸i cum le-am folosit.
6.1 AR camera
Crearea acestui modul are la baz ˘a realitatea augmentat ˘a, fiind s ¸i prima clas ˘a
44

a proiectului meu. Nu voi relua pas ¸ii de realizare a bazei de date (pe aces ¸tia ˆıi
putet ¸i g ˘asi la capitolul despre tehnologiile folosite, sect ¸iune Vuforia). Modulul
a fost realizat ˆın totalitate in Unity ceea ce a permis utilizarea foarte us ¸oar ˘a a
kitului de dezvoltare Vuforia. Init ¸ial am ˆıntˆampinat c ˆateva probleme de compa-
tibilitate deoarece aveam o versiune mult prea veche de Unity (problem ˘a pe care
amˆıntˆampintat-o s ¸i la exportul aplicat ¸iei pe platforma android), problem ˘a ce am
rezolvat-o destul de us ¸or, dar nu foarte repede nes ¸tiind init ¸ial sursa ei. Produc ˘atorii
au reus ¸it s ˘a ofere o compatibilitate ˆıntre Unity s ¸i Vuforia pentru a facilita dezvol-
tarea aplicat ¸iilor de realitate augmentat ˘a [8].
Informat ¸iile ce sunt afis ¸ate la detectarea caracteristicilor cu ajutorul realit ˘at ¸ii
augmentate init ¸ial au fost stocate local pentru a implementa funct ¸ionalit ˘at ¸ile de
baz˘a. Dup ˘aˆıncheierea acestora am realizat c ˘a pot extinde foarte mult baza de
informat ¸ii, de asemenea, s ¸i alt ¸ii pot contribui la ea, astfel ˆıncˆat aplicat ¸ia facult ˘at ¸ii
s˘a fie adus ˘a la zi s ¸i preluat ˘a de viitorii student ¸i ai acesteia. Astfel am ajuns la
concluzia c ˘a cel mai economic, din punct de vedere al spat ¸iului, s ¸i elegant mod de
a salva informat ¸iile este prin intermediul unui JSON.
Ce este un JSON?
Prescurtare ce provine de la conceptul de JavaScript Object Notation.
Un format foarte us ¸or de folosit pentru salvarea s ¸i stocarea datelor.
Este folosit pentru a face transmisia de date ˆıntre un server s ¸i o pagin ˘a
web/aplicat ¸ie fiind nevoie de conexiune la internet.
Este ”auto-descriptiv” s ¸i us ¸or de ˆınteles.
45

Astfel am reus ¸it s ˘a creez o baz ˘a de informat ¸ii considerabil ˘a, s ¸i s ˘a randomi-
zez procesul de afis ¸are a informat ¸iilor, pentru a face mai dinamic ˘a interact ¸iunea
utilizatorului cu aplicat ¸ia. Pentru acest lucru m-am folosit de funct ¸iile eveniment
caracteristice realit ˘at ¸ii augmentate, s ¸i anume: OnTrackableStateChanged(), On-
TrackingFound(), OnTrackingLost(). Aceste funct ¸ii provin din clasa DefaultTra-
ckableEventHandler ce implementeaz ˘a interfat ¸a ITrackableEventHandler.
Un alt aspect foarte important ar fi faptul c ˘a datorit ˘a problemelor mondiale
din prezent, aplicat ¸ia mea a fost testat ˘a doar o singur ˘a dat ˘aˆın mediul real, restul
testelor fiind f ˘acute virtual pe anumite poze pe care le aveam deja.
6.2 Caut ˘a sala
Aceast ˘a scen ˘a a fost cred c ˘a cel mai greu de realizat, nu at ˆat din punct de vedere
tehnic, c ˆat din punct de vedere al conceptului. Prima mea idee a fost o pagin ˘a cˆat
mai simpl ˘a, cu un singur c ˆamp de c ˘autare ˆın care se introduce num ˘arul s ˘alii. Iar
de aici au pornit problemele:
Trebuia s ˘a prev ˘ad orice forma ˆın care studentul ar fi putut c ˘auta o anumit ˘a
sal˘a. (Exemplu: decanat, biroul decanului, decan, sala 22, 22)
Trebuia s ˘a prev ˘ad cazul ˆın care studentul ar fi scris gresit o litera. (Exemplu:
s308, l308, 308, x308) Primele trei variante ar fi putut fi acceptate, dar ul-
tima trebuia luata ˆın considerare sau trimis un mesaj de eroare? Este destul
de logic la ce se refera, dar totusi un caz in plus.
46

ˆIn cazul ˆın care se returna eroare mai sus, devenea mult mai lent procesul
de c˘autare, fiind nevoit s ˘a s ¸tergi s ¸i s ˘a scrii din nou. Astfel, aplicat ¸ia care
trebuia s ˘aˆıi ajute pe boboci s ˘aˆıs ¸i g˘aseasc ˘a sala rapid, i-ar fi ˆıncetinit.
Toate aceste moduri de a te referi la aceas ¸i sal ˘a de clas ˘a trebuiau trecute
undeva, prima mea idee fiind o baz ˘a de date, care s-a dovedit a fi foarte
dificil de manevrat s ¸i foarte lent ˘aˆın c˘autare.
Astfel, dupa multe ˆıncerc ˘ari, am recurs la o metod ˘a, poate nu la fel de elegant ˘a,
dar mult mai rapid de folosit s ¸i logic ˘a. Fiec ˘arei s ˘ali i-a fost asociat un buton, astfel
ˆıncˆat utilizatorul nu trebuie s ˘a mai piard ˘a timpul scriind s ¸i sterg ˆand. Sala de curs
acum se afla doar la un click distant ¸ ˘a.
Robot ¸elul din partea st ˆang˘a a ecranului a fost creat utiliz ˆand animat ¸iile speci-
fice Unity. Acesta este de fapt o succesiune de poze pixelate, realizate de mine,
puse s ˘a se mis ¸te la infinit ˆıntr-o anumit ˘a ordine s ¸i la un anumit interval de timp.
Asseturile pentru Animator Controller sunt create din meniul Assert sau din
meniul Create din fereastra principal ˘a a Proiectului. ˆIn majoritatea situat ¸iilor este
47

normal s ˘a avet ¸i mai multe animat ¸ii care comunic ˘aˆıntre ele s ¸i s ˘a le comutat ¸i la
anumite comenzi. Chiar s ¸i cu o singur ˘a animat ¸ie, acesta trebuie totus ¸i plasata ˆın
Animator Controller pentru a putea fi utilizat ˘a. Controller-ul gestioneaz ˘a diferitele
st˘ari s ¸i tranzit ¸ii folosind de fapt o mas ¸in ˘a de st ˘ari. Structura controlerului de joc
poate fi v ˘azut˘a, creat ˘a sau modificat ˘aˆın fereastra animatorului.
ˆIn chenarul ˆın care se afl ˘a butoanele, exist ˘a un buton numit ”Sali/ Labora-
toare”. Prin ap ˘asarea acestuia es ¸ti redirect ¸ionat la o nou ˘a pagin ˘a de c ˘autare ˆın
care pot ¸i introduce numarul exact al s ˘alii pe care o caut ¸i, presupun ˆand c ˘a nu s ¸tii
cum se numes ¸te sala sau este doar o sal ˘a simpl ˘a de seminarii, f ˘ar˘a o utilitate spe-
cial˘a. Ecranul cont ¸ine acelas ¸i robot ¸el s ¸i este foarte simplu s ¸i intuitiv de folosit.
6.3 Set ˘ari
Pagina de set ˘ari a ap ˘arutˆın momentul ˆın care am realizat c ˘a vreau s ˘a fac toat ˘a
interact ¸iunea mai dinamic ˘a. S ¸i cel mai comun eveniment, atunci c ˆand deschizi o
48

aplicat ¸ie mobil ˘a, este muzica de background, despre care o s ˘a vorbesc mai multe
ˆın subcapitolul urm ˘ator. De asemena, o pagin ˘aˆıntreag ˘a doar pentru un buton de
ajustat volumul, pe l ˆang˘a faptul ca era inestetic, nu avea nici un sens, astfel am
continuat s ˘a ma uit prin set ˘arile aplicat ¸iilor ce se g ˘asesc ˆın telefonul meu mobil,
s ¸i s˘a adaug s ¸i eu elementele care mi s-au p ˘arut c ˘a se potrivesc. Astfel am ajuns
s˘a am, pe l ˆang˘a butonul de volum, un buton ce te redirect ¸ioneaz ˘a c˘atre site-ul
oficial al facultat ¸ii, un buton spre formularul de feedback sau suport tehnic s ¸i un
dropdown pentru a modifica nivelul grafic al aplicat ¸iei.
6.3.1 Audio s ¸i grafic ˘a
Dup˘a cum se poate observa ˆın imagi-
nea de al ˘aturi, pentru a adauga melodia
de background ˆın aplicat ¸ia mea am folo-
sit un AudioMixer [2], un asset disponi-
bilˆın platforma de dezvoltare Unity.
Putet ¸i crea unul sau mai multe AudioMixere s ¸i s ˘a avet ¸i active c ˆate dorit ¸i ˆın
acelas ¸i moment. Un AudioMixer cont ¸ine un grup principal de sunete, dup ˘a care
se pot ad ˘auga altele pentru a defini structura acestuia. El permite s ˘a amestecat ¸i
diverse surse audio, s ˘a le amplificat ¸i efectul, s ˘a le modificat ¸i viteza de redare etc.
Fereastra care afis ¸eaza AudioMixerul este asem ˘an˘atoare cu un arbore ˆın care se
regzuases ¸te un grup de surse audio. Un grup AudioMixer este ˆın esent ¸a un mix
de audio, un lant ¸ de semnale care v ˘a permite s ˘a aplicat ¸i atenuarea volumului s ¸i
corectare tonului. V ˘a permite s ˘a introducet ¸i efecte care proceseaz ˘a semnalul audio
49

s ¸i s˘a modificat ¸i parametri efectori. Exist ˘a, de asemenea, un mecanism de trimitere
s ¸i retur pentru a trece rezultatele de la un sistem la altul.
Acest AudioMixer l-am adaugat ˆın scena de set ˘ari pentru a putea face leg ˘atura
cu butonul de volum, lucru ce mi-a produs c ˆateva probleme pe care le voi exem-
plifica mai t ˆarziu c ˆand voi vorbi despre salvarea datelor.
Modificarea nivelului de grafic ˘a l-am
realizat printr-un dropdown conectat la
set˘arile de calitate din unity, set ˘ari ce pot
fi observate ˆın dreapta. Astfel ˆın momen-
tulˆın care se alege o opt ¸iune din dro-
pdown, se modific ˘a s ¸iˆın sistem.
Unity v ˘a permite s ˘a setat ¸i nivelul de calitate grafic ˘a pe care acesta ˆıncearc ˘a
s˘aˆıl redea. ˆIn general, calitatea este ˆın detrimentul fragmentului, astfel nu este
indicat s ˘a viz ˘am cea mai ˆınalt˘a calitate pe dispozitivele mobile mai vechi, deoa-
rece tinde s ˘a aib ˘a un efect daun ˘ator asupra aplicat ¸iei. Utilizat ¸i set ˘arile de calitate
(meniu: Editare!Set˘ari proiect, apoi selectat ¸i categoria Calitate) pentru a se-
lecta nivelul de calitate ˆın Editor pentru dispozitivul ales. Este ˆımp˘art ¸it˘aˆın dou ˘a
domenii principale: matricea de calitate apare ˆın partea de sus, iar sub acesta apar
set˘arile pentru nivelul de calitate selectat.
Unity v ˘a permite s ˘a atribuit ¸i un nume unei combinat ¸ii date de opt ¸iuni de ca-
litate pentru o referint ¸ ˘a us ¸oar ˘a. Rˆandurile matricei v ˘a permit s ˘a aleget ¸i la care se
aplic ˘a fiecare nivel de calitate. R ˆandul implicit din partea de jos a matricei nu este
un nivel de calitate ˆın sine, ci stabiles ¸te mai degrab ˘a nivelul calitativ implicit folo-
50

sit pentru fiecare platform ˘a (o caset ˘a de control verde ˆıntr-o coloan ˘a indic ˘a nivelul
ales ˆın prezent pentru acea platform ˘a). Unity vine cu s ¸ase niveluri de calitate
pre-activate, dar putet ¸i ad ˘auga propriile voastre niveluri.
S ¸i aici am avut aceleas ¸i probleme cu salvarea ca la AudioMixer, pe care le voi
exemplifica chiar acum.
Set˘arile pentru audio s ¸i grafic ˘a au fost f ˘acute ˆın scena de set ˘ari, iar salvarea
datelor am f ˘acut-o prin crearea unui fis ¸ier binar local, astfel ˆıncˆat utilizatorul s ˘a nu
fie nevoit s ˘a intre s ¸i s ˘a modifice aceste caracteristici de fiecare dat ˘a cˆand deschide
aplicat ¸ia. Problema este c ˘a acest fis ¸ier s ¸i toate datele se aflau ˆın meniul de set ˘ari,
astfel ˆıncˆat cˆand deschideam aplicat ¸ia trebuia s ˘a intru prima dat ˘a acolo pentru a
se reseta caracteristicile alease de mine, lucru ce nu era foarte elegant.
Astfel am f ˘acut funct ¸ia de mai sus care acceseaz ˘a fisierul binar, verific ˘a dac ˘a
exist ˘a ceva ˆın el, iar ˆın caz afirmativ scoate s ¸i salveaz ˘a ultimele set ˘ari f˘acute.
51

Aceast ˘a funct ¸ie este apelat ˘aˆın metoda OnStart din ecranul principal.
6.3.2 Set ˘ari limb ˘a
ˆIn cazul ˆın care exist ˘a student ¸i str ˘aini (venit ¸i prin cadrul programelor de tip
Erasmus+ sau pur s ¸i simplu din dorint ¸a de a studia ˆın Rom ˆania) am ad ˘augat ˆın
set˘ari o sect ¸iune ˆın care se poate alege limba dorit ˘a de utilizator pentru aplicat ¸ie.
Pentru a se realiza acest lucru trebuie s ˘a existe conexiune la internet deoarece
traducerea este f ˘acut˘a dinamic prin conectarea la un server de Google s ¸i intro-
ducerea textului s ¸i a limbii dorite. Nu exist ˘a nici o baz ˘a de date cu toate textele
deja traduse, deoarece am considerat aceast ˘a metod ˘a foarte ineficient ˘a ca spat ¸iu
de stocare, chiar daca poate ar fi fost mai rapid ˘a.
Modul ˆın care am g ˆandit s ¸i am implementat aceast ˘a parte a aplicat ¸iei este ˆın
felul urmator:
1. Selectarea limbii dorite din Dropdown.
52

2. Salvarea acesteia ˆıntr-un fisier binar ˆın dispozitivul utilizatorului. Limba va
fi preluat ˘a de acolo de fiecare dat ˘a cˆand este deschis ˘a aplicat ¸ia astfel ˆıncˆat
s˘a nu fie nevoie s ˘a schimbi limba mereu.
3. Preluarea tuturor elementelor de tip text din pagina curent ˘a s ¸i salvarea lor
ˆıntr-un s ¸ir de caractere concatenat, prelucrat astfel ˆıncˆat s˘a fie usor s ˘a le
separam dupa traducere. Acest procedeu se realizeaz ˘a de fiecare dat ˘a cˆand
se schimb ˘a pagina.
4. Transmiterea limbii dorite s ¸i a sirului de caractere c ˘atre API-ul Google ce
se ocup ˘a cu traducerea lor s ¸i returneaz ˘a un s ¸ir de caractere concatenat ˆın
acelas ¸i mod cu rezultatul.
5.ˆImpartirea s ¸irului de caractere ˆın texte separate s ¸i atribuirea lor elemetelor
din pagin ˘a astfel ˆıncˆat s˘a se potriveasc ˘a cu textele preluate init ¸ial.
6.3.3 Formular suport tehnic
Formularul pentru suportul tehnic (sau pentru trimiterea unui feedback) se afl ˘a
ˆın pagina de set ˘ari s ¸i poate fi folosit pentru a raporta o problem ˘a tehnic ˘aˆın legatur ˘a
cu aplicat ¸ia sau pentru a-t ¸i spune p ˘arerea (sau, de ce nu, pentru a cere sfaturi legate
de facultate de la un student mai mare).
53

Acesta este conectat printr-un
server la adresa mea personal ˘a
de mail, s ¸i am ad ˘augat ˆın pagin ˘a
un mesaj pe succes ˆın cazul ˆın
care mailul a fost trimis, sau vi-
ceversa.
O sesiune poate include zero sau mai multe tranzact ¸ii SMTP[5]. O tranzact ¸ie
SMTP const ˘a din trei secvent ¸e de comand ˘a r˘aspuns:
Comanda MAIL, pentru a stabili adresa de retur, denumit ˘a s ¸i retur-calea,
invers ˘a-cale, adres ˘a de respingere, mfrom sau expeditor plic.
Comanda RCPT, pentru a stabili un destinatar al mesajului. Aceast ˘a co-
mand ˘a poate fi emis ˘a de mai multe ori, c ˆate una pentru fiecare destinatar.
Aceste adrese fac parte s ¸i din plic.
DATE pentru a semnaliza ˆınceputul textului mesajului, cont ¸inutul mesaju-
lui, spre deosebire de plicul s ˘au. Este format dintr-un antet de mesaje s ¸i
un corp de mesaje separat printr-o linie goal ˘a. DATA este de fapt un grup
de comenzi, iar serverul r ˘aspunde de dou ˘a ori: o dat ˘s la comanda DATA ˆın
sine, pentru a recunoas ¸te c ˘a este gata s ˘s primeasc ˘a textul s ¸i a doua oar ˘a dup ˘a
secvent ¸a de sf ˆars ¸it a datelor, pentru a accepta sau respinge ˆıntregul mesaj.
Gazda init ¸iat ˘a, clientul SMTP, poate fi fie un client de e-mail al utilizatoru-
lui final, identificat funct ¸ional ca agent de utilizator de pos ¸t ˘a (MUA) sau agent
de transfer de pos ¸t ˘a (MTA) al unui server releu, adic ˘a un server SMTP care
54

act ¸ioneaz ˘a ca un client SMTP. Serverele SMTP complet capabile s ˘a ment ¸in ˘a cozi
de mesaje pentru reluarea transmisiilor de mesaje care au dus la es ¸ecuri tranzitorii.
ServicePointManager este o clas ˘a staticaua utilizat ˘a pentru a crea, ˆıntret ¸ine s ¸i
s ¸terge instant ¸e ale clasei ServicePoint.
55

Capitolul 7
Posibilitatea extinderii aplicat ¸iei in
viitor
Consider c ˘a aceast ˘a aplicat ¸ie poate s ˘aˆıs ¸i mareasc ˘a aria de acoperire, poate fi mo-
dificat ˘a pentru orice facultate/ universitate s ¸i se poate extinde foarte mult. Lucruri
pe care eu as ¸ fi dorit s ˘a le mai adaug dar nu am avut posibilitatea:
O baz ˘a de date mult mai mare. Datorita problemelor aparute anul acesta,
nu am reus ¸it s ˘a adun at ˆat de multe poze pe c ˆat mi-as ¸ fi dorit, astfel ˆıncˆat
s˘a fac partea de realitate augmentat ˘a destul de bogat ˘a.ˆIn momentul acesta
student ¸ii sunt nevoit ¸ii s ˘a fac ˘a mai mult o ”c ˘autare de comori” dup ˘a aceste
informat ¸ii ascunse.
O alt ˘a idee pe care am avut-o dar pe care nu am reus ¸it s ˘a o pun ˆın prac-
tic˘a a fost integrarea de filmulete cu studet ¸i mai mari ˆın care ˆıs ¸i povestesc
experient ¸ele, amintirile s ¸i transmit sfaturi colegilor lor mai mici filmate ˆın
56

facultate.
Consider c ˘a aplicat ¸ia ar putea fi folosit ˘a s ¸iˆın scop didactic, cu sprijinul pro-
fesorilor, realiz ˆant cursuri mult mai interactive pentru student ¸i. Tehnologia
realit ˘at ¸ii augumentate ˆın sine poate fi folosit ˘aˆın foarte multe domenii, iar
aplicat ¸ia mea consider ca este doar ˆınceputul s ¸i poate fi extins ˘a mult mai
mult.
Localizare GPS ˆın spat ¸iul 3D care s ˘aˆıt ¸i arate pozit ¸ia ˆın care te afli, sala,
anumite informat ¸ii despre aceasta s ¸i, de asemenea, cum s ˘a ies ¸i din facultate
ˆın cazul ˆın care te-ai r ˘at˘acit.
O hart ˘a cu ˆımprejurimile facult ˘at ¸ii ( ˆın cazul ˆın care se poate, extinderea
acesteia pe ˆıntreaga zon ˘a a Bucures ¸tiului) care s ˘a te ghideze spre facultate
utiliz ˆand elemente de realitate augmentat ˘a. Spre exemplu: av ˆand camera
deschis ˘a,ˆıt ¸i apar anumite s ˘aget ¸i pe care dac ˘a le vei urma, vei ajunge la
facultate; sau elemente augmentate 3D cu informat ¸ii sau indicii care s ˘a te
conduc ˘aˆın Piat ¸a Universit ˘at ¸ii.
57

Capitolul 8
Concluzii generale
Cum am spus s ¸i mai sus, la obiectivul aplicat ¸iei, am vrut s ˘a dezvolt ceva simplu
s ¸i us ¸or de utilizat, av ˆand un design c ˆat mai intuitiv s ¸i pl ˘acut. Consider ca am reus ¸it
acest lucru, pe c ˆat posibil, realiz ˆand un tur augmentat al facult ˘at ¸iiˆın care student ¸ii
s˘aˆınvet ¸e lucruri noi, s ˘aˆıs ¸i dezvolte cultura general ˘a despre facultatea la care au
aplicat.
Tehnologiile din ziua de ast ˘azi sunt ˆıntr-o continu ˘a schimbare, iar acest lucru
vine cu numeroase beneficii. Pe l ˆang˘a us ¸urint ¸a transmiterii informat ¸iilor, atent ¸ia
utilizatorilor captat ˘a de noile idei de prezentare informatiilor. Cum am ment ¸ionat
s ¸iˆın capitolele anterioare, tinerii sunt atras ¸i de orice t ¸ine de tehnologie, s ¸i de nou.
ˆIn realizarea proiectului meu, am luat ˆın considerare acest aspect, realiz ˆand totul
ˆıntr-o manier ˘a cˆat mai dinamic ˘aˆın care viat ¸a real ˘a seˆımbin ˘a cu lumea virtual ˘a.
Aplicat ¸ia are rolul s ¸i de a dezvolta memoria utilizatorului cu ajutorul rea-
lit˘at ¸ii augmentate. ˆIn concluzie, aplicat ,iile de acest tip aduc un beneficiu major ˆın
58

dezvoltarea cunos ¸tint ¸elor generale.Ei vor considera c ˘a joac ˘a un joc s ¸i c ˘a trebuie
s˘a castige, sa fie cei mai buni.
59

Bibliografie
[1] Activity Diagram .URL:https://www.visual-paradigm.com/
guide/uml-unified-modeling-language/what-is-activity-
diagram/ (urlseen 03/2020).
[2] AudioMixer .URL:https://docs.unity3d.com/Manual/AudioMixer.
html (urlseen 03/2020).
[3] Kat Brewster. Pok´emon Go not a good game… but a great experience .URL:
https://www.theguardian.com/technology/2016/jul/
12/pokemon-go-review-it-may-not-be-a-good-game-
but-its-a-great-experience (urlseen 11/2019).
[4] Caitlin Clausen Dr. Joachim Scholz Nicole Madsen. How to improve the re-
tail ecperience with virtal fitting room .URL:https://www.marketingsquad.
net/ar/retail-experience/ (urlseen 10/2019).
[5] Warren Duff. What Is an SMTP Server? URL:https://sendgrid.
com/blog/what-is-an-smtp-server/ (urlseen 04/2020).
60

[6] Nancy Gupton. WHAT’S THE DIFFERENCE BETWEEN AR, VR, AND
MR? URL:https://www.fi.edu/difference-between-ar-
vr-and-mr (urlseen 10/2019).
[7] Nathan Chandler Kevin Bonsor. How Augmented Reality Works .URL:https:
//computer.howstuffworks.com/augmented- reality.
htm (urlseen 10/2019).
[8] Nadia Kovach. What is Augmented Reality (AR) and How does it work .
URL:https://thinkmobiles.com/blog/what-is-augmented-
reality/ (urlseen 10/2019).
[9] Package Diagram .URL:https://www.visual-paradigm.com/
guide/uml-unified-modeling-language/what-is-package-
diagram/ (urlseen 03/2020).
[10] Pietro Polsinelli. Why is Unity so popular? URL:https://designagame.
eu/2013/12/unity- popular- videogame- development/
(urlseen 04/2020).
[11] Anushay Qaiser. The Home Depot App Now Includes Augmented Reality .
URL:https://virtualrealitytimes.com/2017/03/31/
the-home-depot-app-augmented-reality/ (urlseen 04/2020).
[12] Adam Sinicki. Android SDK tutorial for beginners .URL:https : / /
www . androidauthority . com / android – sdk – tutorial –
beginners-634376/ (urlseen 11/2019).
61

[13] Use Case Diagram .URL:https://www.visual-paradigm.com/
guide/uml-unified-modeling-language/what-is-use-
case-diagram/ (urlseen 03/2020).
[14] What is Unified Modeling Language (UML)? URL:https : / / www .
visual- paradigm.com/guide/uml- unified- modeling-
language/what-is-uml/ (urlseen 03/2020).
62

Similar Posts