Vous êtes sur la page 1sur 38

FACULTATEA DE AUTOMATIC I CALCULATOARE

DEPARTAMENTUL CALCULATOARE

TIME COMPASS: O APLICAIE DE TIME MANAGEMENT


PENTRU ANDROID
LUCRARE DE LICEN

Absolvent: Bogdan NANE


Coordonator tiinific: ef lucr. ing. Cosmina IVAN

2012

Cuprins

Cuprins
1

INTRODUCERE ................................................................................................................... 6
1.1 CONTEXT GENERAL .............................................................................................................. 6
1.2 CONTEXTUL APLICAIEI ....................................................................................................... 6
1.3 REZUMAT ............................................................................................................................. 6

OBIECTIVELE PROIECTULUI ........................................................................................ 8

STUDIU BIBLIOGRAFIC ................................................................................................... 9


3.1 CONCEPTE DE TIME MANAGEMENT ....................................................................................... 9
3.2 PRODUSE SOFTWARE DE TIME MANAGEMENT EXISTENTE PENTRU DISPOZITIVE MOBILE ..... 11

ANALIZ I FUNDAMENTARE TEORETICA ........................................................... 16


4.1 TEHNOLOGII UTILIZATE ...................................................................................................... 16
4.1.1 Android ...................................................................................................................... 16
Caracteristici Android........................................................................................................ 16
Vedere de ansamblu........................................................................................................... 18
Elemente componente........................................................................................................ 21
4.1.2 Google Maps ............................................................................................................. 27
4.2 TOOL-URI FOLOSITE ............................................................................................................ 27
4.2.1 Eclipse IDE ................................................................................................................ 27
4.2.2 Android SDK ............................................................................................................. 28
4.2.3 ADT (Android Development Tool) ............................................................................ 29
4.2.4 Google APIs Add-On ................................................................................................. 30
4.3 CERINELE APLICAIEI ....................................................................................................... 30
4.3.1 Caracteristici funcionale .......................................................................................... 30
4.3.2 Caracteristici non-funcionale................................................................................... 31
4.3.3 Specificaii Dispozitiv ................................................................................................ 31
4.3.4 Factorul uman ........................................................................................................... 32
4.4 CAZURI DE UTILIZARE ........................................................................................................ 32

PROIECTARE DE DETALIU I IMPLEMENTARE ................................................... 41


5.1 ARHITECTUR CONCEPTUAL ............................................................................................ 41
5.2 NIVELUL DE PREZENTARE (PRESENTATION) ....................................................................... 41
5.2.1 Principii de design ..................................................................................................... 42
5.2.2 Implementare concret .............................................................................................. 43
5.3 NIVELUL DE BUSINESSLOGIC ............................................................................................. 49
5.4 PACHETUL DATA ................................................................................................................ 51
5.5 NIVELUL DE DATAACCESS ................................................................................................. 52
5.5.1 Baza de date .............................................................................................................. 52
5.6 INTERACIUNEA DINTRE COMPONENTE............................................................................... 54

TESTARE I VALIDARE ................................................................................................. 62

MANUAL DE INSTALARE I UTILIZARE .................................................................. 67


7.1 MANUAL DE INSTALARE ..................................................................................................... 67
7.2 MANUAL DE UTILIZARE ...................................................................................................... 68

CONCLUZII ........................................................................................................................ 76
4

Cuprins
8.1 REALIZRI .......................................................................................................................... 76
8.2 COMPARAIE CU ALTE PRODUSE ......................................................................................... 77
8.3 DEZVOLTARI ULTERIOARE .................................................................................................. 77
BIBLIOGRAFIE ......................................................................................................................... 78
ANEXA 1. DIGRAMA DE CLASE PENTRU COMPONENTA DE PREZENTARE........ 79
ANEXA 2. DIAGRAMA DE CLASA A COMPONENTEI DE BUSINESSLOGIC ........... 81
ANEXA 3. LIST DE FIGURE I TABELE .......................................................................... 82
ANEXA 4. ACRONIME ............................................................................................................ 85

Capitolul 1

Introducere

1.1 Context general


n ziua de azi omul modern are tot mai multe de fcut, i ia din ce n ce mai multe
angajamente att pe plan profesional ct i personal, ns indiferent de numarul de sarcini pe care
i le propune s le ndeplineasc, acesta nu poate fi n mai multe locuri n acelai timp, numarul
de aciuni pe care la poate face n paralel este mic iar timpul pe care l are la dispoziie este
limitat.
n acest context timpul devine o resurs preioas deoarece trebuie folosit n mod ntelept,
n caz contrar individul nu i va putea duce la pn la capt angajamentele n timp util, exis
posibilitatea ca acesta s se piard n detalii investind timp n activiti neimportante i nereuind
s le fac pe cele importante i pe lng toate acestea individul poate deveni stresat datorit
repercusiunilor ce le poate avea nendeplinirea sarcinilor.

1.2 Contextul Aplicaiei


Pentru a putea folosi ct mai eficient timpul i a reduce factorul de stress asociat cu
pierderea acestuia i neatingerea obiectivelor, individul trebuie s i planifice din timp
activitile. n acest scop au aprut o serie de tehnici i metodologii care s-l ndrume astfel nct
s-i planifice eficient activitile i s tin cont de diversele circumstane de care depind acestea.
ns, i pentru stpnirea acestor tehnici este nevoie o serie de de resurse printre care se numr i
timp.
Evoluiile tehnologice privind dispozitivele mobile vin n sprijinul omului modern. n
ultima vreme au aprut o serie de dispozitive mobile cu performane bune privind puterea de
calcul, capacitate de stocare, durat de via a bateriei, aceste dispozitive avnd dimensiune
redus i sunt din ce n ce mai frecvent ntlnite la ndemna utilizatorului. Astfel aceste
dispozitive ar putea s vin n sprijinul utilizatorului ajutndu-l s-i gestioneze eficient timpul.
Acest lucru ar fi posibil prin intermediul unor aplicaii care ar implementa principii de time
management i ar fi uor de folosit oferind informaiile potrivite la momentul potrivit

1.3 Rezumat
Subiectul lucrrii de fa const ntr-o aplicaie proiectat de rula pe dispozitive mobile ce
ruleaz pe sistemul de operare Android versiunea 4, i care, prin funcionalitile pe care le ofer
implementeaz principii de time management utile pentru utilizator ajutandu-l s-i planifice
eficient activitile.
Astfel c n capitolul 2 vor fi prezentate obiectivele pe care le urmrete lucrarea de fa, n
capitolul 3 vor fi prezentate principalele concepte de time management de care s-a inut cont n
procesul de realizare a aplicaiei, precum i cteva produse software de time management deja
existente pe pia. n capitolul 4 sunt oferite detalii legate de tehnologiile folosite pentru
realizarea aplicaiei precum i use case-urile pe care aceasta ar trebui s le ndeplineasc. Detalii
lagate de implementare sunt prezentare n capitolul 5 iar n capitotul 6 este prezentat un scenariu
de test pentru aplicaie urmnd ca n capitolul 7 s fie prezentate instruciunile de folosire a
6

Capitolul 1
aplicaiei. Iar n cele din urm, ultimul capitol este prezentat o concluzie a celor realizate precum
i cteva direcii de dezvoltare a aplicaiei.

Capitolul 2

Obiectivele proiectului

n cadrul acestui proiect se urmrete realizarea unei aplicaii software proiectat pentru a
rula pe smartphone-uri cu Android i care s se modeleze pe principii de time management.
Aplicaia ar oune la dispoziia utilizatorului urmtoarele funcionaliti:
Modalitate de grupare a activitilor, astfel utilizatorul are posibilitatea de a grupa
activitile proprii n funcie de diverse criterii
Modaliti de vizualizare prin intermediul crora utilizatorul i poate forma o imagine
de ansablu asupra situaiei sarcinilor pe care le are de ndeplinit. Informaiile obinute
de la aceste moduri de vizualizare l-ar ajuta pe utilizator n luarea deciziilor privind
planificarea timpului disponibil pentru efectuarea activitilor planificate. Aplicaia iar oferi utilizatorului posibilitatea de a vizualiza situaia activitilor planificate pentru
o anumit zi sau pentru o anumit lun calendaristic
Un sistem prin intermediul cruia utilizatorul poate asocia un anumit grad de
importan activitilor ajutandu-l pe acesta s fac o disticie ntre activitile
importante i cele mai puin importante i s i centreze atenia asupra celor
importante.
Asocierea unui context fiecrei activiti
O interfa grafic intuitiv
Conceptul de context care ar putea fi asociat unei activiti poate fi vazut ca un punct de
interest situat pe o hart, pentru implementarea acestui concept va fi integrat un serviciu de
cartografiere ce va fi folosit pentru redarea i nregistrarea punctelor de interes reprezentnd
diferitele contexte asociate activitilor i de care depinde ndeplinirea acestora.
De asemenea aplicaia din discuie va furniza un sistem de notificri n funcie de poziia
geografic a utilizatorului la un moment dat. Astfel n cazul n care utilizatorul se afl la un
moment dat n apropierea unui punct de interes aferent unui context, aplicaia l informa despre
acest aspect prin intermediul unei notificri, informandu-l n acelai timp i despre activitile
care sunt corelate cu punctul de interes respectiv.
Aplicaia din discuie o s-i permit utilizatorului s nregistreze sarcinile respectiv activitile
pe care dorete s le ntreprind. Activitile respective vor fi memorate ntr-o baz de date
stocat local n memoria dispozitivului, astfel utilizatorul nu va trebui s i fac vreun cont
online de client sau s depind de o conexiune la internet pentru a-i accesa datele.
n capitolul urmtor vor fi detaliate conceptele acitvitate, context i principiile n funie de care se
recomand gruparea activitilor din perspectiva unor principii de time management.

Capitolul 3

Studiu bibliografic

n acest capitol vor fi prezentate o serie de concepte i tehnologii revelante pentru domeniul
aplicaiei i de care s-a inut cont n etapa de implementare a proiectului.
Astfel n crile [1] i [2] sunt prezentate concepte i metodologii de time management prin
intermediul crora individul i poate gestiona eficient timpul i astfel s fie mai productiv.
Scopul acestora este cel de a l ajuta pe individ s indentifice activitile importante i
determinandu-l s investeasc timp pentru soluionarea acestora.
n referina [3] este prezentat un argument n favoarea proiectrii aplicaiilor de time
management pentru dispozitve mobile precum smartphone-uri deoarece acestea au un grad mai
mare de disponibilitate fa de unitile de tip desktop, fiind de multe ori mai la ndemna
utilizatorului dect acestea. Acest aspect le ofera utilizatorilor un grad mare de flexibilitate
dndu-le posibilitatea de a avea n orice moment o vedere de ansablu asupra tuturor sarcinilor pe
care trebuie s se le ndeplineasc i de a adauga sarcini noi sau de a efectua actualizri n orice
moment n funcie de necesiti.Astfel pe baza celor descrise in referina [3] s-a ales proiectarea
aplicaiei pentru o platform software pentru smartphone-uri.
n articolul [4] este prezentat un studiu de piat privind cele mai populare sisteme de operare
pentru dispozitive mobile i rspndirea acestora. Concluzia acestui studiu este ca Android este
cel mai rspandit sistem de operare pentru dispozitive mobile, acest rezultat a determinat ca
aplicaia de fa s fie proiectat pentru aceast platform.
n referinele [5] [6] [7] este prezentat platforma Android fiind oferite detalii legate de
sistemul de operare Android, a componetelor acestuia i a mijloacelor prin care se pot dezvolta
aplicaii care s ruleze pe acesta.
n referina [5] sunt prezentate diferitele versiuni de Android i facilitile pe care le ofera
fiecare astfel pe baza celor prezentate s-a decis ca platforma de dezvoltare s fie Android
versiunea 4 Ice Cream Sandwich deorece este o versiune recent, stabil, ce ofer faciliti de
dezvoltare a interfeelor grafice pentru aplicaii.
n referinele [6] si [7] sunt prezentate concepte de care ar trebui s se in cont n proiectarea
i implementarea aplicaiilor pentru Android.
n proiectarea interfeei grafice s-a inut cont de principiile menionate n referina [5] i care
au fost detaliate n seciunea 5.2.1.
n continuare sunt prezentate conceptele de time management pe baza crora a fost proiectat
aplicaia de fa.

3.1 Concepte de time management


n cartea [1] este prezentata o metodologie denumita Getting Things Done (GTD) a crui
rol este cel de a l ajuta pe individ s i gestioneze eficient timpul alocat pentru indeplinirea
diverselor sarcini. La baza metodologiei propus de autorul stau 2 concepte cheie: conceptul de
control i conceptul de perspectiv, metoda fiind menit s i ofere individului o imagine de
ansamblu asupra sarcinilor pe care trebuie s le ndeplineasc i s-l ajute s elaboreze o
succesiune de aciuni ce trebuie ntreprinse pas cu pas pentru ndeplinirea acestora.
n Time Management (Gestionarea timpului) un rol important l are gradul de prioritate
asociat fiecrei sarcini pe care trebuie s o ndeplineasc individul. Metoda descris presupune
efectuarea unei retrospective sptmnal asupra situaiei sarcinilor,ce aparin diverselor nivele
de interest ale individului. Perspectivele obinute n urma restrospectivei ar urma apoi s
9

Capitolul 3
influeneze prioritile individului, i prin urmare ar determina i gradul de prioritate asociat
fiecrei sarcini ce trebuie ndeplinit de ctre individ.
De asemenea, pentru fiecare sarcin ar trebui indentificat contextul de care depinde
ndeplinirea acesteia, iar sarcinile care au acelai context asociat ar trebui grupate ntr-o lista n
funcie de acesta.
GTD este prezentat ca o metod ce se bazeaz pe nregistrarea pe un suport extern a
sarcinilor ce trebuie ndeplinite de ctre individ precum i a elementelor de care depinde
indeplinirea acestora, monitorizarea sarcinilor i obinerea, la nevoie, de informaii legate de
aciunile ce trebuie ntreprinse pentru indeplinirea sarcinilor la un moment dat. Metoda furnizeaz
atfel un surport extern ce l ajut pe individ s i aduc aminte ce aciunit trebuie ntreprinse i
cnd trebuie ntreprinse pentru a i atinge obiectivele, fiind un element complementar sistemului
de antenionare a creierului uman mai puin eficient.
De multe ori se presupune c individul ajunge n impas n procesul de ndeplinire a
sarcinilor datorit unei planificri necorspunztoare a activitilor, de aceea se recomand ca
individul s i planifice n avans activitile ce trebuie executate pentru ndeplinirea sarcinilor.
Acest aspect i-ar uura astfel situaia individului, eliminnd o parte din stressul generat gsirea
unei soluii pe moment.
n cartea [3] sunt prezentate o serie de principii i metode de time management care
aplicate corespunztor l-ar ajuta pe individ s i ndeplineasca n mod eficace sarcinile i s i
ating obiectivele propuse.
Conform celor menionate n lucrarea [3] exist trei categorii sau generaii n funcie de care
pot fi grupate uneltele de time management
1. De prim generaie. Aici intr listele de sarcini, liste n care individul i nregistreaz
toate activitatile pe care dorete s le ntreprind i gruparea acestora n funcie de diverse
criterii.
2. De a doua generaie. Mijloacele din aceasta categorie presupun inerea unei evidene a
activitilor individului n funcie de termenul limita la care acestea ar trebui ndeplinite
(ex calendar, jurnal)
3. De generatia a treia. Mijloacele din aceast categorie au la baz sistemul de valori a
individului, acesta acordndu-le importan activitilor pe care le consider relevante
pentru ndeplinirea obiectivelor importante.
n cadrul crii[3] autorul recomand ca sistemul de valori al individului s fie elementul
principal n funcie de care acesta ar trebui s stabileasc gradul de prioritate sarcinilor pe care
trebuie s le ndeplinseasc, astfel sarcinile care l ajut pe individ s i ating obiectivele
importante ar trebui s li primeasc mai mult atenie, uneori n detrimentul sarcinilor care din
punct de vedere a timpului ar fi considerate urgente dar care nsa nu sunt la fel de importante.
Activitile, sarcinile, obiectivele individului ar trebui ncadrate ntr-un sistem cu 2 axe:
1. axa importanei. Poziia de pe aceast ax arat ct de important este un anumit obiectiv
pentru individ sau ct de important este ndeplinirea unei anumite sarcini pentru individ.
2. axa timpului. Poziia de pe aceast ax arat ct de repede ar trebui ndeplinit un anumit
obiectiv, o anumit sarcin, sau ntreprins o anumit activitate.
Prin intersectarea celor 2 axe se formeaz 4 cadrane:

10

Capitolul 3

Figur 3.1 Matricea de prioriti [3]

Cadranul 1: Aici sunt ncadrate aciunile importante i urgente i care ar trebui s fie
prioritare pentru individ, ndeplinirea acestora avnd prioritate fa de celelalte activiti.
Cadranul 2: Aici sunt ncadrate aciunile importante dar care nu sunt urgente, de obicei
acestea sunt corespunzatoare scopurilor pe termen lung. Aciunile din acesta categorie ar trebui s
fie urmatoarele ca i prioritate dupa cele din cadranul 1.
Cadranul 3: Aici sunt ncadrate aciunile urgente dar neimportante
Cadranul 4: Aici sunt ncadrate aciunile ce nu sunt urgente i care sunt neimportante.
Acest aciuni de multe ori duc la pierderea timpului i care la nevoie ar putea fi omise n favoarea
activitilor din celelalte cadrane.
Aceasta matrice de 2x2 mai este cunoscut informal ca i matricea Eisenhower.

3.2 Produse software de time management existente pentru dispozitive


mobile
La ora actual, pe pia exista o gama variata de aplicaii care se modeleaza pe diferite
aspecte legate de domeniul de time management, n continuare fiind descrise cteva dintre
acestea.
MyLifeOrganized
Conform referintei [8] MyLifeOrganized este o aplicaie care poate fi instalata pe
dispozitivele utilizatorilor i care i ajuta n gestionarea timpul i activitilor. Aceast aplicaie i
ajut pe utilizatori s in o evindent a activitilor pe care vor s le ntreprind.
11

Capitolul 3
Interfaa grafic este intuitiv oferind 2 modaliti de vizualizare:
Primul mod de vizualizare este cel de lista de activitati (task-list) unde sunt afiate
toate activitile care necesit atenia utilizatorului la momentul apelrii, utilizatorul
fiind informat de sarcinile a cror termen limita a expirat recent, care trebuie s se
desfoare n ziua respectiv sau care urmeaz s se desfoare n ziua imediat
urmtoare.
Utilizatorul poate bifa sarcinile pe care le-a ndeplinit i astfel acestea automat dispar din lista de
sarcini, utilizatorului ramnndu-i s se concentreze pe sarcinile rmase.
Al doilea mod de vizualizare este modul de vizualizare ierarhic.n cadrul acestui tip de
vizualizare utilizatorul poate observa toate sarcinile pe care le are de ntreprins sub
forma unei ierahii.
Prin intermediul acestui mod utilizatorul poate s vad:
Dependenele dintre sarcini, relaiile dintre sarcini i sub-sarcini
Gradul de importana a sarcinilor
Un indicator ce arat ct de mult progress a fost fcut n ndeplinirea unei
sarcini
Sarcinile care au fost indeplinie
Aplicaia i permite utilizatorului s defineasc o structura ierarhica de sarcini, astfel
fiecarei sarcini i se pot aduga mai multe sub-sarcini.
Despre fiecare sarcina utilizatorul poate specifica:
Contextul de care depinde ndeplinirea sarcinii respective (ex.acasa, la birou)
Detalii cu ajutorul crora activitile sunt ncadrate n timp (data de nceput, data de
ncheiere)
Exist o serie de indicatori cu ajutorul crora utilizatorul poate specifica ct de important,
respectiv urgent, este o anumit activitate.
Aplicaia i ofer posibilitatea utilizatorului de a fi notificat despre anumite activiti din lista
n funcie de termenul limit a acestora.
Aplicaia este disponibila pentru PC, Iphone, Android i ofer posibilitatea de a sincroniza
coninutul de pe diversele tipuri de aplicaii client prin intermediul unui serviciu de cloud pe baza
de cont de utilizator.

12

Capitolul 3

Figura 3.2 Interfa grafic MyLifeOrganized

Google Calendar
Conform referinei [9] Google calendar este un serviciu online oferit de compania Google
care le pune la dispoziia utilizatorilor o serie de funcionaliti de baz pentru gestionarea
timpului i activitilor.

Figur 3.3 Intefa grafic Google Calendar pentru Android

Spre deosebire de MyLifeOrganized elementul central al interfeei utilizator este


calendarul prin intermediul cruia utilizatorul poate s vad ce activiti are planificate ntr-o
anumita zi.
Serviciul ofer mai multe modaliti de vizualizare a activitilor:
n funcie de zi. Acest mod de vizualizare i informeaz pe utilizatori despre
evenimentele dintr-o anumit zi redndu-le sub forma unei liste, elementele ei fiind
trecute n ordine cronologic
13

Capitolul 3

n funcie de sptmn. Mod de vizualizare ce le permite utilizatorilor s vizualizeze


evenimentele dintr-o anumit sptmn sub forma unui tabel n care coloanele
reprezint zile iar rndurile reprezint ora din intervalul orar al unei zile.
n funcie de lun. Acest mod de vizualizare ia forma unei matrici n care fiecare
csu reprezint o anumit zi din lun, iar n cadrul casuei apare numele
evenimentelor ce au a fost planificate n data respectiv
Mod agend. Acest mod de vizualizare ia forma unei liste de activiti n care apar
toate activitile n ordine cronologic

Utilizatorul i poate defini propria lista de sarcini iar pentru fiecare sarcin utilizatorul poate
defini:
Data limit pn la care trebuie terminat sarcina.
Cteva informaii sub forma de text
De asemenea utilizatorul i poate defini mai multe calendare, fiecare avnd o evindet
proprie de sarcini.
De asemenea utilizatorii pot face schimb de calendare i s vad planificrile altora sau s
adauge activitile altora la propriul calendar.
Toate aceste functionaliti sunt disponibile tuturor utilizatorilor care au cont de Google.
Serviciul poate fi accesat folosind un browser web astfel o conexiune la internet este tot
timpul necesar, exist de asemenea i o aplicaie client pentru Google Calendar disponibila
pentru Android, ns i aceasta necesit cont de utilizare nregistrat la Google. Sincronizarea
datelor ntre aplicaia client de pe Android i serviciul Google se face automat.
ToDoMatrix
Conform referintei [3] ToDoMatrix este o aplicaie de time management dezvoltat de
ctre compania REXWireless software, disponibil pentru BlackBerry i Iphone. Prin facilitile
pe care le ofer aplicaia se modeleaz att pe metodologia de time management Getting Things
Done precum si cea de First Things First.
Similar cu celelate 2 produse menionate anterior aceast aplicaie i d utilizatorului
posibilitatea de a i defini propriile activiti, de a le ncadra n timp, utilizatorul putnd specifica
pentru fiecare activitate durata estimat, data limit pn la care ar trebui ndeplinit precum i
contextul de care depinde ndeplinirea activitii respective.
Spre deosebire de celelalte aplicaii descrise mai sus, prin intermediul aplicaiei
utilizatorul i poate defini propria structur de directoare n funcie de care i poate grupa
activitile. Aplicaia ofer utilizatorului diverse modaliti de vizualizare a activitilor, ntr-o
manier mult mai elaborat dect n produsele menionate anterior. Vizualizarea activitilor se
poate face n funcie de diferite criterii, precum zi, context, activiti care sunt n curs de
desfurare, activiti crora le-a expirat data limit i multe altele. De asemenea sunt oferite
functionaliti de cutare i sortare a activitilor n funcie de diferite criterii.
Printre functionalitile oferite de ToDoMatrix se numr i un sistem de notificri care
s-i aduc aminte de activitile crora ar trebui s le acorde atenie la un moment dat.
Toate datele utilizatorului sunt stocate local n memoria dispozitivului iar interfaa grafic
este uor configurabil fapt ce i permite utilizatoului s stabileasc gradul de complexitate i
volumul de informaie oferit de interfaa grafic a aplicaie.
De asemenea aplicaia mai pune la dispoziia utilizatorului o funcionalitate denumit
quick review wizzard prin intermediul creia utilizatorul i poate face o retrospectiv i s
14

Capitolul 3
obin o imagine de ansamblu asupra situaiei activitilor planificate, imagine care l-ar ajuta s
se organizeze mai eficient n viitor. Acest element nefiing prezent la celelalte aplicaii descrise

Figura 3.4 Interfa grafic ToDoMatrix (iPhone)

.
n urma prezentrii produselor de mai sus se pot deduce urmtoarele:
Google Maps are o funcionalitate redus comparativ cu celelalte 2 produse ns este uor
de folosit iar utilizatorul are tot timpul o imagine de ansamblu asupra activitilor ce sunt
planificare ntr-o luna datorit componentei de calendar.
MyLifeOrganized ofer functionaliti acceptabile, oferind mai multe funcionalitate dect
Google Calendar dei interfata grafic nu este la fel primitore dar are la baz principii
solide de time management inspirate din metodologia Getting Things Done
ToDoMatrix este o soluie foarte apropiat de o solutie complet implementnd att
elemente ce in de motdologia Getting Things Done precum i First Things First ns
interfaa grafic e complex.
Aplicaia ce face subiectul acestei lucrri va fi similara cu MyLifeOrganized implementnd o
mare parte din elementele ce in de metodologia Getting Things Done, ns va fi similar i cu
ToDoMatrix deoarece va avea i elemente din First Things Firstiar la interfaa grafic va avea
o component de calendar similara cu cea din Google Calendar deoarece i ofer utilizatorului o
imagine de ansamblu ntr-o manir intruitiv.
n urmtorul capitol vor fi prezentate principalele cazuri de utilizare la care va rspunde
aplicaia din discuie precum i tehnologiile folosit pentru realizarea acesteia.

15

Capitolul 4

Analiz i fundamentare teoretica

4.1 Tehnologii utilizate


n cele ce urmeaz vor fi detaliate tehnologiile folosite n realizarea proiectului.
Proiectul a fost dezvoltat folosind tehnologii i tool-uri open-source, bine documentate,
larg rspndite i care au n spate comuniti de utilizatori i dezvoltatori preocupai de utilizarea
eficient i dezvoltarea continu a acestora.
Aceasta alegere prezinta urmatoarele avantaje:
Cost redus privind dezvoltarea aplicaiei, nefiind necesar achitarea unor taxe de liceniere
pentru tehnologiile folosite;
Exist support din partea comunitiilor care susin tehnologiile respective cum ar fi
tutoriale, forum-uri de discuii pe diverse tematici (erori, bune practici) i access la
diverse resurse precum librrii specializate.
Aplicaia a fost proiectat pentru dispozitive mobile ce ruleaz sistemul de operare Android
prin urmare, aceasta a fost realizat folosind Android SDK. Mediul de programare ales este
Eclipse IDE. Codul surs a fost scris n limbajul JAVA iar pentru implementarea anumitor
functionaliti ale aplicaiei au fost folosite servicii oferite de Google prin intermediul Google
API.
Detalii legate de tehnologiile utilizate precum i justificarea folosirii acestora n realizarea
aplicaiei vor fi detaliate n cele ce urmeaz.

4.1.1 Android
Android un produs open source creat de Google iar de dezvoltarea sa contiun ocupanduse Open Handset Alliance [6] i const ntr-o colecie de componente software ce cuprinde un
sistem de operare, middleware i aplicaii cheie, destinat dispozitivelor mobile, printre care i
smartphone-uri, cu scopul de a putea folosi eficient resursele acestora n oferirea diverselor
funcionaliti utilizatorilor.
Caracteristici Android
Printre elementele caracteristice ale sistemului Android se numr urmatoarele[6] :
Platform open-source. Android este un produs open source, distribuit sub licena Apache
License versiunea 2 (cu excepia nucleului de Linux care se afl sub licen GPL
versiunea 2), o licena destul de permisiv ce ofera libertatea de a copia, distribuii i
modifica continuul n mod liber fr nici un cost de liceniere, rmnnd la alegerea
dezvoltatorilor dac distribuie sursele modificate sub aceeai licena sau nu. Singurul
element din Android care face excepie de la aceasta regula este nucleul de Linux care se
afla sub licen GPL versiunea 2 ce presupune c orice modificare a surselor trebuie sa fie
fcut public i ditribuit n continuare gratuit sub licenta GPL versiunea 2.
Portabilitatea rulrii pe o gam larg de hardware curente i viitoare. Toate programele
sunt scrise n Java i executate pe maina virtual Dalvik, existnd posibilitatea portrii
16

Capitolul 4
codului pe ARM, x86 i alte arhitecturi. Interfeele utilizator pot fi adaptate la orice
rezoluie pe care o pot avea dispozitivele.
Arhitectur bazat pe comopenete ce permite reutilizarea componentelor n diverse
aplicaii precum i nlocuirea acestora.
Ofera suport pentru grafic 2D i 3D utilizand OpenGL ES 1.0
Posibilitatea de a stoca datele sub forma unor baze de date de tip SQLite.
Suport pentru formate media uzuale audio, video, i imagini (MPEG4, H.264, MP3, AAC,
AMR, JPG, PNG, GIF)
De asemenea Android-ul pune la dispoziia devoltatorilor o serie de unelte utile pentru
dezvoltarea aplicaiilor precum un emulator, unelte pentru debugging, pentru msurarea
performanelor aplicaiilor, i posibilitatea de intregrare cu Eclipse IDE
Android este dezvoltat continuu, fiecare versiune lansat aduce mbuntiri la diverse
componente deja existente precum i elemente i functionaliti noi care sa utilizeze ct mai bine
resursele fizice ale dispozitivelor.
Versiuni
Fiecare versiune de Android lansat reprezint un nivel API (API level) i este un criteriu
important de care trebuie inut cont n procesul de proiectare a aplicaiilor pentru aceast
platform. Astfel, dac o aplicaie este proiectat pentru un nivel API mare corespunzatoare unei
versiuni recente de Android atunci aceasta nu va putea funciona pe dispozitive ce ruleaz
versiuni anterioare iar dac o aplicaie este proiectat pentru un nivel API mic, aceasta va putea
rula pe mai multe dispozitive ce au instalate versiuni superioare de Android ns nu vor beneficia
de toate facilitile oferite de versiunile superioare.[5]
Versiunea 4, precum i versiunile superioare, de Android face disponibile aplicaiilor
pentru smartphone-uri o serie de elemente ce nainte se regseau doar n versiunea 3 (o versiune
destinat strict tabletelor), elemente ce permit realizarea unor interfee grafice flexibile i
performante i care mbuntesc experiena utilizatorului precum i alte elemente care
mbunataesc performana aplicaiilor. Pe baza acestui criteriu s-a ales Android 4.03 Ice Cream
Sandwich corespunzator nivelului API 15 ca i platform int
n tabelul 4.1 sunt enumerate toate versiunile de Android precum i rspndirea n rndul
dispozitivelor ce ruleaz pe aceast platform.

Figur 4.1 Grafic distribuie versiuni Android ( preluat de pe http://developer.android.com)


Tabel 4.1 Versiuni de Android (preluat de pe http://developer.android.com)

Platform

Denumire

API
Level

Rspndire

17

Capitolul 4
1.5
1.6
2.1
2.2
2.3 - 2.3.2
2.3.3 - 2.3.7
3.1
3.2
4.0 - 4.0.2
4.0.3 - 4.0.4

Cupcake
Donut
Eclair
Froyo
Gingerbread

Honeycomb
Ice Cream Sandwich

3
4
7
8
9

0.2%
0.4%
3.7%
14%
0.3%

10

57.2%

12
13
14
15

0.5%
1.6%
0.1%
20.8%

Vedere de ansamblu
Android este structurat, conform figurii 4.2, pe mai multe nivele, fiecare nivel depinznd
de functionalitile oferite de nivelul inferior acestuia.

Figura 4.2 Structura Android

Nucleu de linux (linux kernel)

18

Capitolul 4
La baza arhitecturii Android se afl un nucleu de Linux 2.6 care asigur functionaliti de
baz ale sistemului precum gestionarea sistemului de fiiere, gestionarea proceselor, a memoriei,
a elementelor ce in de reelistic i a driverelor.[6]
Librrii

Al doilea nivel al arhitecturii const ntr-un set de librrii C/C++ ce stau la baza
funcionrii diverselor componente ale sistemului Android.
Printre aceste librarii se numara:
Un subset al librariei standard C (libc) special adaptat pentru dispozitive mobile pe
care ruleaz Linux.
O serie de librrii media ce ofer suport pentru formate audio i video uzuale precum
MPEG4, H.264, MP3, AAC, AMR, JPG i PNG
Suport pentru grafica 2D (funcionaliti oferite de ctre motorul grafic SGL) i 3D
(funcionaliti oferite de libraria OpenGL ES 1.0)
FreeType -o librrie ce asigur redarea fonturilor vectoriale sau de tip bitmap
SQLite-Baza de date cu ajutorul creia se pot stoca datele persistente.
SQLite
SQLite este o bibliotec, scris n ANSI-C, n cadrul creia se gsete implementarea
unui motor de baze de date (database engine) tranzacional, de sine-stttor, care nu necesit
server sau configurri speciale pentru a rula.
n SQLite citirea, respectiv scrierea datelor se face direct pe disk. O baz de date
complet SQL cu mai multe tabele, indexi, triggere i vederi, va fi stocat pe disk sub forma unui
singur fiier. Formatul fiierelor n care este stocat o baza de date SQLite este conceput astfel
ncat s fie cross-platform facilitnd portarea bazei de date ntre sistemele 32-bit i 64-bii sau
ntre arhitecturi big-endian si little-endian.
SQLite este o bibliotec compact. Avnd toate caracteristicile activate, dimensiunea
bibliotecii poate fi mai mic de 350KiB, (depinznd de de platforma int i setrile de
optimizarea compilatorului). n cazul n care funcile opionale sunt omise, dimensiunea
bibliotecii SQLite poate fi mai mic de200KiB.
Astfel SQLite devine motor SQL ideal pentru dispozitive cu memorie limitat, precum telefoane
mobile, PDA-uri, playere MP3.
Proiectul SQLite este administrat de o echip internaional de dezvoltatori care continu
s extind capacitile SQLite cu scopul de a spori spori fiabilitatea i performanele acestuia
meninnd n acelai timp compatibilitate cu interfaa public, sintaxa SQL, baze de date i
formatul de fiier.
Tipurile de date ce pot fi folosite in SQLite sunt TEXT (echivalentul tipului de date String
din Java), INTEGER (echivalentul tipului de date long din Java) i REAL (echivalentul tipului de
date double din Java) nsa nu se face validarea automat a tipurilor de date nainte ca acestea s
fie introduse n baza de date.[10]
n Android se regsete SQLite versiune 3, fiecare baza de date SQLite fiind salvat n
memoria dispozitivului n directorul
DATA/data/NUMELE_APLICATIEI/databases/NUMELE_BAZEI_DE_DATE.
SDK-ul de Android pune la dispoziia devoltatorilor o serie de clase java prin intermediul
crora pot fi acesat SQLite i efectuate diverse operaii asupra bazelor de date. Aceste clase se
regsesc n pachetele android.database i android.database.sqlite
19

Capitolul 4
Din punct de vedere legal SQLite este ncadrat n domeniului public fcnd astfel posibil
utilizarea codulului n orice scop (att comercial ct i privat) fr nici o constrngere din punct
de vedere legal[7].
Android runtime

Android include un set de librrii care susin o mare parte din funcionalitatea pus la
dispoziie de limbajul de programare Java. Mai exact pune la dispoziie un set restrns de
functionaliti oferite de Java SE 1.4 din care au fost excluse elementele ce in de swing i awt.
Elementele .class sunt convertite de systemul Android in fieisere .dex (Dalvik
executable,un tip special de bytecode optimizat pentru a rula pe dispozitive mobile necesitnd
puine resurse i consum mic de energie). Fisierele .dex sunt rulate de ctre maina virtuala
Dalvik. Fiecrei aplicaii fiindu-i alocate o instana a mainii virtuale Dalvik[6]
Application Framework

Acest nivel ofera dezvoltatorilor toate funcionalitile necesare utilizrii resurselor oferite
de sistem precum i dezvoltarea de aplicaii care s le foloseasc. Este organizat pe componente
astfel ncat s permit ca functionalitile unei aplicaii s poat fi utilizate de ctre alte aplicaii
cu condiia de a respecta constrngerile de securitate impuse de framework.
Tot n cadrul acestui nivel al ierarhiei sistemului se pot gasi o serie de servicii i
mecanisme ce stau la baza funcionrii tuturor aplicaiilor precum:
un set bogat de componente UI ce pot fi folosite de ctre dezvoltator n proiectarea
interfeelor grafice pentru aplicaii.
Activity Manager : controleaz ciclul de via al aplicaiilor, modul de comunicare dintre
acestea, precum i navigarea ntre aplicaii.
Resource Manager : controleaz accesul la resursele non-cod, cum ar fi: string-uri,
layout-uri, imagini etc.
Content providers : Aceste componente permit ca datele unei aplicaii s fie folosite de
ctre alte aplicaii
Notification Manager : permite diferite modaliti de notificare a utilizatorilor.
Applications

Ultimul nivel este reprezentat de aplicaiile propriuzise, create de ctre dezvoltatori i care
pot fi folosite de ctre utilizatorii finali.
Androidul vine implicit cu o serie de aplicaii pre-instalate nsa alte aplicaii pot fi
descrcate de pe Android Market sau alte surse online.
O aplicaie const ntr-un fiier .apk (android package) i conine, de obicei, 3
componente [<4>]:
Fisierul executabil Dalvik reprezint codul surs Java compilat pentru a obine
executabilul si care e rulat de masina virtuala Dalvik
Resurse orice nu este cod surs este o resurs. Aplicaia poate s conin imagini,
fiiere audio/video i numeroase fiiere XML care descriu layout-ul, etc.
Librrii native Opional, aplicaia poate contine librrii native, C/C++, care sunt
incluse n fiierul .apk

20

Capitolul 4
Dup cum am menionat mai sus, aplicaiile Android sunt scrise n limbajul de
programare Java. Codul compilat mpreun cu resursele statice (imagini, texte etc.) sunt stocate
cu ajutorul unui instrument numit appt ntr-un pachet Android cu extensia .apk.(android package)
Android este un sistem multi utilizator n care fiecare aplicaie e vazut ca un utilizator (fiecrei
aplicaii fiindu-i atribuit un ID de utilizator unic de ctre sistem), astfel fiecare aplicaie instalat
ruleaza ntr-un proces Linux separat. Fiecare proces are propria ruleaz o instant a mainii
virtuale Dalvik, astfel c aplicaiile Android ruleaz izolat una fa de cealalt. Un alt avantaj al
aplicaiilor Android este acela c o aplicaie poate folosi elemente ce aparin altor aplicaii.
Aplicaiile Android sunt formate din componente slab cuplate, legate printr-un fisier
manifest.xml n care sunt descrise fiecare component i modul n care acestea interacioneaz[6].

Elemente componente
Exist ase componente de baz care care sunt folosite pentru construirea unei aplicaii,
componente ce vor fi discutate individual n paragrafele urmatoare.

Activity
Componentele de tip Activity sunt componentele responsabile cu partea de prezentare a
aplicaiilor Android. Aceste tip de component este responsabil de furnizarea unei interfee
grafice utilizatorului precum i de captarea, respectiv procesarea comenzilor provenite de la
utilizator prin intermediul interfeei grafice.
O aplicaie poate avea n componena ei una sau mai multe componente de tip Activity n
funcie de design, una distre acestea fiind marcat ca i Activitatea principala a aplicaiei,
aceasta fiind primul obiect de tip Activity care va fi lansat n execuie dup pornirea aplicaiei.
Fiecare obiect de tip Activity are un ciclu de viaa compus din mai multe stri. Datele
privind strile diferitelor componente sunt reinute ntr-o structur de date denumit stiv de
activiti (back-stack) i este gestionat de sistem. Aceast structur de date este o structura de tip
FIFO, n capul stivei situndu-se obiectul de tip Activity activ la un moment dat. Cnd utilizatorul
interacioneaz cu un alt obiect de tip Activity,acesta ajunge n capul stivei, benefiind de resursele
sistemului iar obiectul precedent trece la un nivel inferior pe stiv, devenind inactiv i
neconsumnd resurse. Cnd utilizatorul dorete s revin la componenta Activity precedent,
componenta pe care era centrat utilizatorul va fi scoas din stiva i distrus iar componenta
precedent va reveni n capul stivei.
Un obiect de tip Activity se poate afla n una din cele 3 stri:
starea activa. Componenta de tip Activity se afl n prim plan (se situeaza n capul stivei
de activiti) utilizatorul interacionand direct cu aceasta.
stare de ateptare. Componentele aflate in aceasta stare nu interactioneaza cu utilizatorul
insa sunt vizibile acestuia, fiind n continuare ataat manager-ului de ferestre. Toate
datele legate de starea acestor obiecte sunt pstrate n memorie. ns n cazul n care
sistemul are nevoie de resurse acestea vor fi distruse pentru a elibera resurse.
oprit. Componentele aflate n aceast stare nu interacioneaza cu utilizatorul i nici nu
sunt vizibile acestuia. Toate datele legate de starea activitii sunt pstrate n memorie.
ns n cazul n care sistemul are nevoie de mai multe resurse activitile din aceast stare
pot fi distruse pentru a elibera resurse.
Se pot specifica operaiile care s se execute la tranziia dintre diversele stri prin
implementarea unor metode de callback furnizate de clasa Activity i care sunt apelate de sistem
n momentul tranziiei [6]
21

Capitolul 4

Elemente de interfata grafic


View si ViewGroup
Interfeele grafice sunt alctuite dintr-o serie de obiecte de tip View si Viewgroup
organizate sub forma unei structuri ierarhice conform figurii 4.4.
Un obiect de tip View este un obiect care are o reprezentare grafic i cu care utilizatorul
poate interaciona
Un obiect de tip ViewGroup este un obiect ce grupeaza mai multe elemente de tip View si
le poate afia simultan.
Android pune la dispoziie o gam variat de subclase ce extind View i ViewGroup i
care pot fi folosite n construirea interfeelor grafice. De asemenea dezvoltatorii au posibilitatea
de a i creea propriile elemente grafice personalizate extinzand clasele View respectiv
ViewGroup.

Figur 4.3 Structura ierarhic a interfeelor grafica n Android (preluat de pe http://developer.android.com)

Exist un obiect central de tip ViewGroup care ine referine ctre restul elementelor de
tip View sau ViewGroup.
Exist un element de tip ViewGroup cu rol de printe iar fii acestuia pot fi obiecte de tip
View sau chiar ViewGroup, care la rndul lor pot avea fii de tip View sau ViewGroup.
Dimensiunea arborelui poate crete n funcie de cat de complex este proiectat interfea grafic,
nsa este recomandat s se pstreze ct mai simpl posibil deoarece mrimea arborelui afecteaz
performana [5].
Interfaa grafic a unei aplicaii Android poate fi realizat fie programatic din cod fie
definit n cadrul unui fiier XML care este ncrcat de ctre o component de tip Activity

Action Bar
Action Bar sau bara de aciuni este un element vizual introdus n Android versiunea 3.0
(API level 11) cu scopul de a mbunti experiena utilizatorului. Acest element ia forma unei
bare orizontale a crui coninut se schimb n funcie de poziia utilizatorului n cadrul aplicaiei.
Printre facilitile oferite de Action Bar se numr
22

Capitolul 4

informarea vizual a utilizatorului n legatur cu poziia acestuia n cadrul aplicaiei la un


moment dat
pune la dispoziia utilizatorului o serie de opiuni n funcie de poziia acestuia de n
aplicae, opiuni care n versiuni de Android anterioare 3.0, ar fi localizate ntr-un meniu
de opiuni.
Pune la dispoziia utilizatorului diverse modaliti de navigare prin coninutul aplicaiei.
Componenta de tip ActionBar furnizeaz un API prin intermediul cruia pot fi controla
diverse aspecte ale acesteia n cadrul aplicaiei din care face parte .

App widget
O componente de tip App Widget poate fi privit ca o aplicaie n miniatur ce ofer
posibilitatea utilizatorului de a vizualiza sau interaciona cu anumite elemente ce in de coninutul
aplicaie. O astfel de component poate fi folosit de componente de tip App Widget Host printre
care se numr i Home Screen-ul de Android

Fragment
n scopul crerii unor interfee grafice mai dinamica i flexibile, odata cu Android 3.0
(nivel API 11) a fost introdus o nou component denumit Fragment.
Un obiect de tip Fragment poate fi privit ca o copoment ce modeleaz o anumit parte din
comportamentul aplicaiei la nivelul interfeei utilizator oferite de un obiect al clasei Activity,
fiecare Fragment avnd definit propriul comportament fa de interaciunea cu utilizatorul.
Un obiect de tip Activity poate avea n componena interfeei sale grafice mai multe
obiecte de tip Fragment iar un obiect de tip Fragment poate fi proiectat astfel ncat s poat fi
refolosit ca i parte componenta a interfeei grafice n mai multe obiecte de tip Activity.
Un obiect de tip Fragment are propriul ciclul de viaa (a se consulta figura 4.6), similar cu
cel al unui obiect de tip Activity ns acesta e strans legat de ciclul de viaa a obiectului de tip
Activity n care este ncorporat, astfel dac acesta e n starea de ateptare atunci i toate
componentele sale de tip Fragment vor fi n aceeai stare, dac aceasta este distrus atunci i
toate componentele sale de tip Fragment vor fi distruse.
Orice operaii efectuare asupra obiectelor de tip Fragment (adaugare,
tergere,modificare)sunt vzute ca nite tranzacii denumite Fragment Transactions iar fiecare
tranzacie poate fi trecut n stiva de operaii ale Activitii (back-stack) ceea le permite
utilizatorilor s acceseze diferite stri anterioare ale ciclului de viaa ale Fragmentelor.
Un Fragment poate avea propria interfa grafic definit ntr-un fisier .xml. Interfaa
grafic a fragmentului va fi nserat n ierarhia de View-uri ale activitii din care face parte.
Un Fragment poate fi adaugat la interfata grafica a unui obiect de tip Activity fie folosind
tag-ul <fragment> n cadrul fiierului layout.xml al acestuia fie adaugandu-l din cod la un
ViewGroup.
O component de tip Fragment este foarte similar cu una de tip Activity ca i structur,n
cadrul lor regsind aceleai metode onCreate,onStart().onPause(),onStop(), ns au i cteva
metode specifice.
Fragmentele au fost concepute astfel nc s ofere suport n realizarea unor interfee
grafice dinamice i flexibile care pot fi modificate n timpul rulrii, fr a necesita multe
modificri la nivelul ierarhiilor de vederi ale activitiilor
Gestionarea fragmentelor se face cu ajutorul unei entitti denumire FragmenteManager care
permite urmatoarele operaii:
23

Capitolul 4
Gsirea anumitor fragmente pe baza de ID
Gsirea anumitor fragmente pe baz de tag
Executarea operaiilor de tip fragmente Tranzaction
Un avantaj pe care l au fragmentele este cel c pot fi cu usurin adugate, eliminate,
modificate ca rspuns la aciunile utilizatorului.
Aceste aciuni se pot realiza sub forma unor tranzacii prin folosirea api-ului de fragment
transaction
Tranzactiile de tip fragmente tranzaction se pot folosi prin intermediul obiectului de tip
FragmentManager
Servicii
Un serviciu (o component de tip Service) este o component lipsit de interfa grafic i
care execut operaii pe fundal i a crui ciclu de via este independent de cel al altor
componente.
O component de tip Service poate fi pornit de ctre alte component i odata pornit,
serviciul respectiv i execut independent sarcinile pe care le are de fcut, chiar daca
componenta care l-a pornit iniial este distrus.
Un serviciu odat pornit ruleaz n mod implicit n cadrul firului de execuie principal al
aplicaiei, executnd operaiile pe care le are de executat, dupa aceea distrugndu-se.
Serviciile au un ciclu de via, simplificat ce este controlat n cea mai mare parte de ctre
dezvoltator i nu de ctre sistem.

Content provider (furnizor de coninut)


O component de tip Content Provider este un obiect din cadrul unei aplicaii Android care
face ca anumite date, din cadrul aplicaiei,s fie disponibile altor aplicaii.
Datele partajate pot fi: fiiere audio, video,imagini, alte tipuri de fiiere precum i date
stocate ntr-o baza de date SQLite.
Pentru a crea o astfel de component, trebuie extins clasa ContentProvider. Aceast
clas ofer un set de metode pentru expunerea i prelucrarea datelor, similare cu cele utilizate
pentru baze de date. O parte din elementele native ale sistemului Android conin componente de
tip ContentProvider fcnd disponibile altor aplicaii date precum, datele gestionare de managerul de contacte a dispozitivului i altele.
Pentru a putea accesa datele, oferite de un anumit furnizor de coninut, trebuie folosit un
obiect de tip ContentResolver. Un ContentResolver este un obiect client ce furnizeaz operaii
CRUD (create, read, update i delete) asupra datelor oferite de ctre un ContentProvider dintr-o
anumita aplicaie. Toate elementele ce in de comunicarea dintre procese (procesul aplicaiei ce
conine ContentProvider-ul i procesul aplicaiei ce solicit datele) sunt gestionate automat de
ctre sistem.

Receptori de anunuri (Broadcast Receivers)


Un obiect de tip Broadcast Receiver este o component care rspunde la mesaje de tip
broadcast.
Mesajele de tip broadcast pot fi transmise de ctre sistem, pentru a notifica aplicaiile
despre anumite modificari ale parametrilor sistemului (precum nivelul memoriei, bateria
disponibil), sau de ctre aplicaii pentru a notifica alte aplicaii despre anumite evenimente
24

Capitolul 4
precum terminarea descrcrii unui fiier. n funcie de coninutul mesajelor de broadcast
anumite aplicaii pot reaciona la evenimentele anunate.
Pentru a putea implementa o astfel de componenta trebuie extins clasa
BroadcastReceiver iar mesajele de broadcast sunt de obicei obiecte de tip Inten (intenii). Acest
tip de component nu posed o interfa grafic proprie, nsa pot comunica cu utilizatorul prin
trimiterea de notificari ctre bara de stare (satus bar).
Acest sistem de mesaje de broadcast i receptori de broadcast poate fi vazut ca un
mecanism de tip publish-subscribe sau o implementare a ablonului Observer.

Intent (Intenii)
O intenie, sau un obiect de tip Intent, conine informaii despre operaiile pe care ar
trebui s le fac o anumit component destinaie pe un anumit set de date. Cu ajutorul obiectelor
de tip Intent este posibil comunicarea, n timpul rulrii, cu diverse componente aflate fie n
interiorul aceleiai aplicaii fie sunt localizate n alte aplicaii. Printre componentele ce pot fi
activate prin intermediul obiectelor de tip Intent se numar obiecte de tip Activity, Service i
BroadcastReceiver.
Exist 2 tipuri principale de intenii:intenii implicite i intenii explicite.
In cadrul inteniilor explicite este specificat obiectul distinaie care s realizeze
prelucrrile cerute (fie ca e de tip Activity, Service sau BroadcastReceiver).
In cazul inteniilor explicite, rmane pe seama sistemului sarcina de a selecta
aplicaia corespunzatoare care s raspund la solicitatea din cadrul Intent-ului.Elementele
din Intent care sunt analizate sunt cele din categoriile action, data, i category. In acest
caz sistemul ine cont de filtrele de intenie declarate n fiierul manifest a fiecarei
aplicaii. Un filtru de intenii (intent filter)specifica tipul de intenii pe care le poate
prelucra o anumita aplicaie.

Fisierul manifest Android


Fiecare proiect Android include un fiier xml denumit AndroidManifest.xml, stocat n
directorul rdcin al proiectului. In acest fiier sunt descrise componentele folosite n aplicaie i
alte informaii referitoare la permisiuni sau librrii ce trebuie legate de aplicaia curent. Se poate
defini versiunea de Android folosit de aplicaie, resursele i drepturile de care are nevoie
aplicaia pentru a putea rula. Structura acestui fiier impune prezena unui tag rdacin
<manifest> urmat de tag-ul <application> n interiorul cruia vor fi descrise componentele care
alctuiesc aplicaia.

Procese si fire de executie in Android


Atunci cnd e necesar pornirea unei aplicaii, sau a unei anumite componente dintr-o
aplicaie Android pornete automat un nou proces Linux cu un singur fir de execuie pentru
componenta respectiv. Acest proces este cunoscut i sub numele procesul principal (procesul
main) al aplicaiei. n cazul n care a fost pornit un proces pentru o component aparinnd unei
aplicaii anume, atunci orice cerere ulterioar de a rula alte componente apartinnd aceleai
aplicaii vor fi executate n acelai process nefiind creat unul nou.

Procese
25

Capitolul 4
Android ncearc s menin procesele n stare de funcionare pe ct de mult posibil,
acestea fiind oprite doar n cazul n care sistemul are nevoie s recupereze resurse pentru a
executa operaiile importante, ns n cazul n care sistemul are nevoie de resurse, vor fi oprite
procesele mai puin importante n favoarea celor importante
In funcie de importana acestora exista 5 tipuri de procese
Procese de tip foreground. Acest nivel de importa este asociat proceselor n care ruleaz
componentele ce se afl n prim plan i cu care utilizatorul interacioneaz direct la un
moment dat.Exista un numar mic de astfel de procese la un moment dat i sunt oprite doar
n ultim instan atunci cnd starea resurselor e critic.
Procese vizibile.Acest tip de procese gzduiesc componente care nu sunt n prim plan dar
care ns sunt vizibile pentru utilizator.
Procese de tip service. Acest tip de procese conin componente de tip Service care ruleaza
n fundal efectund diverse operaii
Procese de fundal. Acest tip de procese conin componente care nu mai sunt vizibile
utilizatorului. La un moment dat pot exista multe astfel de procese, evidena acestora fiind
pstrat ntr-o lista ordonat n funcie de ct de recent au fost accesate componentele
acestora. Astfel c un proces ce conine un obiect de tip Activity care a fost folosit recent
va fi oprit ultimul process de tip background oprit n cazul n care sistemul are nevoie s
recupereze resurse.E indicat s fie implementate corect metodele de callback ce in de
ciclul de viaa din cadrul fiecrei componente, pentru a preveni o eventual pierdere a
datelor n cazul n care procesul acestora este oprit.
Procese goale. Acest tip de procese nu conin nicio componenta activ, avnd doar rol de
caching. Rolul lor fiind cel de a mbunti timpul de lansare a unei noi component far a
carea un nou proces.
Importana unui proces este de dat de gradul de importan a componentelor ce ruleaz n
acesta.
Importana proceselor mai este data i de interdependena dintre ele. Astfel c dac, de un
anumit proces depinde un alt proces cu un grad rididat de importan atunci procesului respectiv i
se va asocia cel puin acelai grad de importan.

Fire de executie
Implicit fiecrei aplicaii i este asociat un singur fir de executie cunoscut ca i firul
principal de execuie (main thread). Toate instanierile de obiecte respectiv prelucrri de date sunt
executate pe acest fir de execuie. Tot n cadrul acestui fir de execuie au lor operaiile ce vizeaz
interaciunile dintre elementele de Android UI toolkit (components ce apartin
pachetelor android.widget si android.view i aplicaia propriu-zis, de aceea acest fir de execuie
mai este supranumit i UI thread.
Exist o problem n acest cazul operaiilor solicitante deoarece ar afecta performana
aplicaiei i ar putea duce la blocarea ei.
In cazul operaiilor mai complicate se poate implementa un obiect de tip Handler care
apoi s fie asociat unui nou fir de execuie sau se pot folosi obiecte de tip AsyncTask.

Asynctask
Obiecte de tip AsyncTask pot fi folosite pentru a efectua prelucrri asincrone asupra
obiectelor apartinnd interfeei grafice. Operaiile sunt executate n cadrul unor fire de execuie
26

Capitolul 4
care ruleaz pe fundal iar rezultatul operaiilor este publicat n elementele corespunzatoare situate
n UI Thread.
Pentru a folosi un astfel de obiect trebuie extins clasa AsyncTask i implementat metoda
doInBackground(). Operaiile specificate n aceasta metod vor fi executate n cadrul unor fire de
execuie ce ruleaz n fundal.

Loader(incarcator)
Un obiect de tip Loader este un obiect ce faciliteaz ncrcarea asincrona a datelor n
cadrul unui obiect de tip Activity sau Fragment.
Acest tip de obiect este disponibil odata cu versiune 3.0 de Android i este special
conceptul pentru obiecte de tip Activity i Fragment pentru a putea ncarca date din diverse surse
de date n mod asincron fr ca aceast operaie s fie executate pe UI thread i afecteze
performana aplicaiei.
Un obiect de tip Loader odat creat monitorizeaz sursa de date actualiznd automat
interfaa grafic n cazul modificrii datelor.

4.1.2 Google Maps


Google Maps este un serviciu web de cartografiere oferit de Google Inc, uor de folosit i
care ofer multe faciliti printre care se numr :
Diverse modaliti de vizualizare a zonelor de interes:Imagini satelitare, Street View
Ofer informaii legate de diverse puncte de interes de natura economic, turistic, etc.
specifice unei anumite zone geografice.
Posibilitatea de a genera un traseu ntre 2 puncte de interes pentru utilizator i de a oferi
indicaii acestuia de cum s-l parcurg.
Interfa grafic intutiv.

4.2 Tool-uri folosite


4.2.1 Eclipse IDE
Eclipse este un mediu de dezvoltare software scris n Java care poate fi folosit pentru
dezvoltarea aplicaiilor software n diverse limbaje de programare, printre care se numr i Java.
Eclipse este structurat sub forma unei ierarhii de plugin-uri ce asigur diferite
funcionaliti. Aceste funcionaliti fiind asigurate fie de ctre plugin-uri individuale sau de
ctre combinaii de plugin-uri, fiecare plugin fiind activat n mod dinamic doar n momentul n
care funcionalitatea respectiv este apelat.
Infrastructura de baz din Eclipse este asigurat de catre plugin-urile furnizate de Eclipse
RCP(a se consulta tabelul 4.2).
Tabel 4.1 Structura pluging-urile Eclipse RPC

Platform Runtime

Resource

Component, implementat folosind framework-ul OSGi, responsabil de


descoperirea dinamic a plugin-urilor i meninerea unei evidene a acestora
n registul platformei. Asigur c plugin-urile sunt ncrcate i lansate n
execuie atunci cnd e nevoie de ele.
Component ce definete API-urile necesare crerii repsectiv gestionrii
27

Capitolul 4
management
(workspace)
Eclipse UI
Workbench

Help system
Team support
Debug support

Other utilities

resurselor (precum proiecte, fiiere i directoare) care sunt produse de ctre


tool-uri i salvate n sistemul de fiiere.
Asigur interfaa grafic prin intermediul creia utilizatorul poate accesa
functionalitile oferile de tool-urile instalate, punnd la dispoziia acestuia
diverse modaliti de vizualizare, meniuri i alte elemente prin intermediul
crora utilizatorul poate manipula diverse resurse.
Component ce permite vizualizarea documentaiilor oferite de plugin-uri
Component ce faciliteaz lucrul n echip n cadrul proiectelor, oferind
functionaliti precum gestionarea i versionarea resurselor
Component ce pune la dispoziie un model de debugger independent de
limbaj precum i diverse clase cu ajutorul crora se pot proiecta tool-uri de
debugging.
Alte tipuri de plugin-uri care opereaza asupra resurselor, precum execuia
operaiilor de build n funcie de specificaiile menionate ntr-un fiier de
configurare XML.

De asemenea este posibil extinderea functionalitilor oferite de Eclipse prin adaugarea


de noi pluginuri.
In prezent exist mai multe versiuni de Eclipse iar pentru realizarea proiectului a fost
folosit Eclipse 3.6 Helios deoarece este versiunea minim compatibil cu plugin-ul de ADT
(detaliat in seciunea 4.1.3.3)

4.2.2 Android SDK


Android SDK reprezint pachetul de componente software i unelte cu ajutorul crora se
pot dezvolta aplicaii pentru dispozitive mobile ce ruleaz pe Android.
SDK-ul de Android este compus dintr-o colecie modular de pachete care pot fi descrcate
separat prin intermediul componentei SDK manager.
n tabelul 4.2 sunt menionate pachetele importante.

Tabel 4.2 Componente din Android SDK

Pachet

Descriere

Localizare n cadrul SDK-ului

SDK Tools

Cuprinde unelte necesare depanrii


i testrii aplicaiilor alturi de alte
utilitare necesare dezvoltrii
aplicaiilor.

<sdk>/tools/

SDK Platform-tools

Conine unelte specifice anumitor


platforme de Android necesare
proiectrii respectiv depanrii
aplicaiilor specifice platformei
respective.

<sdk>/platform-tools/

Documentation

O copie offline actualizat a


documentaiei API-urilor diverselor
platforme de Android.

<sdk>/docs/

28

Capitolul 4
SDK Platform

Exist o platfoma SDK pentru


fiecare versiune de Android lansat,
care poate fi alesa ca i platforma
int pentru aplicaii

<sdk>/platforms/<androi
d-version>/

System Images

Fiecare platform ofer una sau mai


multe imagini sistem pentru (ARM
sau x86). Aceste imagini sistem sunt
necesare emulatorului de Android
pentru a putea rula.

<sdk>/platforms/<androi
d-version>/

Sources for Android


SDK

O copie a codului surs pentru


componentele diverselor platforme
de Android.

<sdk>/sources/

Samples for SDK

Exemple care ilustreaz


funcionalittile diverselor API-uri
de Android

<sdk>/platforms/<androi
d-version>/samples/

Google APIs

Pachet special ce permite unei


aplicaii s apeleze servicile oferite
de Google prin intermediul Google
API. Ofer i o imagine system cu
ajutorul creia pot fi testate ce
folosesc Google API

<sdk>/add-ons/

Android Support

Librrie suport care poate fi inclus


n aplicaii pentru a putea oferi
acestora functionaliti disponibile
unui nivel API superior n cazul n
care acestea trebuie s ruleze pe o
versiune de Android.

<sdk>/extras/android/su
pport/

Google Play Billing

Librrie static care permite


integrarea unui serviciu de taxare n
aplicaii cu google Play

<sdk>/extras/google/

Google Play
Licensing

Librrie ce ofer functionaliti de


verificare a licenelor pentru
aplicaii atunci cnd acestea sunt
distribuite prin intermediul
serviciului Google Play

<sdk>/extras/google/

4.2.3 ADT (Android Development Tool)


SDK-ul de Android poate fi integrat cu mediul de dezvoltare Eclipse prin intermediul unui
plugin denumit Android Development Tool.
ADT este un tip special de plugin conceput pentru Eclipse menit sa faciliteze devolzarea
aplicaiilor destinate pentru Android. Acesta extinde capabilitile IDE-ului oferind posibiliti
29

Capitolul 4
precum crearea de proiecte, proiectarea de interfee grafice, compilare i generare de APK-uri ,
instalarea aplicaiilor pe dispozitive sau pe emulator.
Acest tool ofer o serie de perspective prin intermediul crora devoltatorii pot, n mod
vizual accesa diverse tool-uri oferite de SDK , monitoriza resurse, seta i controla instane ale
emulatorului, depana i testa aplicaii.

4.2.4 Google APIs Add-On


Google API add-on este o extensie a SDK-ului de Android ce ofer dezvoltatorilor
posibilitatea de a integra n aplicaiile lor servicii oferite de Google.
In cadrul acestui add-on este inclus o librrie pentru GoogleMaps i alte componente
necesare accesrii serviciilor oferite de Google.
Acest Add-on cuprinde i o imagine sistem cu librriile necesare rulrii,testrii i
depanrii aplicaiilor cu ajutorul Emulatorului.
Pachetul Google APIs add-on cuprinde:
Librria extern pentru GoogleMaps
Libraria USB Open Accessory (compatibila doar cu API Levels 10 i 12+)
Imagine sistem Android (cu diverse componente sistem integrate)
Aplicaie demo n care e folosit librria GoogleMaps denumit MapsDemo
Documentaia aferent librriei pentru GoogleMaps.

4.3 Cerinele aplicaiei


4.3.1 Caracteristici funcionale
Conform principiilor menionate n seciunea 3.1 reiese c , pentru ca aplicaia s
satisfac cerinele unui tool de time management ar trebui s ofere o serie de funcionalitti
specifice care s se modeleze pe domeniul respectiv.Aceste funcionaliti vor fi detaliate n cele
ce urmeaz
Pentru nceput sa luam n considerare urmtorul scenariu:
S presupunem c un utilizator are o lista de sarcini sau activiti pe care trebuie sa le
ndeplinesc ntr-un timp dat.Fiecare activitate poate avea o anumita semnificaie pentru un
anumit utilizator n funcie de obiectivul pe care acesta l poate atinge utilizatorul respectiv prin
svrirea activitii respective, contextul asociat activitii respective[CF-1], precum i alte
criterii ce in de preferinele utilizatorului.
Activitile pot fi de sine stttoare sau pot fi grupate n funcie de diferite criterii ale
utilizatorului[CF-2]. Unele activiti au un grand de importan mai mare fa de altele din
perspectiva utilizatorului[CF-3] astfel acesta le va acorda atentie i timp i apoi se va ocupa de
cele mai puin importante.
Pentru a i planifica eficient timpul, utilizatorii ncearc s ina o evidena a tuturor
activitilor[CF- 4], evenimentelor, i uneori apeleaza la o reprezentare vizuala a acestora,
folosind diverse tehnici i intrumente pentru le fi mai uor de urmrit fluxul de activiti[CF-5].
De asemenea utilizatorul are nevoie elemente care s-l anune cnd trebuie s ntreprind
o anumit activitate.[ CF-6]
n tabelul 4.3 sunt menionate principalele caracteristici funcionale ce reies din scenariul
descris mai sus.
30

Capitolul 4
Table 4.3 Cerine funcionale

Identificator
CF-1

Descriere
Specificarea contextului
activitii (timp, loc, durata,
descriere)
Gruparea activitilor
Atribuirea unui grand de
importan activitilor
Stocarea activitilor
Reprezentare grafic a
fluxului de activiti
Mecanism de notificare a
activitilor

CF-2
CF-3
CF-4
CF-5
CF-6

4.3.2 Caracteristici non-funcionale


Pentru ca aplicaia s poat nofica utilizatorul despre diversele evenimente aceasta ar
trebui sincronizat cu ceasul sistemului [CNF-1].
Aplicaia ar trebui sa fie mprit pe mai multe module pentru a permite separarea
diverselor fucntionalitati si pentru a permite scalabilitatea si extinderea aplicatiei [CNF-2].
Un alt aspect de care ar trebui s se in cont ar fi folosirea mai multor fire de execuie
pentru execuia operaiilor, n caz contrar totul s-ar executa pe firul de execuie principal al
aplicaiei aa cum a fost menionat n seciunea 4.1.1.3, lucru ce ar afecta performana aplicaiei
per ansamblu precum i exeperiena utilizatorului[CNF-3].
Tabel 4.4 Caracteristici non-funcionale

identificator
CNF-1
CNF-2
CNF-3

Descriere
Sincrionizarea cu ceasul sistemului
mprire pe module
Utilizarea mai multor fire de execuie pentru efectuarea
operaiilor

4.3.3 Specificaii Dispozitiv


Dispozitivul mobil, pe care ar urma s ruleze aplicaia, ar trebui sa respecte o serie de
cerine hardware.
Un astfel de dispozitiv ar trebui s dispun de un modul de GPS pentru a putea obtine
pozitia utilizatorului la un moment dat[CD-1].
Pentru a putea stoca activitatile utilizatorului, dispozitivul ar trebui s dispuna de o baza
de date integrat sau s permita operaii de CRUD asupra unor fisiere la nivel local[CD-2].
Sistemul de operare care va rula pe dispozitiv va fi Android versiunea 4.03. Asa cum a
fost menionat n sectiunea 4.1.1.2 Android dispune de SQLite care ar satisface cerina de stocare
a datelor menionat mai sus ns introduce o costrngere suplimentar i anume dispozitivul
respectiv ar trebui sa fie un smartphone bazat pe arhitectura ARM sau x86 capabil s ruleze
Android 4.03 Ice Cream Sandwich [CD-3].
31

Capitolul 4
Tabel 4.5 Speficaii despozitiv

Identificator
CD-1
CD-2

Descriere
GPS
Modalitate de stocare a informaiei la nivel local (baz de
date sau fiiere)
Dispozitiv bazat pe arhitectura ARM sau x86 capabil s
ruleze Android 4.03 Ice Cream Sandwitch

CD-3

4.3.4 Factorul uman


Pentru ca aplicaia s fie util utilizatorului, aceasta ar trebui s fie uor de utilizat de ctre
acesta, nefiind nevoie de un numr prea mare de pai pentru accesarea diverselor functionalitati
[UF-1], iar informaia s fie prezentat utilizatorului ntr-o manier uor de neles.
Interfaa unei astfel de aplicaii ar trebui s atrag utilizatorul, s fie intuitiv i usor de
folosit [UF-2].
Tabel 4.6 Caracteristici non-functionale ce tin de factorul uman

identificator
REQ-UF-1
REQ-UF-2

Descriere
Numar mic de pasi pentru accesarea functionalitatilor
Interfata placuta si intuitiva

4.4 Cazuri de utilizare


Cazurile de utilizare vor fi redate prin intermediul diagramelor use-case specifice
standardului UML 1.x
Din cele menionate n sectiunea 4.2.1 reiese c aplicaia are trebui s i permit utilizatorului
s efectueze operaii de tip CRUD asupra activitilor i de asemenea s i pun la dispoziie o
serie de mijloace prin care:
S prioritizeze activiti
S grupeze activiti
S i ofere diferite mijloace de vizualizare care s l ajute n luarea anumitor decizii
privind activitile crora ar trebui s le ofere atenie.
Cazurile de utilizare identificate pentru aplicaia din discuie sunt urmatoarele:
1. Adaugarea unei noi acitivi la lista de activiti din memorie
2. Editarea unei activiti deja existente
3. tergerea unei activiti deja existente
4. Vizualizarea activitilor n funcie de zi
5. Vizualizarea zilelor din lun n care sunt planificare activiti
6. Vizualizarea matricei Eisenhower pentru activiti
7. Vizualizeaza activitilor asociate unei anumite etichete
8. Adaugarea unei noi etichete la lista de etichete deja existente n memorie
9. Editarea unei etichete deja existente
10. tergerea unei etichete deja existente
11. Adaugarea unui nou obiectiv pe hart la lista de obiective deja existente n memorie
12. Editarea unui obiectiv deja existent
32

Capitolul 4
13. tergerea unui obiectiv deja existent
14. Asocierea unui obiectiv de pe hart cu contextul unei activiti planificate de utilizator
15. Vizualizarea hrii de obiective
16. Notificarea utilizatorului n momentul n care acesta se afl n apropierea unui obiectiv.

Figura 4.4

Diagrama cazurilor de utilizare

Titlu: Adaugarea unei noi activiti (Cazul de utilizare 1)


Descriere:
Permite utilizatorului s adauge o nou activitate la lista de activiti deja existente n
memorie.
Actor: utilizatorul final.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul trebuie s se afle n unul din urmatoarele moduri de vizualizare:
Viziualizare activiti n funcie de zi
Vizualizate zile din lun
Vizualizare activiti n funcie de etichet
Modul de vizualizare principal
Pai:
1. Utilizatorul alege optiunea add new event din meniul de opiuni
2. Aplicaia afieaz modul de vizualizare corespunzator adaugrii unei noi activiti.
3. Utilizatorul specific informaiile legate de activitate
Denumire
Alege o etichet din lista de etichete deja existente. Include (vizualizare
etichete)
33

Capitolul 4

Alege un obiectiv din lista de obiective deja existente reprezentnd contextul


de care depinde indeplinirea aplicaiei. Include (vizualizare listei de obiective)
Atribuire grad de importan din cele puse la dizpoziie de aplicaie . Include
(vizualizare prioritate)
Specificare dat.
Notie
Status prin alegerea unei opiuni din cele puse la dispoziie de aplicaie .
Include (vizualizare status)
i apas butonul save
4. Aplicaia creaz o nou activitate cu datele definite i o salveaz n memorie.

Figura 4.5 Diagrama use case pentru adaugarea unuei noi activitati

Titlu: Vizualizare prioritate (Cazul de utilizare 1.1)


Descriere:
Aplicaia pune la dispoziia utilizatorului colecia de grade de prioritate stocate n
memorie i care pot fi folosite de ctre utilizator pentru specificarea importanei unei
activiti.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul trebuie s se afle n modul de vizualizare corespunztor adugrii
unei noi activiti.
Pai:
1. Aplicaia ncarc din memorie colecia de elemente semnificnd gradele de
prioritate ce pot fi asociate activitilor
2. Aplicaia pune la dispoziia utilizatorului datele ncrcate de la pasul anterior.
Titlu: Vizualizare etichet (Cazul de utilizare 1.2)
Descriere:
Aplicaia pune la dispoziia utilizatorului colecia de etichete stocate n memorie i
care pot fi folosite de ctre utilizator pentru a eticheta activiti.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Uitilizatorul trebuie s se afle n unul din urmatoarele moduri de vizualizare:
Adugarea unui nou evenimente
Vizualizarea activitilor n funcie de etichet.
34

Capitolul 4
Pai:
1. Aplicaia ncarc colecia de etichete stocate n memorie.
2. Aplicaia pune la dispoziia utilizatorului datele ncrcate de la pasul anterior.
Descriere:
Aplicaia pune la dispoziia utilizatorului colecia de etichete stocate n memorie i
care pot fi folosite de ctre utilizator pentru a eticheta activiti.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Uitilizatorul trebuie s se afle n unul din urmatoarele moduri de vizualizare:
Adugarea unui nou evenimente
Vizualizarea activitilor n funcie de etichet.
Pai:
1. Aplicaia ncarc colecia de etichete stocate n memorie.
2. Aplicaia pune la dispoziia utilizatorului datele ncrcate de la pasul anterior.
Titlu: Vizualizare obiective (Cazul de utilizare 1.3)
Descriere:
Aplicaia pune la dispoziia utilizatorului o colecie de elemente semnificnd
obiectivele ce pot fi asociate contextului activitii.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul trebuie s se afle n modul de vizualizare corespunztor adugarii
unei noi activiti
Pai:
1. Aplicaia ncarc din memorie colecia de elemente semnificnd obiectivele de
pe hart ce pot fi asociate contextului activitii definite de utilizator.
2. Aplicaia pune la dispoziia utilizatorului datele ncrcate de la pasul anterior.
Titlu: Vizualizare listei de activiti pentru o anumit zi (Cazul de utilizare 4)
Descriere:
Vizualizarea de ctre utilizator a tuturor activitilor planificate i nregistrate de
aplicaie, care ar trebui s se desfoare la o anumit dat specificat.
Actor: utilizatorul final.
Precondiii:
1. Aplicaia trebuie s fie pornit
Pai:
1. Utilizatorul navigheaz ctre modul de vizualizare principal
2. Aplicaia ncarc din memorie activitile planificate pentru data curent.
3. Aplicaia lanseaz modul de vizualizare principal i afiseaz o lista cu toate
activitile ncrcate la pasul anterior, pentru fiecare eveniment sunt afiate
informaii precum:
Titlu
Ora
Eticheta
Status
Gradul de importan asociat
Extension
a. Utilizatorul dorete s vad activitile planificate pentru ziua precedent.
Precondiii:
35

Capitolul 4
1. Aplicaia trebuie s fie pornit
2. Utilizatorul trebuie s se afle n modul de vizualizare a activitilor n funcie
de zi
Pai:
1a. utilizatorul apas butonul corespunztor opiunii de afiare a activitilor ce au
loc n ziua precedent datei curente.
2a. Sistemul calculeaz noua dat
3a. Sistemul ncarc colecia de evenimente din memorie planificate pentru data
calculat la pasul anterior i o afieaz utilizatorului.
b. Utilizatorul dorete s vad evenimentele planificate pentru ziua urmtoare
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul trebuie s se afle n modu de vizualizare a activitilor n funcie
de zi
Pai:
1b. utilizatorul apas butonul corespunztor opiunii de afiare a activitilor ce au loc n
ziua urmtoare datei curente.
2b. Sistemul calculeaza noua dat.
3b. Sistemul ncarc colecia de evenimente stocate n memorie i care sunt planificate
pentru data calculat la pasul anterior i o afieaz utilizatorului.
c. Utilizatorul dorete s vad evenimentele planificate pentru o anumit zi din lun
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul trebuie s se afle n modul de vizualizare a zilelor din lun n care
au fost planificate activiti.
Pai:
1c. Utilizatorul d click pe ziua din lun pentru care dorete s vad activitile planificate.
2c. Sistemul calculeaza noua dat.
3c. Sistemul ncarc colecia de evenimente stocate n memorie i care sunt planificate
pentru data calculat la pasul anterior i o afieaz utilizatorului.

Figura 4.6 Diagrama use-case pentru afisarea evenimentelor in functie de zi

Titlu: Vizualizarea activitilor n funcie de etichete (Cazul de utilizare 7)


Descriere:
36

Capitolul 4
Vizualizarea de ctre utilizator a tuturor activitilor care au o anumit etichet
Actor: utilizatorul final.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul se afl n modul principal de vizualizare
Pai:
1. Utilizatorul apas butonul manage events
2. Aplicaia afieaz modul de vizualizare corespunztor
3. Aplicaia afieaz toate etichetele stocate n memorie. Include (vizualizare
etichet)
4. Utilizatorul alege o etichet.
5. Aplicaia ncarc activitile din memorie care sunt etichetate cu eticheta de la
pasul anterior.
6. Pentru fiecare activitate sunt afiate informaii precum
Titlu
Ora
Eticheta
Status
Gradul de importan asociat
Titlu: Vizualizare zilelor din luna n care sunt planificate activiti (Cazul de utilizare 5)
Descriere:
Vizualizarea de ctre utilizator a zilelor dintr-o anumit lun, n care sunt
planificate activiti.
Actor: utilizatorul final.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul se afla in modul principal de vizualizare
Pai:
1. Utilizatorul alege opiunea detailed view
2. Aplicaia lanseaz modul de vizualizare corespunztor, afind toate zilele din
luna curent i marcnd cu o anumit culoare zilele n care sunt planificate
activiti (culoarea fiind aleas n funcie de cea mai important activitate ce
are loc n ziua respectiv)
Extension
a. Utilizatorul dorete s vad zilele din luna precendent n care sunt planificate activiti.
Precondiii:
1. Aplicaia trebuie s fie pronit
2. Utilizatorul se afl n modul de vizualize detailed view.
Pai:
1a. Utilizatorul apas butonul corespunztor afirii zilelor din luna anterioar lunii
curente.
2a. Aplicaia calculeaz noua dat calendaristic.
3a. Aplicaia ncarc activitile din baza de date planificate pentru luna calculat la pasul
anterior.
4a. Aplicaia actualizeaz interfaa grafic afisnd zilele din luna precedent i marcndule corespunztor pe cele care au activiti planificate.
37

Capitolul 4
b.Utilizatorul dorete s vad zilele din luna urmtoare n care sunt planificate activiti.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul se afl n modul de vizualize detailed view.
Pai:
1b. Utilizatorul apas butonul corespunztor afirii zilelor din luna urmtoare
lunii curente.
2b. Aplicaia calculeaz noua dat calendaristic.
3b. Aplicaia ncarc activitile din baza de date planificate pentru luna calculat
la pasul anterior.
4b. Aplicaia actualizeaz interfaa grafic afisnd zilele din luna precedent i
marcndu-le corespunztor pe cele care au activiti planificate.
Titlu: Vizualizare hrii cu obiective (Cazul de utilizare 15)
Descriere:
Vizualizarea de ctre utilizator a unei hri pe care sunt marcate puncte de interes
relevante pentru activitile planificate
Actor: utilizatorul final.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul se afla in modul principal de vizualizare
Pai:
1. Utilizatorul alege opiunea go to map.
2. Aplicaia lanseaz modul de vizualizare corespunztor
3. Aplicaia ncarc din memorie punctele de interes asociate activitilor
4. Aplicaia afiseaz o hart pe care sunt evideniate punctele de interes ncrcate
la punctul anterior.
5. Utilizatorul d click pe un punct de interes
6. Aplicaia afieaz adresa asociata cu punctul respectiv precum i numarul de
activiti asociate acelui punct.
Titlu: Vizualizare Matricea EisenHower pentru activiti (Cazul de utilizare 6)
Descriere:
Permite utilizatorului s vizualizeze matricea Eisenhower pentru diverse activiti
deja existente
Actor: utilizatorul final.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Utilizatorul trebuie s fie situat n unul din urmtoarele moduri de vizualizare:
Vizualizare evenimente in functie de zi
Vizualizare zile din lun
Vizualizare evenimente n funcie de etichet
Pai:
1. Utilizatorul alege opiunea view Eisenhower din meniul de opiuni
2. Aplicaia afieaz modul de vizualizare corespunztor populndu-l cu
activitile din memorie
3. Utilizatorul specific gradul de prioritate dorit
4. Aplicaia afieaz sub forma unei liste toate activitile ce au asociatate
gradului de prioritate respectiv
38

Capitolul 4
Extension
a. Utilizatorul dorete s vizualizeze matricea Eisenhower pentru activitile
planificate ntr-o anumit zi.
Preconditii:
1. Utilizatorul se afl n modul de vizualizare evenimente n funcie de zi
Pai:
2aa. Aplicaia ncarc activitile din memorie planificate pentru ziua respectiv.
2ab. Aplicaia afieaz modul de vizualizare corespunztor populandu-l cu
activitile de la pasul anterior.
b. Utilizatorul dorete s vizualizeze matricea Eisenhower pentru activitile
planificate ntr-o anumit lun.
Precondiii:
1. Utilizatorul se afl n modul de vizualizare a zilelor din lun n care au fost
planificate evenimente.
Pai:
2ba. Aplicaia ncarc activitile din memorie planificate pentru luna respectiv.
2bb. Aplicaia afieaz modul de vizualizare corespunzator populndu-l cu
activitile de la pasul anterior.
c. Utilizatorul dorete s vizualizeze matricea Eisenhower pentru evenimentele
asociate unei anumite etichete.
Precondiii:
1. Utilizatorul se afl n modul de vizualizare a activitilor n funcie de etichet/
Pai:
2ca. Aplicaia ncarc activitile din memorie ce prezint o anumit etichet.
2cb. Aplicaia afieaz modul de vizualizare corespunzator populndu-l cu
activitile de la pasul anterior.
Titlu: Noficarea utilizatorului cnd aceste se afl n apropierea unui obiectiv. (Cazul de utilizare
16)
Descriere:
Utilizatorul primete o notificare n momentul n care acesta se afl n apropierea
unui punct de itneres asociat contextului unei activiti planificate n ziua respectiv.
Actor: utilizatorul final.
Precondiii:
1. Aplicaia trebuie s fie pornit
2. Trebuie s existe puncte de interes nregistrate n baza de date i asociate
activitilor planificate n ziua respectiv
Pai:
1. Aplicaia calculeaz poziia utilizatorului
2. n cazul n care acesta se afl n apropierea unui punct de interes transmite o
notificare
n noiunile prezentate n acest capitol au fost prezentat platforma care va fi folosit pentru
proiectarea aplicaiei din discuie i anume Android precum si principalele cazuri de utilizarea la
care ar trebui s rspund aplicaia urmnd ca n capitolul urmtor s fie detaliat modul de
39

Capitolul 4
implentare a aplicaiei i componentele de Android la care s-a apelat pentru realizarea diverselor
functionaliti

40

Vous aimerez peut-être aussi