+ All Categories
Home > Documents > Licenta Android Time Management

Licenta Android Time Management

Date post: 09-Nov-2015
Category:
Upload: pinguin011
View: 125 times
Download: 7 times
Share this document with a friend
Description:
Licenta Android
38
FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE DEPARTAMENTUL CALCULATOARE TIME COMPASS: O APLICAȚIE DE TIME MANAGEMENT PENTRU ANDROID LUCRARE DE LICENŢĂ Absolvent: Bogdan NANE Coordonator ştiinţific: Șef lucr. ing. Cosmina IVAN 2012
Transcript
  • 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

    4

    Cuprins

    1 INTRODUCERE ................................................................................................................... 6

    1.1 CONTEXT GENERAL .............................................................................................................. 6

    1.2 CONTEXTUL APLICAIEI ....................................................................................................... 6

    1.3 REZUMAT ............................................................................................................................. 6

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

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

    3.1 CONCEPTE DE TIME MANAGEMENT ....................................................................................... 9

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

    4 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

    5 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

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

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

    7.1 MANUAL DE INSTALARE ..................................................................................................... 67

    7.2 MANUAL DE UTILIZARE ...................................................................................................... 68

    8 CONCLUZII ........................................................................................................................ 76

  • Cuprins

    5

    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

    6

    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

  • Capitolul 1

    7

    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

    8

    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 i-ar 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

    9

    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

  • Capitolul 3

    10

    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:

  • Capitolul 3

    11

    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.

  • Capitolul 3

    12

    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.

  • Capitolul 3

    13

    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

  • Capitolul 3

    14

    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

  • Capitolul 3

    15

    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.

  • Capitolul 4

    16

    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 ocupandu-se 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

  • Capitolul 4

    17

    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

  • Capitolul 4

    18

    1.5 Cupcake 3 0.2%

    1.6 Donut 4 0.4%

    2.1 Eclair 7 3.7%

    2.2 Froyo 8 14%

    2.3 - 2.3.2 Gingerbread 9 0.3%

    10 57.2%

    2.3.3 - 2.3.7

    3.1 Honeycomb

    12 0.5%

    3.2 13 1.6%

    4.0 - 4.0.2 Ice Cream Sandwich 14 0.1%

    4.0.3 - 4.0.4 15 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)

  • Capitolul 4

    19

    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

  • Capitolul 4

    20

    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 []:

    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

  • Capitolul 4

    21

    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]

  • Capitolul 4

    22

    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

  • Capitolul 4

    23

    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 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:

  • Capitolul 4

    24

    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 manager-ul 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

  • Capitolul 4

    25

    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 urmat de tag-ul 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

  • Capitolul 4

    26

    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

  • Capitolul 4

    27

    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 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.

    Resource Component ce definete API-urile necesare crerii repsectiv gestionrii

  • Capitolul 4

    28

    management

    (workspace)

    resurselor (precum proiecte, fiiere i directoare) care sunt produse de ctre tool-uri i salvate n sistemul de fiiere.

    Eclipse UI

    Workbench

    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.

    Help system Component ce permite vizualizarea documentaiilor oferite de plugin-uri

    Team support Component ce faciliteaz lucrul n echip n cadrul proiectelor, oferind functionaliti precum gestionarea i versionarea resurselor

    Debug support 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.

    Other utilities 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.

    /tools/

    SDK Platform-tools Conine unelte specifice anumitor platforme de Android necesare

    proiectrii respectiv depanrii aplicaiilor specifice platformei respective.

    /platform-tools/

    Documentation O copie offline actualizat a documentaiei API-urilor diverselor platforme de Android.

    /docs/

  • Capitolul 4

    29

    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

    SDK Platform Exist o platfoma SDK pentru fiecare versiune de Android lansat, care poate fi alesa ca i platforma int pentru aplicaii

    /platforms//

    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.

    /platforms//

    Sources for Android

    SDK

    O copie a codului surs pentru componentele diverselor platforme

    de Android.

    /sources/

    Samples for SDK Exemple care ilustreaz funcionalittile diverselor API-uri de Android

    /platforms//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

    /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.

    /extras/android/su

    pport/

    Google Play Billing Librrie static care permite integrarea unui serviciu de taxare n aplicaii cu google Play

    /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

    /extras/google/

  • Capitolul 4

    30

    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.

  • Capitolul 4

    31

    Table 4.3 Cerine funcionale

    Identificator Descriere

    CF-1 Specificarea contextului

    activitii (timp, loc, durata, descriere)

    CF-2 Gruparea activitilor

    CF-3 Atribuirea unui grand de

    importan activitilor

    CF-4 Stocarea activitilor

    CF-5 Reprezentare grafic a fluxului de activiti

    CF-6 Mecanism de notificare a

    activitilor

    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 Descriere

    CNF-1 Sincrionizarea cu ceasul sistemului

    CNF-2 mprire pe module

    CNF-3 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].

  • Capitolul 4

    32

    Tabel 4.5 Speficaii despozitiv

    Identificator Descriere

    CD-1 GPS

    CD-2 Modalitate de stocare a informaiei la nivel local (baz de date sau fiiere)

    CD-3 Dispozitiv bazat pe arhitectura ARM sau x86 capabil s ruleze Android 4.03 Ice Cream Sandwitch

    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 Descriere

    REQ-UF-1 Numar mic de pasi pentru accesarea functionalitatilor

    REQ-UF-2 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

  • Capitolul 4

    33

    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)

  • Capitolul 4

    34

    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.

  • Capitolul 4

    35

    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:

  • Capitolul 4

    36

    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:

  • Capitolul 4

    37

    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 marcndu-le corespunztor pe cele care au activiti planificate.

  • Capitolul 4

    38

    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

  • Capitolul 4

    39

    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

  • Capitolul 4

    40

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


Recommended