Sunteți pe pagina 1din 7

Documentatie Proiect Aplicatii si Dispozitive Mobile

1. Introducere
Proiectul trateaza o aplicatie mobila utila pentru sustinerea de teste quiz, aplicatie la care pot
avea acces atat studentii, cat si profesorii.

Aplicatia isi propune astfel sa centralizeze situatia testelor sustinute in cadrul aplicatiei unde
fiecare utilizator (student sau profersor) sa poate urmari astfel situatia activitatilor. Aceasta
aplicatie va fi folosita de acestia de pe orice dispozitiv care are instalat un sistem de operare
Android, fie ca este smartphone sau tableta.

Dupa instalarea aplicatiei, se introduc informatiile personale pentru crearea unui cont daca
utilizatorul este pentru prima data in aplicatie, fie se logheaza daca are un cont deja existent.

2. Descriere solutie

Utilizarea acesteia nu necesita un grad ridicat de pregatire deoarece interfata este simpla si
intuitiva, user-ul poate invata foarte usor cum sa o foloseasca.
Scenariul prin care ne propunem sa implementam solutia este usor de inteles si de utilizat: pe
prima pagina utilizatorului i se cere sa se logheze, dar presupunand ca acesta nu are un cont deja
existent, va trebui sa isi creeze un cont apasand pe butonul Sign Up.

Pagina principala – activitatea “Login”


 Ferestra de inceput prezinta optiuniile in care user-ului ii sunt cerute numele de utilizator si
parola si tipul de utilizator avand optiuniile de Student sau Profesor.
 Campurile necesita completare mandatory pentru a accesa butonul Login si a inainta in aplicatie.

Activitatea SignUp
 Aceasta este necesara pentru crearea unui cont nou, pentru ca aplicatia sa isi urmeze scopul,
acela de a monitoriza activitatea oricarui utilizator.

 Completarea campurilor cu datele de identificare este obligatorie.

 Se vor introduec datele necesare crearii contului, precum: Nume, Prenume, E-mail, Username,
Parola, Confirma Parola, Tip Utilizator, Grupa, Departament si Data Nasterii. De indata ce se
activeaza butonul Submit, utilizatorul este cu un pas mai aproape de a parcurge etapele de
rutina ale aplicatiei.

3. Implementare

Activity-ul se concentreaza asupra unei functionalitati specifice a aplicatiei si doar asupra ei,
avand un ciclu de viata propriu si o stare ce poate fi persistenta. Cu toate ca Activity-ul reprezinta o
parte functionala care se bucura de o anumita independenta in contextul aplicatiei, ea trebuie sa
poata comunica cu alte Activity-uri si nu numai. Aceasta comunicare dintre componente se
realizeaza prin intermediul “intentiilor”: utilizatorul declara intentia de a efectua o activitate.
Cand o aplicatie este lansata, ceea ce este afisat este rezultatul unei activitati. La nivel de cod,
pentru a crea o activitate este necesara crearea unei clase care extinde Activity. O activitate are
obligatoriu metoda onCreate(), care este metoda principala. Pentru interactionarea cu programul
prin intermediul activitatilor ne folosim de view-uri.
Intent
Intent-urile sunt un mecanism universal in Android, ele fiind folosite pentru a porni Activity-uri,
servicii si pentru a emite broadcast-uri. In continuare, ne vom concentra asupra Activity-urilor,
urmand ca pe viitor sa revenim asupra serviciilor si broadcast-urilor. Intent-ul in sine nu prezinta
multa functionalitate. Este un simplu obiect care are rolul de a stoca informatia necesara pentru ca o
activitate sa porneasca, partea de functionalitate prezenta fiind legata exclusiv de aceasta.
Exista doua moduri prin care putem crea un Intent:
• explicit– prin atribuirea unui identificator sub forma unui String unic
Intent intent = new Intent(“com.example.myapp.myaction”);
• implicit– prin specificarea instantei clasei care emite intentia si specificarea clasei de
tipul careia dorim sa fie instanta creata
Intent intent = new Intent(SourceActivity.this, DestinationActivity.class);
Intent.putExtras(Bundle objetbunble );
Informatia se transmite sub forma de perechi cheie-valoare. Generic, ele poarta denumirea de
extras.

Login activity
Primul Activity este cel de Login. Acesta va afisa un simplu ecran de login cu patru componente.
Doua dintre ele sunt folosite pentru introducerea numelui de utilizator si a unei parole intr-un
EditText. Cel de-al treilea este un buton care, atunci cand este apasat, memoreaza datele
utilizatorului care va ramane logat si trimite utilizatorul la cel de-al doilea Activity. Cel de-al treilea
este un TextView care face conexiunea cu activitatea SignUp, aceasta iti ofera posibilitatea de a crea
un nou cont si pe butonul Submit se realizeaza salvarea in baza de date.

In primul rand, vom folosi metoda onCreate, care se executa in momentul in care Activity-ul
este creat, pentru a specifica care layout sa fie folosit. In acelasi timp, ne si asiguram ca avem
accesibile instantele celor doua campuri de text pentru a putea prelua numele de utilizator si parola
introduse. Acestea sunt obtinute prin metoda findViewById(int), care va returna instanta view-ului
specificat prin identificator.
Cea de-a doua metoda a clasei este handler-ul pentru evenimentul de onClick. Vom fi nevoiti sa
specificam numele acestei metode in fisierul de layout dedicat Activity-ului, aceasta trebuind sa
accepte neaparat ca parametru un obiect de tipul View.

In momentul in care utilizatorul apasa butonul de login, vom citi din cele doua campuri numele
de utilizator si parola. Apoi, vom crea un obiect de tipul Intent si specificam ca sursa instanta curenta
a activitatii, iar ca destinatie o instanta noua.
Apoi, trebuie sa introducem in acel obiect numele de utilizator pentru a-l putea trimite spre
destinatie. Acest lucru se face prin metoda setExtra(), folosind o cheie unica pentru identificare.
In acest moment, toate informatiile necesare pentru a porni Activity-ul sunt continute in Intent
si vom apela metoda startActivity().

Layouts
Ele au rolul de a descrie cum sunt asezate pe ecran componentele interfetei grafice.
Vom folosi <LinearLayout>, care asaza toate componentele din interior in ordine liniara, pe
verticala sau pe orizontala. Fiecare componenta, fie ca este vorba de layout-uri sau de butoane si
text, poate sa primeasca un identificator care o face accesibila in cadrul codului Java. In plus, fiecare
componenta are un set de atribute care pot modifica modul in care ele sunt afisate. Acestea sunt
foarte similare celor folosite in CSS.
De remarcat aici atributul onClick al butonului, care specifica numele metodei care va fi
executata atunci cand utilizatorul il atinge.
Inainte de a putea rula aplicatia, trebuie sa completam cateva informatii in fisierul
AndroidManifest.xml. Acest fisier, extrem de important, contine toate detaliile aplicatiei. Orice fel
de Activity pe care il folosim in aplicatie trebuie declarat aici. Acelasi lucru este valabil si pentru
servicii si/sau receivere, dar in momentul de fata ne vom concentra asupra Activity-urilor.
De observat este elementul de intent-filter de la Activity-ul de login, care este Activity-ul nostru
principal. Prin specificarea acelui filtru, predefinit in SDK, instiintam sistemul ca respectiva activitate
este cea care trebuie pornita atunci cand utilizatorul foloseste iconita din meniul de aplicatii si
reprezinta practic punctul de intrare in aplicatia noastra.
List View

Un obiect utilizat este de tip ListView si afiseaza elementele pe care le contine vertical, existand
posibilitatea ca acestea sa fie derulate in situatia in care se depaseste dimensiunea suprafetei de
afisare. Deoarece este folosit intr-o activitate obisnuita, controlul de tip ListView trebuie sa fie
specificat in interfata grafica din fisierul XML asociat ferestrei din care face parte, precizandu-se si un
identificator prin intermediul caruia sa poata fi referit.
Elementele (de tip View) pe care le afiseaza un astfel de obiect sunt furnizate de un ListAdapter
care trebuie precizat prin intermediul metodei setAdapter(ListAdapter). In codul sursa, se va
specifica un tip de adaptor care va fi initializat cu datele pe care le va contine obiectul respectiv,
dupa care acesta va fi asociat controlului grafic.
Se observa ca elementul de tip adaptor primeste un parametru care indica modul de dispunere a
continutului listei. In acest sens se pot utiliza layout-uri predefinite, corespunzatoare tipului de
obiect de tip AdapterView sau se pot folosi layout-uri definite de utilizator (pentru structuri de date
mai complexe ce implica afisarea informatiei intr-un format dependent de acest context).
Adaptorul de liste utilizat este ArrayAdapter, activat in momentul apasarii butonului Add, dupa
ce utilizatorul a introdus datele personale. Clasa ArrayAdapter este utilizata pentru gestiunea unui
tablou sau a unei liste de obiecte Java.
Fiecare element din cadrul acesteia va corespunde unui element din cadrul controlului grafic,
continutul acestuia fiind generat de rezultatul metodei toString() a clasei din care fac parte obiectele
componente a vectorului sau a listei respective. Identificatorul textului de tip TextView in cadrul
caruia se va afisa continutul referit de adaptor poate fi specificat in constructorul acestuia, in caz
contrar folosindu-se un element predefinit.

Instantierea unui obiect de tip ArrayAdapter se face prin specificarea cel putin a contextului in
care acesta va fi afisat (activitate, fragment) si a identificatorului unei resurse de tip layout care va fi
utilizata pentru dispunerea continutului sau (aceasta putand fi predefinita sau definita de utilizator).
In plus, se pot preciza identificatorul unui control de tip TextView in cadrul caruia va fi plasat fiecare
element al colectiei, precum si obiectele propriu-zise, sub forma de tablou sau de lista.
4. Concluzie

In concluzie, interfata cu utilizatorul este simpla si intuitiva, din principalul motiv ca tema
aplicatiei nu este greu de implementat, dar poate deveni complexa in functie de asteptarile
utilizatorului de la aplicatie.
Implementarea unor tehnici pentru optimizarea performantelor este foarte importanta atunci
cand se dezvolta aplicatii pentru dispozitive mobile. Avand in vedere resursele limitate (in special in
privinta memoriei si a capacitatii de procesare) de care dispun acestea, un program care nu le
gestioneaza in mod eficient poate determina o depreciere a timpului de raspuns.

Bibliografie

Pdm.ase.ro
Android SDK
Seminarii/Cursuri – Dispozitive si Aplicatii Mobile
Tutoriale Youtube

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