Documente Academic
Documente Profesional
Documente Cultură
PROFESIONAL LA INFORMATICĂ
2020-2021
Cuprins
Introducere…………………………………………………………………………………...2
Descrierea aplicației…...……………………………………………………………………..2
Structura aplicației…………………………………………………………………………...5
Splash screen-ul………………………………………………………………………..5
Interfața Grafică………………………………………………………………..5
Clasa SplashActivity…………………...............................................................6
Adăugarea / Modificarea unei sarcini………………………………………………….6
Interfața Grafică………………………………………………………………..6
Clasa AddNewTask……………………………………………………………7
Clasa RecyclerSwipe…………………………………………………………..9
Pagina principală ……………………………………………………………………..11
Interfața Grafică………………………………………………………………11
Clasa TaskModel…………………………………………………………..…12
Clasa TaskAdapter…………………………………………………………....13
Clasa DatabaseHandler…………………………………………………….…15
Clasa principală MainActivity……………………………………….……….17
Resurse web……………………………………………………………………………….....23
1
Introducere
În ziua de azi, oamenii sunt din ce în ce mai ocupați și au din ce în ce mai puțin timp
liber pentru a-și face activitățile preferate. Astfel, organizarea sarcinilor pe care sunt nevoiți să
le facă a devenit un lucru esențial în viața fiecăruia. O bună organizare asigură o eficiență
este o aplicație construită special pentru task management, oferind utilizatorilor posibilitatea
de a-și organiza sarcinile de orice natură, fie ele proiecte importante de la locul de muncă sau
Descrierea aplicației
TaskSloth este o aplicație pentru Android, cel mai folosit sistem de operare mobil din
punct de vedere al utilizatorilor, astfel putând fi folosit de un număr mai mare de oameni.
Studio, și este scrisă preponderent în limbajul de programare Java, folosind librării speciale
2
Despre sofware-ul folosit
Android Studio este mediul de programare (IDE) oferit de Google, special pentru
dezvoltarea aplicațiilor, pentru sistemul lor de operare, Android. Acesta este bazat pe software-
final.
Despre Java
James Gosling la Sun Microsystems (acum filială Oracle) la începutul anilor ʼ90, fiind lansat
în 1995. Cele mai multe aplicații distribuite sunt scrise în Java, iar noile evoluții tehnologice
permit utilizarea sa și pe dispozitive mobile, spre exemplu telefon, agendă electronică, palmtop
etc. În felul acesta se creează o platformă unică, la nivelul programatorului, deasupra unui
mediu eterogen extrem de diversificat. Acesta este utilizat în prezent cu succes și pentru
Limbajul împrumută o mare parte din sintaxă de la C și C++, dar are un model al
3
Despre XML
Consorțiul Web pentru crearea de alte limbaje de marcare. După cum sugerează și numele, este
un sistem extensibil de marcare, adică, mai simplu, este un sistem de marcare similar cu HTML,
doar că este mult mai bun și mai dinamic, diferența esențială fiind că tagurile nu sunt definite,
Poate este dificil de înțeles, dar fișierele XML nu fac nimic, sunt doar secvențe de text
create pentru a structura, depozita și transporta informație. Acestea sunt utilizate în contextul
Despre SQLite
SQLite este o mică bibliotecă C care implementează un motor de baze de date SQL
4
Structura aplicației
TaskSloth este o aplicație cu o interfață simplă și intuitivă formată din 3 ecrane: splash
screen-ul, pagina pentru adăugarea sau moficarea unei sarcini și pagina principală.
Splash Screen-ul
Splash screen-ul este pagina care apare cand deschizi aplicația, înainte de pagina
principală si are rolul de a îmbunatați look and feel-ul, complimentând-o din punct de vedere
estetic. Acesta este format din logo-ul aplicației pe un fundal în culoarea principală a acesteia
Interfața Grafică
activity_splash.xml
5
Clasa SplashActivity
SplashActivity.java
Această clasă face ca atunci când programul este inițializat interfața creată in fișierul
activity_splash.xml să apară pentru 1500 de milisecunde, după care pornește clasa principală
(MainActivity).
Interfața Grafică
new_task.xml
6
Clasa AddNewTask
7
AddNewTask.java
utiliza propritățiile necesare pentru o pagină de acest fel. Această clasă deschide layout-ul din
new_task.xml când este apelată, îl ajustează dacă tastatura este deschisă și face posibil ca
sarcinile noi introduse în casuța text newtasktext din new_task.xml să fie adăugate in baza de
date și totodată ca acestea, dacă sunt modificate ulterior, să fie actualizate in baza de date.
Aceasta ține cont dacă se introduc sarcini fară conținut și nu permite salvarea acestora. De
8
Clasa RecyclerSwipe
clasă permite stergerea și modificarea de către utilizator a sarcinilor aflate in lista principală
printr-o interfață de tip glisare. Astfel, glisând cartonașele pe care sunt afișate sarcinile :
adăugarea a uneia noi dar cu textul existent în căsuță ( facută cu ajutorul clasei
AddNewTask ).
9
șterge sau nu sarcina din baza de date. De asemenea, dacă se apasă in afara ferestrei, se
Pentru o experiență mai placută și pentru ușurința utilizatorului, când cartonașele sunt
glisate, în spatele lor apare un fundal sugestiv roșu ( în cazul ștergerii ) sau verde ( în cazul
RecyclerSwipe.java
10
Pagina Principală
Aceasta este pagina centrală a aplicației și este formata dintr-un titlu mare în partea de
sus cu numele acesteia ( “TaskSloth” ) cu rol de antet pentru aceasta. Sub acesta se află lista de
sarcini sub forma unei liste verticale de tip Recycler View ( liniară ), cu posibilitatea de
derulare. Sarcinile propriu-zise sunt scrise sub forma unor cartonașe ( utilizând CardView ) în
Recycler View-ul menționat, prevăzute în stânga cu o căsuță care se poate bifa ( pentru a marca
finalizarea sarcinii respective ). Acestea sunt memorate automat într-o bază de date de tip
SQLite . În partea de jos, mijloc, se află un buton care “plutește” peste cartonașe și este alcătuit
dintr-o iconiță cu un “ + ” și textul “Add new task” care, odată apăsat, apelează clasa
Interfața grafică
activity_main.xml
11
În task_layout.xml ( folosit pentru
task_layout.xml
Clasa TaskModel
TaskModel.java
status, care reprezintă dacă task-ul e finalizat sau nu ( 1 sau 0 ) și un șir de caractere task, care
Aceste variabile sunt acompaniate de câte două acțiuni de bază care pot fi făcute cu ele
și anume get și set cu care se preiau datele stocate în fiecare, respectiv se atribuie date în fiecare.
12
Clasa TaskAdapter
construirea oricărei interfețe ) și astfel, este nevoie de un adapter, care conține diferite metode
care “leagă” View-urile de datele din baza de date. Unele metode utile sunt, de exemplu,
13
TaskAdapter.java
14
Clasa DatabaseHandler
metode utile pentru diverse acțiuni cu elementele din baza de date, precum insertTask(), care
introduce sarcini noi în database, updateTask(), care actualizează textul sarcinii respective în
Aceasta este bazată pe clasa SQLiteOpenHelper, folosind o bază de date de tip SQLite,
15
DatabaseHandler.java
16
Clasa principală MainActivity
Aceasta este clasa principală a aplicației, unde sunt apelate diferitele clase create
com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton pentru a
centrale a aplicației ).
17
Apelarea diferitelor funcții în MainActivity.java
18
handleDialogClose(), din MainActiviy.java
in care se iese dintr-o fereastră de dip dialog ( ca cea care apare când se cere confirmarea
ștergerii unei sarcini ), care preia într-un ArrayList toate componentele de tip sarcină din baza
de date, le inversează ordinea ( astfel încât ultimul adăugat să fie afișat primul ), atașează
19
Caracteristici pentru îmbunătațirea experienței
Tema întunecată
20
Iconița aplicației
utilizatorului.
21
Schimbarea limbii de afișare
Pentru o experiență mai plăcută și pentru un număr mai mare de utilizatori mulțumiți
este esențială oferirea opțiunii de a schimba limba în care este afișat textul din aplicație.
schimbă în mod automat, în funcție de limba stabilită de utilizator pentru dispozitivul său în
setări. Android Studio oferă posibilitatea de a adăuga limbi noi modificând tag-urile din
structuri de genul “ android:text="@string/ * " “, iar în fișierele java utilizând structuri de genul
“ String * =adapter.getContext().getResources().getString(R.string.*); “
22
Resurse Web
2021.
“Android Studio - Wikipedia.” Wikipedia, the Free Encyclopedia, Wikimedia Foundation, Inc.,
2005, https://ro.wikipedia.org/wiki/Java_(limbaj_de_programare).
https://www.geeksforgeeks.org/.
“Stack Overflow - Where Developers Learn, Share, & Build Careers.” Stack Overflow,
https://stackoverflow.com/.
https://developer.android.com/training/basics/supporting-devices/languages.
https://ro.wikipedia.org/wiki/XML.
23