Documente Academic
Documente Profesional
Documente Cultură
Avram Adrian-Constantin
1
Introducere
Aplicatia are ca scop informarea clientului cu privire la filmele sale preferate. Acest
program furnizeaza utilizatorului, pe baza cautarilor sale, detalii legate de filmele pe care
acesta ar dori sa le vada sau le-a vazut. Datele legate de filmele sale preferate sunt extrase
dintr-o baza de date, in care sunt stocate informatii generale cu privire la o gama larga de
filme existente pe piata. Informatiile legate de preferintele utilizatorului pentru anumite filme
sunt stocate in memoria telefonului, pentru a putea fii accesate oricand.
Aplicatia este accesibila fie cu conexiune la internet sau nu. Clientul va fii instiintat prin
intermediul unei notificari in cazul in care va aparea sau pierde conexiunea la internet.
Totodata, anumite componente ale interfetei nu vor mai fii afisate (eg. componenta de cautare
a unor fime, ce preia date dintr-o baza de date online) , intrucat acestea sunt dependente de
conexiunea la internet; si vor deveni inutile in cazul unei deconexiuni.
Aplicatia a fost dezvoltata folosindu-se cadrul de lucru React Native, in limbajul Javascript.
Astfel, aplicatia mea este compatibila cu sistemele de operare Android si IOS, scazand prin
urmare costurile necesare pentru dezvoltarea individuala a unei aplicatii pentru fiecare OS.
Informatiile cu privire la statusul conexiunii de internet sunt accesate cu ajutorul tehnologiei
“NetInfo”. Pentru o structurare corecta a datelor si codului implementat , m-am folosit de
tehnologia Redux, ce permite un management bun al variabilelor aplicatiei. Datele preluate
din mediul online sunt stocate local , intr-o baza de date SQLite (am folosit aceasta
tehnologie , intrucat aplicatia nu-mi permitea sa integrez date local in baza de date Realm ) .
Programul este format dintr-o stiva de 2 ecrane , navigarea intre acestea fiind posibila
folosindu-se tehnologia ReactNavigation. O fractie dintre datele preluate online sunt afisate si
in partea de UI , restul fiind stocate in memoria telefonului ; cu scopul de a putea fii utilizate
corespunzator intr-o actualizare a aplicatiei. Datele utilizate in cadrul aplicatiei sunt stocate in
doua modele definite in interiorul programului , ce au rolul de a stoca informatii legate de
descrierea filmului, dar si cai de acces online a unor imagini.
In cele ce urmeaza voi prezenta arhitectura aplicatiei, voi detalia pe larg tehnologiile folosite
si rolul acestora in cadrul programului; precum si compatibilitatea aplicatiei cu diferite
smartphone-uri ce ruleaza pe diferite sisteme de operare, avand o anumita rezolutie.
2
Arhitectura aplicatiei
Arhitectura aplicatiei este de tip client-server, luand modelul de referinta OSI, in care
primul participant este reprezentat de aplicatia client si anume programul React Native, iar
cel de-al doilea este server-ul public TMDB. Client-ul preia din baza de date public TMDB
informatii cu privire la filmele de care utilizatorul este interesat . Cu ajutorul tehnologiei
axios, se realizeaza un request HTTP de tip “get” , de unde se preiau respectivele date.
Informatiile sunt stocate si pastrate in baza de date SQLite , pentru a putea reda utilizatorului
date cu privire la filmele sale preferate, chiar si atunci cand este indisponibil serviciul de
internet.
In total, aplicatia a fost dezvoltata si impartita in 6 module, fiecare avand urmatorul rol:
3
Fig 1. Arhitectura globala a sistemului
4
Tehnologii folosite
5
Compatibilitatea aplicatiei
Pentru a ma asigura ca aplicatia este accesibila in bune conditii, dar si pentru a-I oferi
clientului o experienta placuta in utilizarea aplicatiei, m-am folosit de clasele “Platform” si
“Dimensions” ale librariei React Native. Prin intermediul clasei “Platform” am putut verifica
si adapta interfata in functie de sistemul de operare al dispozitivului, in timp ce clasa
“Dimensions” imi furnia date cu privire la dimensiunile ecranului telefonului, ajutandu-ma
astfel sa adaptez interfata in diferite context. Spre exemplu, in cazul redarii listei de filme pe
doua coloane pe un ecran mic, ar putea aparea probleme legate de incadrarea in ecran. Astfel
, telefoanele cu o lungime mai mica de 400pixeli, vor reda filemele pe o singura coloanal.
Aplicatia a fost testata folosindu-se emulatoarele “Nexus One API 30” (dispozitiv cu un
ecran de 3.7’’) si “Pixel 3a XL API 30” (telefon cu rezolutia de 1080x2160).