Aplicație Android pentru socializare – MeetYouUp – Coordonator științific Conferențiar universitar dr. Virginia Niculescu Absolvent Matea Andrei… [606283]
UNIVERSITATEA BABEȘ-BOLYAI CLUJ-NAPOCA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ
SPECIALIZAREA INFORMATICĂ
LUCRARE DE LICENȚĂ
Aplicație Android pentru socializare
–
MeetYouUp
–
Coordonator științific
Conferențiar universitar dr. Virginia Niculescu
Absolvent: [anonimizat]
2018
1
CUPRINS
Introducere
4
Specificații
5
Puncte de reper
5
CAPITOLUL 1.
Sistemul de operare Android
1.1
Introducere in Android
7
1.2
Aplicatii de tip third-party
9
1.2.1
Cum se defines aplicațiile de tip third-party
10
1.2.2
Aplicații native vs. Aplicații third-party
11
1.2.3
Problemele de securitate la folosirea aplicațiilor
11
third-party
1.3
Istoria sistemului de operare Android
12
1.3.1
Fondarea Android
13
1.3.2
Lansarea Android 1.0
14
1.3.3
Android si dulciurile
15
1.3.4
Logo-ul Android
16
CAPITOLUL 2.
Tehnologii folosite.
2.1
Android Studio
17
2
2.2
Firebase
20
2.3
Picasso
25
CAPITOLUL 3.
Prezentarea aplicației
3.1
Prezentarea ideii
29
3.2
Descrierea aplicației
31
3.2.1
Enunțul problemei
31
3.2.2
Proiectarea aplicației
32
3.2.2.1
Diagrama de cazuri de utilizare
32
3.2.2.2
Diagrama de secvență
33
3.2.2.3
Șabloane de proiectare
34
3.3
Dezvoltarea aplicației
36
3.1 Login
36
3.2 Setare informații profil
37
3.3.3 Căutare persoane pentru adăugarea în grup
38
3.4
Manual de utilizare
39
CAPITOUL 4.
Concluzii
43
CAPITOLUL 5.
Bibliografie
45
3
Introducere
Industria
telefoanelor
mobile
a
avut
o
dezvoltare
și
o
creștere
rapidă
de-a
lungul
ultimilor
ani.
Dispozitivele
mai
învechite,
limitate
de
anumite
capabilități,
sunt
înlocuite
de
cele
noi
care
beneficiază
de
o
tehnologie
mult
mai
avansată
care
le
permite
să
suporte
o
gamă
mult
mai
largă
de
servicii
destinate
acestora.
O
aplicație
mobilă
este
o
aplicație
software
creată
pentru
smartphone-uri,
tablete
și
dispozitive
mobile.
Termenul
de
aplicație
mobilă
a
devenit
din
ce
în
ce
mai
familiar,
popularitatea
acestora
fiind
într-o
continuă
creștere.
Cererea
din
partea
publicului
larg
a
aplicațiilor
de
acest
tip
și
disponibilitatea
de
noi
și
sofisticate
instrumente
de
dezvoltare
și
framework-uri
a
acestora
au
făcut
ca
dezvoltarea
de
aplicații
mobile
să
fie
ușoară,
rapidă
și
productivă.
Acestea
pot
facilita
sau
îmbunătăți
aspecte
ale
vieții
utilizatorilor
printr-o
gamă
largă
de
servicii,
pe
lângă
caracteristicile
de
bază
ale
unui
telefon
mobil,
cum
ar
fi
GPS,
jocuri,
intrumente
bancare,
cumpărături
online și multe altele.
În
cadrul
acestei
lucrări
s-a
urmărit
răspunsul
la
întrebarea
“Ce
faci
sau
cum
procedezi
atunci
când
vrei
să
faci
ceva
și
toți
prietenii
tăi
nu
pot
din
diferite
motive?”.
Astfel,
în
urma
unei
analize
s-a
ajuns
la
dezvoltarea
unei
aplicații
Android
de
socializare
care
să
ajute
utilizatorii
să
interacționeze
între
ei
mai
mult
și
mai
ușor,
atât
virtual,
dar
și
în
viața
reală.
Ideea
de
bază
a
acestei
aplicații
este
de
a
înlătura
bariera
creată
de
disconfortul
de
a
cunoaște
și
de
a
întâlni
persoane
noi
în
viața
reală
care
au
aceleași
modalități
de
a
se
relaxa
sau
de
aș
petrece
timpul
liber.
Prin
intermediul
aplicației
“MeetYouUp”
poți
găsi
ușor
și
rapid
persoane
care
doresc
să
facă
aceleași
lucruri
ca
și
tine
în
timpul
liber,
cum
ar
fi
mersul
la
teatru
sau
la
operă,
închirierea
unui
teren
sportiv,
vizitarea
unui
obiectiv
turistic,
frecventarea
diferitelor
terase
sau
pub-uri
sau
efectiv
plimbări
în
aer
liber,
plus
multe
altele.
Pe
lângă
opțiunea
de
a
participa
la
evenimente
de
orice
tip
organizate
de
alte
persoane,
utilizatorul
poate
să-și
creeze
evenimentele
sale
pe
care
le
poate
gestiona
cum
dorește,
să
invite
doar
anumite
persoane
sau
să
fie
un eveniment public, cu sau fără număr limită de persoane, cu sau fără acceptul său.
4
Din
cele
prezentare
mai
sus,
aplicația
“MeetYouUp”
este
astfel,
o
aplicație
prin
intermediul
căreia
se
dorește
medierea
întâlnirii
în
viața
reală
a
utilizatorilor
care
împart
aceleași
hobby-uri;
încurajând
utilizatorii
să
se
cunoască
între
ei
și
să
participe
la
cât
mai
mute
evenimente
de
diferite
tipuri,
create
de
diferiți
utilizatori,
permițând și facilitând astfel lărgirea cercului de prieteni și de cunoștințe ale acestora.
Aplicația
va
stoca
datele
personale
ale
utilizatoriilor,
cum
ar
fi
nume,
prenume,
adresa
de
email,
locația
și
diferite
cuvinte
cheie
pentru
tipurile
de
evenimente
la
care
doresc
sa
participe
în
cadrul
unui
server,
folosind
toate
aceste
informații
pentru
o
bună
funcționare
și
o
accesare
rapidă,
ele
fiind
totodată
publice
pe
profilul
fiecărui utilizator pentru a ajuta utilizatorii să se identifice și să se cunoască mai ușor.
Specificații
Pentru
realizarea
acestei
aplicații
se
vor
folosi
sistemul
de
operare
Android
și
platforma
Firebase
din
următoarele motive:
1.
Sistemul
de
operare
Android
este
mult
mai
folosit
de
către
utilizatori
indiferent
de
mediul
de
proveniență
2.
Google
API:
Google
oferă
o
varietate
de
API-uri
care
se
pot
folosi
gratis;
în
cadrul
aplicației
“MeetYouUp” se folosesc Google Maps, Location, Google Cloud Messaging.
3.
Folosirea
platformei
Firebase
este
datorată
facilităților
pe
care
acesta
le
aduce
deoarece
nu
este
nevoie
să
se
dezvolte
explicit
infrastructura
și
prin
existența
unor
funcționalități
precum
baza
de
date,
mesajele
și spațiul de stocare se permite concentrarea mai mult asupra utilizatorilor.
Puncte de reper
În continuare se vor prezenta capitolele ce urmează:
1.
Capitolul
1:
Sistemul
de
operare
Android
;
în
cadrul
acestui
capitol
se
discută
despre
sistemul
de
operare
Android
în
cadrul
căruia
se
va
dezvolta
aplicația.
Sunt
aduse
informații
referitoare
la
istoria
acestuia, tipurile de aplicații ce pot rula pe acest sistem de operare și câteva curiozități.
5
2.
Capitolul
2:
Tehnologiile
folosite
;
în
cadrul
acestui
capitol
se
vor
prezenta
tehnologiile
și
serviciile
folosite pentru realizarea aplicației, cum ar fi platformele Android Studio și Firebase și librăria Picasso.
3.
Capitolul
3:
Prezentarea
aplicației
;
acest
capitol
v-a
acoperi
informații
referitoare
la
ideea
de
pornire
a
aplicației,
descrierea
funcționalităților
pe
care
aceasta
le
dispune,
modul
de
realizare
al
acestora
și
un
manual de utilizare.
4.
Capitolul
4:
Concluziile
finale
;
în
acest
capitol
se
vor
relua
subiectele
mari
din
capitolele
anterioare
și
se
va
prezenta
concluziile
autorului
referitoare
la
experiența
dezvoltării
aplicației
folosind
tehnologiile
specificate precum și dificultățile pe care proiectul le-a generat.
5.
Capitolul 5: Bibliografie ; prezentarea referințelor bibliografice ale lucrării de licență.
6
Capitolul 1
Sistemul de operare Android
1.1 Introducere in Android
Sistemul
de
operare
Android
este
un
sistem
de
operare
pentru
telefoanele
mobile,
mai
exact
smarthphone-uri,
dezvoltat
de
Google
LLC
(
LLC
însemnând
“
Limited
Liability
Company”,
tradus
în
limba
română,
societate
cu
răspundere
limitată.
Precum
o
corporație,
o
societate
cu
răspundere
limitată,
este
o
entitate
legală
separată
și
distinctă,
în
cadrul
căreia
proprietarii
sunt
parteneri).
Acest
sistem
de
operare
se
bazează
pe
o
versiune
modificată
a
nucleului
Linux
și
alte
programe
software
open
source,
fiind
proiectat
în
primul
rând
pentru
telefoane
mobile
cu
ecran
tactil,
cum
ar
fi
smarthphone-uri
și
tablete.
Față
de
cum
a
început,
Android
a
fost creat și pentru televizoare, Android TV, automobile, Android Auto, și pentru ceasuri de mână, Wear OS.
Inițial
dezvoltat
de
către
Android
Inc.
,
pe
care
Google
a
cumpărat-o
în
2005,
Android
a
fost
dezvăluit
publicului
în
2007,
cu
prima
reclamă
pentru
un
dispozitiv
Android
lansată
în
2008.
Sistemul
de
operare
a
trecut
de
atunci
prin
diferite
lansări
majore
de
versiuni,
versiunea
curentă
fiind
8.1
“Oreo”,
lansată
în
decembrie
2017.
Nucleul
codului
sursă
este
cunoscut
sub
numele
de
“Android
Open
Source
Project
(AOSP)”,
fiind
în
primul
rând
licențiat de către “Apache Licence”.
Android
este
cel
mai
bine
vândut
sistem
de
operare
pentru
smarthphone-uri
din
2011
și
pentru
tablete
din
2013.
În
mai
2017
a
avut
peste
doua
miliarde
de
utilizatori
activi
pe
lună,
iar
magazinul
pentru
aplicații,
Google Play, având stocate peste 1 milion de aplicații.
7
Codul
sursă
Android
este
lansat
de
Google
sub
licența
unei
surse
deschise,
natura
lui
deschisă
încurajând
o
mare
comunitate
de
programatori
și
entuziaști
să
folosească
codul
sursă
pentru
proiectele
bazate
pe
comunitate,
care
oferă
actualizări
pentru
dispozitivele
mai
vechi,
adaugă
noi
caracteristici
pentru
utilizatorii
avansați
sau
aduce
Android
la
dispozitivele
livrate
inițial
cu
un
alt
sistem
de
operare
[1]
.
Aceste
versiuni
dezvoltate
de
comunitate
oferă
de
multe
ori
noi
caracteristici
și
actualizări
ale
dispozitivelor
mai
rapid
decât
prin
intermediul canalelor oficiale de producție / operator, cu un nivel comparabil al calității
[2]
.
Aplicațiile
care
extind
funcționalitățile
dispozitivelor
sunt
scrise
folosind
kit-ul
de
dezvoltare
software
Android,
“Android
software
development
kit”
(SDK)
și
folosind
limbajul
de
programare
Java.
În
combinații
cu
Java
se
pot
folosi
de
asemenea
si
C/C++,
Go,
cu
toate
ca
pentru
acesta
exista
un
set
limitat
de
interfețe
de
programare
a
aplicațiilor
(API)
și
Kotlin.
SDK
pentru
Android
include
diferite
unelte
pentru
dezvoltarea
apliciațiilor,
cum
ar
fi
debugger,
librării
software,
diferite
emulatoare,
documentații,
mostre
de
cod
sursă
și
bineînțeles,
tutoriale.
Inițial,
Google
a
susținut
modul
de
dezvoltare
integrat
(IDE
–
“Integrated
development
enviroment”)
în
Eclipse
folosind
conectorul
Android
Development
Tools
(ADT).
În
decembrie
2014
Google
a
lansat
Android
Studio,
bazat
pe IntelliJ IDEA, ca mod de dezvoltare integrat pentru dezvoltarea de aplicații Android.
Android
are
o
continuă
creștere
a
aplicațiilor
de
tip
third-party.
Acestea
pot
fi
achiziționate
de
utilizatori
prin
descărcarea
și
instalarea
fișierului
APK
(pachet
de
aplicații
Android)
al
aplicației
sau
prin
descărcarea
acestora
utilizând
un
program
de
magazin
de
aplicații
care
le
permite
utilizatorilor
să
instaleze,
actualizeze
și
să
elimine
aplicații
de
pe
dispozitivele
lor.
Magazinul
Google
Play
este
magazinul
principal
de
aplicații
instalat
pe
dispozitivele
Android
care
respectă
cerințele
de
compatibilitate
Google
și
licențiază
software-ul
Google
Mobile
Services.
[3]
Android
încorporează
caracteristici
de
securitate
importante
din
industrie
și
lucrează
cu
dezvoltatorii
și
producătorii
de
dispozitive
pentru
a
menține
platforma
Android
și
ecosistemul
în
siguranță.
Un
model
robust
de
securitate
este
esențial
pentru
a
permite
un
ecosistem
puternic
al
aplicațiilor
și
dispozitivelor
construite
pe
și
în
jurul
platformei
Android
și
susținute
de
serviciile
cloud.
Prin
urmare,
prin
întregul
ciclu
de
viață
al
dezvoltării,
Android
a
fost
supus
unui
program
riguros
de
securitate
[4]
.
În
2013
Adrian
Ludwing,
șeful
departamentului
Android
pentru
securitate,
a
spus
că
“mai
puțin
de
0,001%
din
instalațiile
de
aplicații
de
pe
Android
sunt
capabile
să
se
sustragă
sistemului
de
apărare
multistrat
și
să
dăuneze
utilizatorilor”.
În
alte
cuvinte,
Android
are
mai
multe
straturi
de
apărare
pentru
a
se
proteja
împotriva
atacurilor
malware,
după
cum
putem
și
observa
în
8
graficul
de
mai
jos,
figura
1.1.1,
prezentat
de
Ludwing.
Doar
pentru
a
fi
instalat,
o
aplicație
trebuie
să
treacă
prin
Google
Play
sau
un
avertisment
despre
surse
necunoscute
(dacă
este
activat
pe
telefonul
dvs.)
și
un
utilizator
care
confirmă
instalarea.
După
aceasta,
trebuie
să
treacă
peste
funcția
de
securitate
Google
"Verify
Apps",
care
verifică
un
fișier
APK
în
baza
sa
proprie
de
date
de
malware
înainte
de
a
putea
fi
instalat.
Apoi,
aplicația
este
împachetată
cu
sandbox-uri
și
se
limitează
la
permisiunile
acordate
acesteia,
iar
verificările
de
securitate
proprii
ale Android se reiau ori de câte ori se execută aplicația.
Figura 1.1.1
[5]
1.2 Aplicații de tip third-party
Cea
mai
simplă
definiție
a
unei
aplicații
de
tip
third-party
este
o
aplicație
creată
de
un
furnizor
(companie
sau
persoană
fizică)
care
este
diferită
de
producătorul
dispozitivului
și
/
sau
al
sistemului
său
de
operare.
Aplicațiile
de
tip
third-party
sunt
denumite
uneori
aplicații
pentru
dezvoltatori,
deoarece
multe
sunt
create de dezvoltatori independenți sau companii de dezvoltare de aplicații.
[6]
9
1.2.1 Cum se definesc aplicațiile de tip third-party?
Aplicațiile de tip third-party se pot împărți în trei categorii și anume:
❖
Aplicații
create
pentru
magazinele
oficiale
(în
cazul
Android,
creat
de
Google,
și
anume
Google
Play
Store,
iar
in
cazul
iOS,
creat
de
Apple,
Apple’s
App
Store)
de
către
alți
furnizori,
în
afara
celor
menționați
mai
sus,
cu
condiția
ca
acestea
să
respecte
și
să
urmeze
criteriile
de
dezvoltare
impuse
de
către
magazinele
oficiale.
De
exemplu,
astfel
de
aplicații
sunt
Facebook
(fig.
1.2.1.1),
Snapchat
(fig.
1.2.1.2),
etc.
Figura 1.2.1.1
[7]
Figura 1.2.1.2
[8]
❖
Aplicații
oferite
prin
intermediul
magazinelor
de
aplicații
third-party
sau
de
pe
diferite
site-uri
web.
Aceste
magazine
de
aplicații
nu
sunt
afiliate
cu
magazinele
oficiale
ale
dispozitivelor
sau
ale
sistemului
de
operare
și
oferă
doar
aplicații
de
tip
third-party.
Astfel,
în
cadrul
acestei
categorii
de
aplicații
pot
apărea riscuri mai mari în ceea ce privește securitatea.
❖
O
aplicație
care
se
conectează
la
un
serviciu
sau
la
o
altă
aplicație.
Un
exemplu
pentru
această
categorie
sunt
aplicațiile
care,
pentru
a
putea
fi
folosite,
cer
permisiunea
de
a
accesa
o
anumită
parte
din
profilul
de
Facebook
al
utilizatorului,
Quizzstar
de
exemplu.
În
cadrul
acestei
categorii,
aplicațiile
nu
sunt întotdeauna descărcate, ci doar acordându-li-se acces asupra unor informații delicate.
1 0
Aplicațiile
de
acest
tip
fac
parte
dintr-o
categorie
vastă
de
aplicații;
fiecare
din
utilizatorii
unui
smarthpone
poate
deja
a
folosit
o
astfel
de
aplicație
sau
cel
mai
probabil
o
să
folosească.
Jocurile,
aplicațiile
muzicale
,
aplicațiile
pentru
cumpărături
sau
afaceri
create
de
alte
surse
în
afara
producătorului
dispozitivului
sau a producătorului sistemului de operare, toate acestea reprezintă aplicații third-party.
1.2.2 Aplicații native VS. Aplicații third-party
Aplicațiile
native
sunt
aplicații
care
sunt
create
și
distribuite
de
către
producătorul
dispozitivului
sau
creatorul
software
pentru
un
anumit
dispozitiv.
Câteva
exemple
de
astfel
de
aplicații
în
cazul
producătorului
Apple,
pentru
iPhone,
sunt
iTunes,
iMessage,
iBooks,
iar
în
cazul
Google
pentru
dispozitivele
cu
sistem
de
operare Android sunt Gmail, Google Drive, Google Chrome.
Indiferent
dacă
o
aplicație
este
o
aplicație
nativă
sau
nu,
acest
lucru
nu
înseamnă
neapărat
că
nu
poate
fi
întâlnită
și
pe
alte
tipuri
de
dispozitive.
De
exemplu,
majoritatea
aplicațiilor
Google
au
o
versiune
care
funcționează pe iPhone și iPad oferite în magazinul oficial Apple.
1.2.3 Problemele de securitate la folosirea aplicațiilor third-party
De
fiecare
dată
când
o
aplicație
third-party
accesează
diferite
informații
ale
utilizatorului,
poate
reprezenta
o
problemă
de
securitate,
pentru
că
în
cazul
acestei
categorii
de
aplicații
ele
pot
stoca
informații
delicate ale utilizatorului sau pot provoca publicitate rea sau chiar afecta alte apilciații.
Fără
să
își
dea
seama,
un
utilizator
poate
cumpăra
astfel
de
aplicații
în
cadrul
magazinelor
neoficiale
la
prețuri
mai
avantajoase
și
să
pună
în
pericol
informații
delicate
acestuia.
Exemple
de
informații
delicate
extrase
prin
intermediul
magazinelor
de
aplicații
third-party
includ
numere
de
telefon,
informații
despre
dispozitive
și
adrese de e-mail.
“Cu
toate
acestea,
magazinele
neoficiale
de
aplicații
third-part
nu
sunt
restricționate,
însemnând
că
nu
pot
fi
controlate
de
sistemul
de
operare.
Astfel
de
magazine
sunt
atractive
pentru
dezvoltatori
din
cauza
acestei
1 1
lipse
de
restricții.
Dezvoltatorii
ar
putea
viza
publicul
lor
în
moduri
pe
care
nu
le
pot
face
prin
magazinele
oficiale de aplicații.”
[9]
1.3 Istoria sistemului de operare Android
De
multe
ori
timpul
trece
foarte
repede
și
avem
impreisa
că
unele
lucruri
le
avem
dintotdeauna,
cum
ar
fi
cazul
sistemului
de
operare
Android.
Astfel,
sunt
mai
puțini
de
10
ani
de
la
apariția
pe
piață
a
primului
telefon
cu
sistem
de
operare
Android,
iar
faptul
că
Google
a
decis
ca
acest
sistem
de
operare
să
fie
unul
open-source
a
făcut
să
devină
foarte
popular
printre
producătorii
de
dispozitive
third-party.
În
ziua
de
azi,
Android
a
devenit
cel
mai
popular
sistem
de
operare
pentru
smarthphone-uri,
depășind
competitori
precum
Apple,
Symbian,
BlackBerry, Palm OS, webOS și Windows Phone, acest lucru putând fi observat și în figura 1.3.1:
Figura 1.3.1
[10]
1 2
1.3.1 Fondarea Android
În
octombrie
2003,
cu
mult
înainte
ca
termenul
de
"smartphone"
să
fi
fost
folosit
de
cea
mai
mare
parte
a
publicului,
și
de
mai
mulți
ani
înainte
ca
Apple
să
fi
anunțat
iPhone
și
primul
său
sistem
de
operare,
compania
Android
Inc
a
fost
fondată
în
Palo
Alto,
California.
Cei
patru
fondatori
au
fost
Rich
Miner,
Nick
Sears,
Chris
White,
și
Andy
Rubin.
La
momentul
fondării
sale
publice,
Rubin
a
fost
citat
ca
spunând
că
Android
Inc
urma
să
dezvolte
“dispozitive
mobile
mai
inteligente,
care
sunt
mai
conștiente
de
locația
proprietarului
și
preferințele
sale.”
Figura
1.3.1.1 îl prezintă pe Andy Robin în timpul unei conferințe.
[11]
Figura 1.3.1.1
[11]
În
momentul
de
față,
cuvintele
lui
Robin
descriu
un
smarthphone
normal,
dar
atunci
aceste
cuvinte
reprezentau
o
provocare,
deoarece
sistemul
de
operare
Android
a
fost
inițial
creat
pentru
a
îmbunătăți
sistemul
de
operare
al
camerelor
digitale.
Echipa
responsabilă
de
Android
nu
se
gândea
la
crearea
unui
sistem
de
operare
pentru
telefoane
mobile,
dar
faptul
că
piața
camerelor
digitale
era
în
scădere
a
determinat
Android
Inc
să
transforme
sistemul
de
operare,
inițial
creat
pentru
camere
digitale,
într-unul
pentru
smarthphone-uri,
care
ulterior o să devină cel mai folosit sistem de operare.
1 3
Anul
2005
a
reprezintă
începerea
unui
nou
capitol
pentru
sistemul
de
operare
Android,
deoarece
atunci
Android
Inc
a
fost
cumpărată
de
Google.
Rubin
împreună
cu
alți
membri
fondatori
au
continuat
dezvoltarea
sistemului
de
operare,
hotărându-se
ca
Linux
să
fie
baze
de
formare
a
acestuia.
Astfel
Android
urma
să
fie
oferit
altor
producători
de
telefoane
mobile
gratis,
mizându-se
că
o
să
aducă
profit
oferind
alte
servicii
sau
aplicații
ce
folosesc sistemul de operare.
1.3.2 Lansarea Andorid 1.0
În
anul
2007
Apple
a
lansat
primul
iPhone,
acest
lucru
deschizând
o
nouă
ușă
în
ceea
ce
privește
telefoanele
mobile.
În
același
timp,
Google
lucra
la
Android
în
secret,
dar
în
luna
noiembrie
a
acelui
an,
a
început
să
prezinte
planurile
sale
de
contra-atac
împotriva
Apple
și
a
altor
platforme
mobile.
Tot
în
acest
an
a
fost
prezentat
și
Open
Handset
Alliace,
ceea
ce
reprezintă
un
grup
de
84
de
companii
tehnologice
și
de
telefoane
mobile
care
si-au
unit
forțele
pentru
a
accelera
inovația
telefoanelor
mobile
și
să
ofere
utilizatorilor
o
experiență
mai
bogată,
mai
ieftină
și
mai
bună.
Unele
din
companiile
fondatoare
sunt
producătorii
de
telefoane
HTC
și
Motorola,
producătorii
de
cipuri
Qualcom
și
Texas
Instruments
și
operatorii
de
transport,
inclusiv
T-Mobile.
Prin
intermediul acestora s-a facilitat prezentarea primului telefon Android.
În
septembrie
2008
a
fost
lansat
primul
telefon
Android,
T-Mobile
G1,
cunoscut
ca
“Visul
HTC”
în
alte
parți
ale
lumii.
A
putut
fi
achiziționat
în
Statele
Unite
ale
Americii
începând
cu
luna
octombrie
a
aceluiași
an.
Design-ul
telefonului,
cu
un
ecran
de
3.2
inch,
touchscreen
și
o
tastatura
qwerty
fizică
nu
era
ceva
nemaivăzut.
Per
total,
telefonul
a
primit
review-uri
rele
din
partea
criticilor
tehnologici.
G1
nu
avea
nici
mufă
jack,
ceea
ce
în
ziua
de
azi
e
destul
de
întâlnit,
dar
atunci
aceasta
reprezenta
o
caracteristica
necesara
implementată
de
competitorii Android.
Oricum,
sistemul
de
operare
Android
1.0
avea
marca
comercială
a
planului
Google,
având
integrate
diferite
servicii
și
aplicații
ale
companiei,
cum
ar
fi
Google
Maps,
Youtbe
și
un
browser
HTML
(pre-Chrome)
care
folosea
servicii
de
căutare
Google.
Android
1.0
includea
de
asemenea
și
prima
versiune
de
Android
Market,
magazinul de aplciații, ce urma să aibe o varietate de aplicații unice Android.
1 4
Poate
toate
acestea
par
destul
de
mărunte
în
comparație
cu
tehnologia
din
ziua
de
azi,
dar
ele
reprezintă doar începutul creșterii Android pe piața dispozitivelor mobile.
1.3.3 Android și dulciurile
Majoriatea
variantelor
de
soft
pentru
Android
au
numele
de
cod
ca
diferite
dulciuri
sau
feluri
de
desert.
Cu
toate
acestea,
Android
1.0
nu
a
avut
nici
un
nume
de
cod,
conform
spuselor
inginerului
Android
Jean-Baptise
Queru
în
2012.
Android
1.1,
lansat
in
februarie
2009
nu
a
avut
un
nume
public,
dar,
cu
toate
acestea
avea
un
nume
intern
de
“Petit
four”
în
cadrul
dezvoltării
sale
Google.
Acest
nume
se
referă
la
un
nume
de
desert
franțuzesc.
Câteva
luni
mai
târziu,
în
aprilie
2009,
a
fost
lansat
Android
1.5,
acesta
versiune
a
sistemului
de
operare
având
numele
public,
și
anume:
“Cupcake”
(Figura
1.3.3.1).
Denumirea
versiunilor
soft
pentru
Andorid
după
dulciuri
sau
deserturi
îi
revine
managerului
de
proiect
de
la
Google,
Ryan
Gibson,
însă
aceasta
decizie
era
una
încă
necunoscută
la
acel
timp.
La
lansarea
Android
4.4
KitKat
(Figura
1.3.3.2)
din
partea
Google
a
fost
oferită
o
declarație
oficială
cu
privire
la
numele
de
cod
al
variantelor
soft
pentru
sistemul
de
operare,
spunând
că
“din
moment de aceste ne fac viețile atât de dulci, fiecare versiune Android este numită după un desert”.
[11]
Figura 1.3.3.1
[11]
Figura 1.3.3.2
[11]
1 5
1.3.4 Logo-ul Android
Bine-cunoscutul
logo
al
sistemului
de
operare
Android,
care
se
aseamănă
cu
o
combinație
între
un
robot
și
un
mic
gândac
verde,
a
fost
creat
de
către
Irina
Blok.
Acesta
a
spus
revistei
“The
New
York
Times”
în
2013
că
singura
directivă
primită
în
vederea
creării
logo-ului
a
fost
să
se
asemene
unui
robot.
Irina
Block
spune
că
design-ul final a fost inspirat din logo-urile toaletelor, reprezentând “Bărbați” și “Femei”.
Google
împreună
cu
Irina
Block
au
decis
ca
roboțelul
Andorid
sa
fie
un
proiect
cu
sursă
deschisă.
În
principiu,
fiecare
mare
companie
ar
dori
ca
logo-ul
său
sau
mascota
sa
să
fie
nu
fie
modificată
de
alte
părți,
dar
acesta a fost o decizie pentru a susține caracterul cu sursă deschisă al sistemului de operare Android.
Mai
jos
este
prezentat
logo-ul
pentru
diferite
versiuni
de
soft
(Figura
1.3.4.1)
și
o
imagine
generală
(Figura
1.3.4.2):
Figura1.3.4.1
[12]
Figura 1.3.4.2
[12]
1 6
Capitolul 2
Tehnologii folosite
2.1 Android Studio
Android
Studio
este
mediul
de
dezvoltare
integrat
pentru
sistemul
de
operare
Android.
Acesta
are
la
bază
software-ul
IntelliJ
IDEA,
creat
de
JetBrains,
special
proiectat
pentru
dezvoltarea
de
aplicații
Android,
fiind
disponibil
pentru
sistemele
de
operare
Windows,
macOS
și
Linux.
Android
Studio
este
un
înlocuitor
al
vechiului
mediu
de
dezvoltare
integrat,
Eclipse
Android
Development
Tools,
primul
de
acest
tip
pentru
aplicații
Android
native.
Android
Studio
a
fost
prezentat
publicului
larg
în
16
mai
2013
la
conferința
Google
I/O.
Acesta
a
fost
în
etapa
de
previzualizare
începând
cu
versiunea
0.1
din
mai
2013,
apoi
a
intrat
în
epata
beta
începând
de
la
versiunea
0.8,
lansată
în
iunie
2014.
Prima
versiune
stabilă
a
fost
lansată
în
decembrie
2014,
versiunea
1.0,
iar
versiunea curentă a acestuia este 3.1 lansată în martie 2018.
În
continuare
vom
prezenta
unele
din
funcționalitățile
care
fac
Android
Studio
un
software
atât
de
fiabil
și de calitate pentru crearea de aplicații Android:
❖
Scrierea de cod sursă și iterarea acestuia rapidă
➢
Instant
Run:
Această
funcționalitate
propagă
schimbările
de
cod
sursă
sau
de
resurse
direct
în
aplicația
pornită,
funcționând
într-un
mod
inteligent
astfel
că
în
unele
situații
schimbările
nu
necesită restartarea aplicației sau reconstruirea APK (Pachet de aplicații Android).
1 7
➢
Editor
de
cod
sursă:
Editorul
de
cod
sursă
al
Android
Studio
ajută
dezvoltatorii
de
aplicații
Android
să
scrie
linii
de
cod
mai
rapide
și
mai
bune
oferind
completări
avansate
de
cod
sursă,
refactorizare
și
analiză
a
codului;
pe
măsură
ce
un
dezvoltator
scrie
cod
sursă,
acesta
primește
sugestii de completare din partea Android Studio.
➢
Android
Emulator:
Această
funcționalitate
permite
instalarea
de
dispozitive
mobile,
tablete
sau
dispozitive
Android
și
funcționarea
acestora
virtuală
precum
un
dispozitiv
adevărat,
limitările
fiind unele foarte mici.
❖
Instrumente ajutătoare pentru a asigura productivitatea
➢
Șabloane
de
cod
și
mostre
de
aplicații:
Android
Studio
conține
șabloane
de
cod
care
fac
folosirea
unor
modele
de
proiectare
mult
mai
accesibilă,
permite
folosirea
unor
mostre
de
cod
din cadrul API-urilor folosite și chiar importarea de aplicații complet funcționale de pe GitHub.
➢
Lintelligence:
Un
framework
robust
de
analiză
statică
care
presupune
analiza
codului
sursă
și
semnalizarea
dezvoltatorului
în
cazul
unor
erori
de
programare,
diferite
probleme,
fie
ele
de
performanță
sau
securitate,
sau
construcții
de
cod
care
pot
fi
optimizate,
toate
acestea
putând
fi corectate foarte ușor.
➢
Instrumente
de
testare:
Android
Studio
oferă
instrumente
pentru
testarea
aplicațiilor
prin
JUnit
4
și
framework-uri
pentru
testarea
funcțională
a
interfeței
utilizator.
Cu
ajutorul
Espresso
Test
Recorder
se
pot
genera
test
pentru
interfața
utilizator
care
înregistrează
interacțiunile
cu
un
dispozitiv sau cu emulatorul.
❖
Folosirea de resurse externe, cum ar fi Firebase
➢
Asistentul
Firebase
din
cadrul
Android
Studio
ajută
dezvoltatorii
să
își
conecteze
aplicația
la
Firebase
și
să
adauge
servicii
acesteia
prin
proceduri
pas-cu-pas.
Unele
din
serviciile
menționate
anterior
sunt:
statistici,
autentificare,
notificări,
baza
de
date,
spațiu
de
stocare
online. Acest subiect va fi reluat în continuare în cadrul subcapitolului “2.2 Firebase”.
❖
Un
editor
de
layout
puternic
care
permite
drag-and-drop
pentru
componentele
din
interfața
utilizator,
precum și opțiunea de a previzualiza layout-urile pe mai multe configurații de ecran
❖
Toate proiectele Android Studio au un model de construcție bazat pe Gradle
➢
Gradle
este
un
instrument
de
automatizare
a
proiectelor
care
a
înlocuit
Apache
Ant
ca
sistem
de
construcție
primară
pentru
aplicații
Android.
Acesta
a
are
o
popularitate
crescută
în
rândul
1 8
dezvoltatorilor
Android
deoarece
prin
intermediul
său
se
pot
configura
toate
fazele
de
construire
ale
unui
proiect
cu
ajutorul
plugin-urilor,
se
asigură
conectarea
folosind
configurarea
corectă, administrarea dependințelor externe, reutilizarea de cod sursă și resurse, etc.
După
prezentarea
funcționalităților
și
posibilităților
din
cadrul
Android
Studio
urmează
prezentarea
conceptelor
de
bază
ale
acestuia,
aceste
informații
fiind
menite
să
aducă
în
prim-plan
modul
de
realizare
al
aplicației “MeetYouUp” :
❖
Activitate:
O
activitate
este
un
modul
unic,
independent
de
funcționalitatea
aplicației,
care
de
obicei
se
corelează
direct
cu
un
singur
ecran
din
interfața
utilizatorului
și
cu
funcționalitatea
corespunzătoare.
Activitățile
din
sistem
sunt
gestionate
sub
forma
unei
stive
de
activități.
Când
o
activitate
nouă
este
pornită,
ea
este
plasată
în
vârful
stivei
și
devine
activitatea
în
desfășurare
(activă),
activitatea
anterioară
rămâne
întotdeauna
sub
cea
activă
în
cadrul
stivei,
iar
aceasta
din
urmă
intră
din
nou
în
prim-plan
doar
la ieșirea din acesta a activității în desfășurare. O activitate are în esență 4 stări:
➢
Dacă
o
activitate
este
în
prim-planul
ecranului,
atunci
ea
este
o
activitate
în
desfășurare
sau
activă.
➢
Dacă
o
activitate
nu
mai
este
în
prim-plan,
dar
totuși
este
vizibilă,
atunci
ea
este
întreruptă.
O
activitate
întreruptă
este
în
continuare
viabilă,
dar
ciclul
său
de
viață
poate
fi
oprit
de
către
sistem în caz de lipsă de memorie.
➢
Dacă
o
activitate
este
complet
ascunsă
de
o
altă
activitate,
ea
este
oprită.
Încă
mai
păstrează
toate
stările
și
informațiile,
însă
nu
mai
este
vizibilă
pentru
utilizator,
astfel
încât
fereastra
sa
este
ascunsă
și
adesea
ciclul
său
de
viață
va
fi
oprit
de
către
sistem
când
memoria
este
necesară în altă parte.
➢
Dacă
o
activitate
este
întreruptă
sau
oprită,
sistemul
poate
elimina
activitatea
din
memorie.
În
acest
caz,
când
va
fi
din
nou
afișată
utilizatorului
aceasta
trebuie
să
fie
complet
reluată
și
restaurată la starea sa anterioară.
❖
Intenție
(în
continuare
vom
folosi
termenul
din
limba
engleză
pentru
a
ne
referi
la
aceasta
–
“intent”):
Componentele
aplicațiilor
Android
se
pot
conecta
la
alte
componente
din
cadrul
aplicațiilor
Android.
Această
conexiune
se
bazează
pe
o
descriere
a
sarcinii
reprezentată
de
un
obiect
Intent.
Intents
(ro.
–
Intențiile)
sunt
mesaje
asincrone
care
permit
componentelor
aplicației
să
solicite
funcționalitate
de
la
1 9
alte
componente
Android.
Intențiile
permit
să
interacționarea
cu
componente
din
aceleași
aplicații,
precum
și
cu
componentele
contribuite
de
alte
aplicații.
De
exemplu,
o
activitate
poate
începe
o
activitate externă pentru a face o fotografie.
❖
Vizualizare
(în
continuare
vom
folosi
termenul
din
limba
engleză
pentru
a
ne
referi
la
aceasta
–
“view”):
Această
clasă
reprezintă
elementul
de
bază
pentru
componentele
interfeței
utilizator.
Un
“View”
ocupă
o
zonă
dreptunghiulară
pe
ecran
și
este
responsabilă
de
desen
și
de
manipularea
evenimentelor.
“View”
este
clasa
de
bază
pentru
widget-uri,
care
sunt
folosite
pentru
a
crea
componente
interactive
din
interfața
utilizatorului
(butoane,
câmpuri
de
text,
etc.).
Subclasa
ViewGroup
este
clasa
de
bază
pentru
machete
(en.
–
“layouts”),
care
sunt
containere
invizibile
care
dețin
alte
Vizualizări
(sau
alte
ViewGroups)
și definesc proprietățile lor de aspect.
❖
Machetă
(în
continuare
vom
folosi
termenul
din
limba
engleză
pentru
a
ne
referi
la
aceasta
–
“layout”):
Layout
este
o
vizualizare
a
unui
container
care
este
proiectat
pentru
a
controla
modul
în
care
elementele
derivate
din
view
sunt
poziționate
pe
ecran.
Unele
layout-uri
sunt
LinearLayout,
TableLayout,
RelativeLayout,
GridLayout,
CoordinatorLayout,
ConstraintLayout,
FrameLayout
etc.
În
mod implicit, Android Studio 3.0 va suporta ConstraintLayout.
❖
Resurse:
Conține
resurse,
cum
ar
fi
șiruri
de
caractere,
imagini,
fonturi
și
culori
care
apar
în
interfața
cu
utilizatorul,
împreună
cu
reprezentarea
XML
a
layout-urilor
interfeței
utilizator.
Tot
textul
dintr-o
interfață de utilizator este conținut în fișierele de resurse (implicit este șirDeCaractere.xml).
2.2 Firebase
Firebase
este
o
platformă
de
dezvoltare
a
aplicațiilor
mobile
și
web
care
oferă
dezvoltatorilor
o
multitudine
de
instrumente
și
servicii
pentru
ai
ajuta
să
dezvolte
aplicații
de
înaltă
calitate,
să
își
dezvolte
baza
de utilizatori și să câștige mai mult profit.
2 0
Înapoi
în
2011,
înainte
ca
Firebase
să
fie
Firebase,
a
fost
un
startup
numit
Envolve.
În
calitate
de
Envolve,
a
oferit
dezvoltatorilor
un
API
care
a
permis
integrarea
funcționalității
de
chat
online
pe
site-ul
lor.
Ce
este
interesant
este
faptul
că
publicul
larg
a
folosit
Envolve
pentru
a
transmite
datele
aplicației
care
erau
mai
mult
decât
mesaje
de
chat.
Dezvoltatorii
utilizau
Envolve
pentru
a
sincroniza
datele
aplicației
în
timp
real
pentru
utilizatorii
lor.
Acest
lucru
a
condus
fondatorii
Envolve,
James
Tamplin
și
Andrew
Lee,
pentru
a
separa
sistemul
de
chat
și
arhitectura
în
timp
real.
În
aprilie
2012,
Firebase
a
fost
creat
ca
o
companie
separată
care
a
furnizat
Backend-as-a-Service cu funcționalitate în timp real.
După
ce
a
fost
achiziționat
de
Google
în
2014,
Firebase
a
evoluat
rapid
în
moneda
multifuncțională
a
unei platforme mobile și web pe care o deține astăzi. În Figura 2.2.1 se poate observa logo-ul Firebase:
Figura 2.2.1
[13]
Firebase
ajută
dezvoltatorii
de
aplicații
mobile
sau
web
să
treacă
peste
anumite
aspecte
de
implementare,
astfel
dorindu-se
ca
aceștia
să
se
axeze
mai
mult
asupra
realizării
de
experiențe
fantastice
pentru
utilizatori.
Folosind
Firebase,
un
dezvoltator
software
nu
trebuie
să
țină
cont
de
gestionarea
serverelor
necesare
aplicației
sale;
nu
este
nevoie
de
scrierea
API-urilor.
Toate
acestea
plus
multe
alte
funcționalități,
care
vor
fi
prezentate mai jos, reprezintă avantajele folosirii Firebase.
Serviciile
puse
la
dispoziția
publicului
larg
se
pot
împărți
în
2
mari
categorii,
după
cum
se
observa
în
Figura 2.2.2:
2 1
Figura 2.2.2
[14]
În continuare vom prezenta mai amănunțit serviciile Firebase folosite în cadrul aplicației “MeetYouUp”:
❖
Baza de date în timp real (Realtime Database):
➢
Una
din
deciziile
primordiale
pentru
dezvoltarea
unei
aplicații
este
folosirea
unei
baze
de
date
de
tipul
SQL
sau
NoSQL.
Convenționalele
baze
de
date
SQL
sunt
concepute
pentru
tranzacții
fiabile
și
interogări
ad-hoc,
având
un
sistem
de
consistență
al
datelor
mare,
dar
totodată
limitat
de
proprietățile
ACID
(4
proprietăți
referitoare
la
consistența
datelor
și
anume:
atomicitate,
consistență,
izolare
și
durabilitate),
iar
această
limitare
afectează
viteza
și
scalabilitatea
operațiilor
asupra
datelor.
Ca
un
răspuns
asupra
acestor
limitări
a
apărut
bazele
de
date
NoSQL
care
lasă
în
urmă
aceste
principii.
Sistemele
NoSQL
stochează
și
gestionează
datele
în
moduri
care
permit
o
viteză
operațională
ridicată
și
o
mare
flexibilitate
din
partea
dezvoltatorilor.
Multe
dintre
ele
au
fost
dezvoltate
de
companii
precum
Google,
Amazon,
Yahoo
și
Facebook,
2 2
care
căutau
modalități
mai
bune
de
a
stoca
conținuturi
sau
de
a
procesa
date
pentru
site-uri
masive.
Spre
deosebire
de
bazele
de
date
SQL,
multe
baze
de
date
NoSQL
pot
fi
scalate
orizontal în sute sau mii de servere.
➢
Firebase
Realtime
Database
este
o
bază
de
date
care
are
o
arhitectură
NoSQL.
Acesta
este
o
bază
de
date
găzduită
în
cloud.
Datele
sunt
stocate
ca
JSON
și
sincronizate
în
timp
real
cu
fiecare
client
conectat.
La
construirea
aplicațiilor
cross-platform
cu
kiturile
Firebase
SDK
pentru
iOS,
Android
și
JavaScript,
toți
clienții
partajează
o
instanță
a
bazei
de
date
Realtime
și
primesc
automat actualizări cu cele mai noi date.
➢
Capacitățile cheie sunt:
ș
În
timp
real
(Realtime):
În
locul
cererilor
tipice
HTTP,
baza
de
date
Firebase
Realtime
utilizează
sincronizarea
datelor
–
de
fiecare
dată
când
se
schimbă
datele,
orice
dispozitiv
conectat
primește
această
actualizare
în
milisecunde.
Astfel
se
oferă
experiențe
colaborative
și
imersive
fără
gândul
la
codul
de
rețea.
Această
funcționalitate este prezentată în Figura 2.2.3.
ș
Offline:
Aplicațiile
Firebase
rămân
active
chiar
și
atunci
când
sunt
offline,
deoarece
fișierul
SDK
pentru
baza
de
date
în
timp
real
Firebase
persistă
informațiile
pe
disc.
Odată
ce
conectivitatea
este
restabilită,
dispozitivul
client
primește
toate
modificările
pe care le-a ratat, sincronizând-o cu starea curentă a serverului.
ș
Accesibile
direct
de
pe
dispozitivele
client:
Baza
de
date
Firebase
Realtime
poate
fi
accesată
direct
de
pe
un
dispozitiv
mobil
sau
browser
web;
nu
este
nevoie
de
un
server
al
aplicației.
Securitatea
și
validarea
datelor
sunt
disponibile
prin
regulile
Firebase
Realtime
Database
Security,
reguli
bazate
pe
expresii
care
sunt
executate
atunci
când
datele sunt citite sau scrise.
Figura 2.2.3
[15]
2 3
❖
Autentificare:
Majoritatea
aplicațiilor
trebuie
să
știe
identitatea
unui
user.
Știind
identitatea
unui
user
îi
permite
unei
aplicații
să
salveze
în
siguranță
datele
utilizatorului
în
cloud
și
oferă
aceeași
experiență
personalizată
pe
toate
dispozitivele
utilizatorului.
Firebase
Authentication
oferă
servicii
backend,
SDK-uri
ușor
de
folosit
și
biblioteci
UI
gata
de
utilizare
pentru
a
autentifica
utilizatorii
în
aplicația
dvs.
Acesta
susține
autentificarea
utilizând
parole,
numere
de
telefon,
furnizori
de
diferite
servicii
cum
ar
fi
Google, Facebook și Twitter și multe altele.
❖
Stocare
(Cloud
Storage):
În
cadrul
stocării
Firebase,
toate
informațiile
sunt
stocate
în
cloud.
Aceasta
este
folosită
de
către
dezvoltatori
în
cadrul
aplicațiilor
în
momentul
în
care
se
dorește
stocarea
de
conținut
din
partea
utilizatorilor,
cum
ar
fi
fotografii
sau
videoclipuri.
Cloud
Storage
pentru
Firebase
este
un
serviciu
de
stocare
a
obiectelor
puternic,
simplu
și
eficient,
construit
pentru
Google.
SDK-urile
Firebase
pentru
spațiul
de
stocare
în
Cloud
adaugă
securitatea
Google
pentru
încărcarea
și
descărcarea
de
fișiere
pentru
aplicațiile
Firebase,
indiferent
de
calitatea
rețelei.
Se
pot
utiliza
SDK-urile
Firebase
pentru
a
stoca
imagini,
audio,
video
sau
alte
conținuturi
generate
de
utilizatori.
În
continuare
vom
prezenta
capacitățile cheie:
➢
Operații
robuste:
SDK-urile
pentru
Cloud
Storage
efectuează
încărcări
și
descărcări
indiferent
de
calitatea
rețelei.
Încărcările
și
descărcările
sunt
robuste,
ceea
ce
înseamnă
că
repornește
unde s-au oprit, salvând utilizatorilor timpul și lărgimea de bandă.
➢
Securitate
puternică:
SDK-urile
pentru
Cloud
Storage
se
integrează
cu
autentificarea
Firebase
pentru
a
oferi
autentificare
simplă
și
intuitivă
dezvoltatorilor.
Se
poate
utiliza
modelul
de
securitate
declarativ
pentru
a
permite
accesul
bazat
pe
numele
fișierului,
dimensiunea,
tipul
de
conținut și alte metadate.
➢
Scalabilitate
ridicată:
Cloud
Storage
pentru
Firebase
este
construit
pentru
scală
exabyte
atunci
când
aplicația
devine
virală.
Se
poate
realiza
cu
ușurință
creșterea
de
la
prototip
la
producție
folosind aceeași infrastructură care are putere Spotify și Google Photos.
2 4
2.3 Picasso
Picasso
este
o
bibliotecă
de
imagini
pentru
sistemul
de
operare
Android.
Aceasta
este
creată
și
întreținută
de
către
compania
“Square”,
scopul
ei
fiind
încărcarea
și
procesarea
de
imagini,
simplificând
foarte
mult
vizualizarea
de
imagini
ce
provin
din
surse
externe,
mai
exact;
adesea
doar
câteva
linii
de
cod
duc
la
implementarea
acestei
librării.
Picasso
strălucește
prin
afișarea
imaginilor
la
distanță,
biblioteca
ocupându-se
de
fiecare etapă a procesului, de la cererea inițială HTTP la cache-ul imaginii.
În
cazul
folosirii
Android
Studio
pentru
dezvoltarea
de
aplicații
Android,
instalarea
bibliotecii
Picasso
este una simplistă, tot ce este necesar fiind adăugarea unei dependințe în fișierul Gradle, și anume:
‘implementation 'com.squareup.picasso:picasso:2.71828’
[16]
.
În
continuare
se
va
prezenta
modul
de
lucru
intern
al
acestei
biblioteci
(Figura
2.3.1)
și
explicat
pe
componente:
Figura 2.3.1
[17]
2 5
Printr-o
declarație
similară
cu
acea
ce
urmează,
unde
URL
reprezintă
url-ul
imaginii
dorite,
biblioteca
Picasso
încarcă
imaginea
dintr-o
sursă
externă
direct
în
interiorul
aplicației;
de
asemenea
putând
fi
adăugate
diferite
argumente,
cum
ar
fi
redimensionarea
imaginii,
centrarea
acesteia,
posibilitatea
efectului
de
“fade-in”
,
etc:
Picasso.get().load(URL).into(imageView);
Înainte
de
a
stabili
operațiile
de
încărcare
a
imaginii
se
vor
prezenta
aspectele
de
creare
ale
unui
obiect
de tip Picasso:
public Picasso build() {
Context context = this.context;
if (downloader == null) {
downloader = new OkHttp3Downloader(context);
}
if (cache == null) {
cache = new LruCache(context);
}
if (service == null) {
service = new PicassoExecutorService();
}
if (transformer == null) {
transformer = RequestTransformer.IDENTITY;
}
Stats stats = new Stats(cache);
Dispatcher dispatcher = new Dispatcher(context, service, HANDLER, downloader, cache, stats);
return new Picasso(context, dispatcher, cache, listener, transformer, requestHandlers, stats,
defaultBitmapConfig, indicatorsEnabled, loggingEnabled);
}
[17]
2 6
După
cum
se
poate
observa,
obiectul
Picasso
este
creat
din
diferite
componente,
cum
ar
fi:
downloader,
cache,
executor,
transformer,
etc.
Biblioteca
oferă
programatorului
o
implementare
personalizată
a
acestor
componente, dar și una implicită.
❖
ExecutorService:
Picasso
gestionează
mai
multe
solicitări
de
imagini
cu
ajutorul
unui
executor.
Implementarea implicită are următoarele responsabilități:
➢
Ajustarea numărului de thread-uri
➢
Executorul
va
prelua
sarcina
de
încărcare
a
imaginii
pe
baza
priorității
sale.
În
implementarea
implicită, Picasso suportă doar trei tipuri de priorități – LOW, NORMAL și HIGH
❖
Cache
➢
Picasso
folosește
clasa
LruCache
pentru
furnizarea
implementării
memoriei
cache.
Această
clasă
alocă
dimensiunea
maximă
a
cache-ului
la
aproximativ
15%
din
dimensiunea
totală
a
mărimii
aplicației
atribuite.
Această
memorie
cache
se
utilizează
pentru
a
stoca
Bitmap-uri
ale
imaginilor încărcate.
❖
Downloader
➢
Principala
responsabilitate
a
acestei
clase
este
implementarea
funcției
load
()
care
ia
okhttp3.Request
ca
intrare
și
returnează
okhttp3.Response
ca
ieșire.
Această
clasă
are,
de
asemenea, grijă de memoria cache a discului.
❖
RequestTransformer
➢
Conform
documentației
Picasso,
această
clasă
este
invocată
imediat
înainte
de
depunerea
fiecărei cereri. Aceasta poate fi utilizată pentru a modifica orice informație despre o solicitare.
După
obținerea
unui
obiect
Picasso,
urmează
încărcarea
imaginii
într-un
ImageView;
sarcinile
pentru
a
realiza acest aspect sunt realizate de către clasele:
❖
RequestCreator:
Aceasta
încarcă
imaginea,
iar
la
încărcarea
acesteia
într-un
ImageView
se
crează
un
obiect
de
tip
Action,
fiecare
dintre
aceste
obiecte
având
o
cheie
de
solicitare
și
fiind
expediat
clasei
Dispatcher.java.
❖
Dispatcher:
Această
clasă
stochează
toate
cheile
de
solicitare
într-un
dicționar.
Dacă
cheia
nu
este
găsită
în
dicționar,
dispecerul
creează
un
obiect
BitmapHunter
(Runnable)
și
îl
trimite
la
2 7
PicassoExecutorService.
Dacă
cheia
este
deja
prezentă,
atunci
atașează
ImageView-ului
obiectul
BitmapHunter.
❖
BitmapHunter:
Această
clasă
extinde
interfața
Runnable
și
rulează
pe
executor.
Principalele
responsabilități sunt:
➢
Returnează bitmap-ul din memoria cache dacă cheia este deja prezentă în memoria cache.
➢
Dacă
cheia
nu
este
în
memoria
cache,
atunci
îi
cere
unui
obiect
de
tip
NetworkRequestHandler
să returneze fluxul de date al imaginii.
➢
Odată
ce
rezultatul
este
returnat
de
la
obiectul
NetworkRequestHandler,
această
clasă
decodează fluxul la bitmap și stochează bitmap-ul în memoria cache.
❖
NetworkRequestHandler:
➢
Returneză fluxul imaginii de pe cache-ul discului dacă cheia se află deja în cache.
➢
Dacă
cheia
nu
se
află
cache-ul
discului,
atunci
obiectul
de
tip
Downloader
inițiază
solicitare
de
rețea.
➢
Odată
ce
solicitarea
de
rețea
s-a
produs
cu
succes,
obiectul
de
tip
Downloader
stochează
fluxul
imaginii pe disc și dă mai departe rezultatul către clasa BitmapHunter.
2 8
Capitolul 3
Prezentarea aplicației
3.1 Prezentarea ideii
“Știința
și
tehnologia
au
avut
un
impact
major
asupra
societății,
iar
acest
impact
este
în
creștere.
Prin
schimbarea
drastică
a
mijloacelor
de
comunicare,
a
modului
de
lucru,
a
gospodăriei,
a
hainelor,
și
mâncării,
mijloacelor
de
transport,
și,
într-adevăr,
chiar
și
durata
și
calitatea
vieții
însăși,
știința
a
generat
schimbări
în
ceea ce privește valorile morale și filozofiile de bază ale omenirii.
Începând
cu
plugul,
știința
a
schimbat
a
schimbat
modul
în
care
trăim
și
ceea
ce
credem.
Făcând
viața
mai
ușoară,
știința
a
dat
omului
șansa
de
a
urmări
preocupările
sociale
cum
ar
fi
etica,
estetica,
educația
și
justiția;
să
creeze
culturi;
și
să
îmbunătățească
condițiile
umane.
Dar,
de
asemenea,
ne-a
plasat
în
poziția
unică
de a fi capabili să ne distrugem.”
[18]
Din
ce
în
ce
mai
mult,
generație
după
generație,
oamenii
se
apropie
tot
mai
mult
de
tehnologie,
caută
să
aibe
sau
să
cunoască
detalii
despre
ultimele
dispozitive
referitoare
la
aria
lor
interes,
dar
nu
numai.
Omul
modern
îmbrățișează
tot
mai
ușor
tehnologia,
iar
în
ziua
de
azi,
aproape
orice
detaliu
al
vieții
este
trecut
prin
prisma digitală.
“Televiziunea
sau
radioul
au
fost
implementate
după
zeci
de
ani
de
muncă,
în
timp
ce
internetul
sau
computerele
au
fost
integrate
în
mai
puțin
de
un
deceniu,
după
spusele
inventatorului
și
vizionarului
Ray
Kurzweii în cadrul conferinței TED Global din 2005.
2 9
Primele
telefoane
mobile
(pe
care
mulți
le
numesc
azi
„cărămizi”)
nu
erau
numai
voluminoase,
grele
și
dificil
de
utilizat,
dar
aveau
și
o
durată
de
viață
a
bateriei
foarte
scăzută.
De
exemplu,
telefonul
pe
care
Martin
Cooper
(Motorola)
l-a
folosit
în
1973
pentru
a
efectua
primul
apel
telefonic
cu
ajutorul
unui
dispozitiv
fără
fir
avea
mai
mult
de
un
kilogram
(2,5
pounds),
măsura
25,4
centimetri,
iar
bateria
nu
ținea
mai
mult
de
20
de
minute.
Implementarea
telefoanelor
mobile
a
durat
în
jur
de
opt
ani,
în
timp
ce
telefoanele
cu
fir
au
apărut
după
jumătate
de
secol
de
teste
și
cercetări,
susține
Kurzweil.
Procesul
de
revoluționare
tehnologică
a
fost
posibil
tocmai datorită folosirii tehnologiilor de ultimă generație în crearea viitoarelor tehnologii, completează el.”
[19]
Referitor
la
prima
parte
a
acestui
capitol
și
la
evoluția
telefoanelor
mobile,
un
număr
foarte
mic
din
beneficiarii
procesului
tehnologic
nu
dispune
în
ziua
de
azi
de
un
smarthphone.
Acest
dispozitiv
a
devenit
de
la
un
obiect
foarte
practic,
utilizarea
lui
de
bază
fiind
să
comunici
cu
alte
persoanele
aflate
la
distanță,
la
un
lucru
indispensabil
pentru
mulți
dintre
noi,
iar
dacă
considerați
această
afirmație
eronată
supuneți-vă
unui
test,
cât
timp
reușiți
să
petreceți
fără
a
vă
folosi
smarthphone-ul?
Ideea
pe
care
doresc
să
o
evidențiez
este
că
telefonul
mobil s-a transformat dintr-un produs într-un prieten tehnologizat.
Folosirea
tehnologiei
în
viața
de
zi
cu
zi
au
dus,
mai
mult
sau
mai
puțin,
la
reducerea
interacțiunilor
în
societatea
umană,
fiind
mult
mai
ușor
să
suni
pe
cineva,
fie
audio
sau
fie
video,
cu
ideea
de
a
fi
la
curent
cu
viața
respectivului
sau
respectivei.
Oamenii
petrec
mai
mult
timp
în
casă
bucurându-se
de
beneficiile
tehnologiei,
acest lucru fiind după bunul plac al fiecăruia, fie că au sau nu posibilitatea de a socializa cu alte persoane sau nu.
Punctul
culminant
unde
doresc
să
îndrept
acest
subiect
este
momentul
când
dispui
de
tehnologie,
dar
se
dorește
interacțiunea
cu
alte
persoane,
persoane
pe
care
nu
le
cunoști
și
pe
care
în
circumstanțe
normale
nici
nu
o
să
realizezi
acest
lucru.
Să
presupunem
că
într-o
zi
ai
dori
să
mergi
la
o
piesă
de
teatru,
la
un
meci
de
fotbal,
la
o
plimbare
prin
parc,
să
mergi
într-o
expediție
sau
pur
și
simplu
dorești
să
cunoști
persoane
noi
și
nici
unul
dintre
prietenii
sau
prietenele
tale
nu
dorește
sa
te
acompanieze,
sau
le
este
imposibil
din
diferite
motive,
acest
lucru
simbolizând
un
impas.
În
astfel
de
situații
facem
compromisuri
asupra
lucrurilor
ce
ne
face
plăcere
sa
le
facem în deficitul lipsei de companie.
Soluția
ce
o
aduc
în
discuție
pentru
a
trata
această
problemă,
acest
impas,
este
aplicația
mobile
pentru
telefoanele
ce
suportă
sistemul
de
operare
Android,
și
anume
MeetYouUp.
Această
aplicație
presupune
crearea
unui
cont
individual
din
partea
fiecărui
utilizator,
după
care
permite
accesul
la
diferite
tipuri
de
evenimente
3 0
create
de
către
alți
utilizatori.
Evenimentele
pot
fi
situate
pe
orice
ramură
de
interes
(de
exemplu
teatru,
operă,
activități
sportive,
gaming,
petreceri,
etc.),
iar
participarea
la
acestea
fiind
la
latitudinea
utilizatorului.
Astfel,
un
utilizator
ce
folosește
pentru
prima
dată
această
aplicație
nu
trebuie
să
își
facă
probleme
dacă
o
să
aibe
cunoștințe
sau
nu
ce
vor
participa
la
eveniment,
scopul
aplicației
fiind
acela
de
a
încuraja
interacțiunile
între
utilizatori,
de
a
crește
cercurile
de
prieteni
ale
acestora
și
în
același
timp
de
a
satisface
dorințele
de
a-și
petrece
petrece timpul liber în felul său al fiecărui utilizator.
În
viziunea
mea,
principalele
aspecte
îmbunătățite
după
implementarea
și
folosirea
de
către
publicul
larg ale aplicației sunt:
❖
Creșterea numărului de cunoștințe/prieteni ale/ai utilizatorului
❖
Organizarea ușoară de evenimente cu interes comun pentru mai mulți utilizatori
❖
Încurajarea de interacțiunilor între utilizatori în afara aplicației
❖
Mărirea cercului de persoane cu interese comune cu ale utilizatorului
❖
Posibilitatea de a participa la activități noi/diferite
3.2 Descrierea aplicației
În
cadrul
acestui
subcapitol
se
va
dori
prezentarea
a
doua
aspecte,
și
anume,
enunțul
problemei,
specificându-se totodată și funcționalitățile aplicației, și proiectarea aplicației.
3.2.1 Enunțul problemei
Precum
am
menționat
anterior,
scopul
acestei
aplicații
este
de
a
ajuta
utilizatorii
să
găsească
sau
să
creeze evenimente de diferite tipuri pentru timpul liber și să încurajeze interacțiunea dintre aceștia.
3 1
Vom formula în continuare o posibilă cerință a problemei:
Să
se
creeze
o
aplicație
mobile
pentru
sistemul
de
operare
Android
care
să
permită
gestionarea
de
evenimente
create
de
un
user.
Un
user
pentru
a
putea
folosi
aplicația
trebuie
sa
fie
înregistrat
cu
email,
parolă,
nume, o descriere a profilului său, data nașterii, un șir de cuvinte cheie și o poză de profil.
Un
user
poate
crea
evenimente
în
care
să
seteze
numărul
limită
de
persoane
ce
o
sa
participe
sau
în
care
fiecare
participant
trebuie
să
obțină
mai
întâi
acceptul
administratorului
de
eveniment
pentru
a
participa.
Detaliile
oferite
pentru
crearea
unui
eveniment
sunt:
nume,
descriere,
locație,
oră,
cuvinte
cheie
și
o
imaginea
de
copertă
a
evenimentului.
Un
user
trebuie
să
aibe
acces
la
evenimentele
create
de
acesta,
cât
și
la
evenimentele
la care dorește să participe.
Pe
lângă
crearea
unui
eveniment,
un
user
poate
să
caute
evenimente
după
cuvinte
cheie
sau
după
o
anumită locație, evenimente la care dacă dorește să poată participa.
Pentru
evenimentele
la
care
se
dorește
participarea,
un
user
poate
lăsa
un
comentariu
public,
afișat
în
lista de comentarii a evenimentului.
O
altă
funcționalitate
este
crearea
de
grupuri.
Un
grup
are
următoarele
caracteristici:
nume,
descriere,
număr
de
membri
și
o
imagine
de
copertă.
Orice
grup
trebuie
să
suporte
funcționalitatea
de
adăugare
a
altor
useri în grup. În cadrul unui grup se pot distribui evenimente de către userii membrii.
Pe
lângă
cele
menționate
mai
sus,
un
user
este
capabil
să
își
schimbe
parola
contului
prin
resetarea
acesteia via email și să își editeze informațiile referitoare asupra profilului său.
3.2.2 Proiectarea aplicației
3.2.2.1 Diagrama de cazuri de utilizare
O
diagramă
a
cazurilor
de
utilizare
se
referă
la
o
diagramă
comportamentală
folosită
să
descrie
un
set
de
acțiuni
(cazuri
de
utilizare)
pe
care
un
sistem
le
poate
îndeplini
în
colaborare
cu
unul
sau
mai
mulți
useri
externi sistemului, aceștia fiind numiți actori.
3 2
Figura 3.2.2.1.1
În
Figura
3.2.2.1.1
se
poate
observa
diagrama
cazurilor
de
utilizare
posibile
unui
user
în
cadrul
aplicației
MeetYouUp.
3.2.2.2 Diagrama de secvență
O
diagramă
de
secvențe
arată
interacțiunile
obiectului
aranjate
în
secvența
de
timp.
Acesta
descrie
obiectele
și
clasele
implicate
în
scenariu
și
secvența
de
mesaje
schimbate
între
obiectele
necesare
pentru
a
3 3
realiza
funcționalitatea
scenariului.
În
Figura
3.2.2.2.1
se
poate
observa
diagrama
de
secvență
a
funcționalității
de creare grup.
Figura 3.2.2.2.1
3.2.2.3 Șablone de proiectare
“Fiecare
șablon
descrie
o
problemă
care
apare
din
nou
și
din
nou
în
mediul
nostru,
și
apoi
descrie
nucleul
soluției
problemei
acesteia,
în
așa
fel
încât
poți
folosi
soluția
de
un
milion
de
ori,
fără
a
mai
face
același
lucru de două ori”.
[20]
În general un șablon de proiectare are 4 elemente esențiale:
❖
Numele
șablonului
este
considerat
o
resursă
care
poate
fi
folosită
să
descrie
o
problemă
de
proiectare,
soluțiile acesteia și în același timp consecințele acesteia în 1-2 cuvinte.
❖
Problema
descrie când trebuie aplicat un șablon și contextul acestuia.
❖
Soluția
descrie
elementele
care
formează
proiectarea,
relațiile,
responsabilitățile
și
colaborările
dintre
acestea.
Soluția
nu
descrie
o
proiectare
concretă
sau
o
implementare
particulară,
deoarece
un
șablon
este mai mult ca un model care poate fi aplicat în diferite situații.
3 4
❖
Consecințele
sunt
rezultatele
și
compromisurile
aplicării
șablonului.
Deși
consecințele
sunt
deseori
nerealizate
atunci
când
descriem
deciziile
de
proiectare,
acestea
sunt
esențiale
pentru
evaluarea
alternativelor de proiectare și pentru înțelegerea costurilor și beneficiilor aplicării șablonului.
În
continuare
se
va
discuta
despre
un
șablon
de
proiectare
folosit
în
aplicația
MeetYouUp,
și
anume
șablonul de proiectare decorator.
Șablonul
de
proiectare
decorator
“atașează
responsabilități
adiționale
unui
obiect
în
mod
dinamic.
Decoratoarele
oferă
o
alternativă
flexibilă
la
subclasarea
pentru
extinderea
funcționalității”
[20]
.
Acestea
mai
sunt
cunoscute
și
sub
denumirea
de
“Wrapper”.
În
unele
situații
se
dorește
adăugarea
de
responsabilități
unui
obiect,
nu
întregii
clase
de
obiecte.
Un
set
de
instrumente
de
interfață
grafică,
de
exemplu,
vă
permite
să
adăugați
proprietăți pentru orice componentă a interfeței utilizator.
Un
mod
de
a
adăuga
responsabilități
este
moștenirea.
Moștenind
o
proprietate
dintr-o
altă
clasă
atașează
această
proprietate
tuturor
instanțelor
subclaselor.
Acest
lucru
este
inflexibil
deoarece
alegerea
proprietății este realizată static, clientul neputând controla când și cum să fie atașată respectiva proprietate.
O
abordare
mai
flexibilă
este
să
anexezi
componenta
altui
obiect
care
adaugă
proprietatea.
Obiectul
anexat
se
numește
decorator.
Decoratorul
este
conform
cu
interfața
componentei
pe
care
o
decorează,
astfel
încât
prezența
sa
să
fie
transparentă
pentru
clienții
componentei.
Transparența
permite
decorarea
obiectelor
decorator în mod recursiv, permițând astfel un număr nelimitat de responsabilități adăugate.
În
aplicația
MeetYouUp
s-a
folosit
acest
șablon
de
proiectare
în
cadrul
creării
de
evenimente;
evenimentul
de
bază
fiind
unul
care
permite
participarea
celorlalți
useri
doar
prin
invitația
administratorului
evenimentului,
iar
apoi
acest
obiect
putând
fi
decorat
astfel
încât
să
fie
distribuit
în
cadrul
grupurilor
sau
pentru
ca
un
user
ce
dorește
a
participa
să
fie
necesar
acceptul
administratorului
de
eveniment
sau
respectându-se
un
anumit
număr
limită
de
participanți.
Aceste
responsabilități
se
adaugă
în
mod
dinamic
la
crearea
de
eveniment
din
partea
user-ului.
În
Figura
3.2.2.2.1
se
poate
observa
diagrama
de
clase
care
formează
modelul
de
proiectare
decorator:
3 5
Figura 3.2.2.2.1
3.3 Dezvoltarea aplicației
În
cadrul
acestui
subcapitol
se
vor
prezenta
aspecte
din
implementarea
unor
funcționalități
ale
aplicației MeetYouUp, exemplificându-se și parți cheie ale codului sursă.
3.3.1 Login
Funcționalitatea
de
login
a
aplicației
este
realizată
folosind
FirebaseAuth,
unul
dintre
serviciile
Firebase
amintite mai sus, pe baza de email și parolă a utilizatorului.
3 6
Figura 3.3.1.1
Codul
sursă
se
poate
observa
în
Figura
3.3.1.1,
unde
funcția
loginUser(String
email,
String
password)
este
chemată
la
apăsarea
butonului
pentru
login.
Se
verifică
ca
niciunul
din
câmpurile
de
email
și
parolă
să
nu
fi
fost
omis
completării
și
apoi
se
apelează
o
metodă
a
obiectului
FirebaseAuth
pentru
realizarea
operației
de
login
prin email și parolă.
3.3.2 Setare informații profil
Funcționaliatea
de
a
completa
datele
necesare
profilului
și
salvarea
acestora
în
baza
de
date
este
realizată
cu
ajutorul
FirebaseDatabase
(Figura
3.3.2.1);
încărcarea
pozei
de
profil
a
utilizatorului
într-un
mediu
extern
se
realizează
prin
FirebaseStorage
(Figura
3.3.2.2),
iar
aducerea
acesteia
din
mediul
extern
și
încărcarea
într-un ImageView se realizează cu ajutorul librăriei Picasso (Figura 3.3.2.2).
Pentru
a
salva
un
obiect
în
baza
de
date
avem
nevoie
de
o
referință
către
exact
nodul
JSON
dorit,
deoarece
baza
de
date
FirebaseDatabase
este
o
bază
de
date
NoSQL,
datele
fiind
stocate
sub
forma
unui
JSON.
Printre
primele
lucruri
din
funcția
prezentată
se
verifică
dacă
există
un
user
autentificat,
deoarece
dacă
nu,
nu
este
posibilă
scrierea/citirea
datelor
din
baza
de
date.
Apoi
se
creează
un
profil
pe
baza
datelor
oferite
de
utilizator și obiectul creat se adaugă în baza de date.
Structura
de
depozitare
a
fișierelor
prin
intermediul
FirebaseStorage
este
tot
sub
forma
unui
JSON.
În
cadrul
aplicației
se
stabilește
nodul
unde
va
urma
să
fie
încărcată
imaginea,
iar
apoi
se
obține
URL-ul
de
3 7
download
care
este
folosit
pentru
a
extrage
imaginea
și
a
o
încărca
într-un
ImageView
prin
intermediul
bibliotecii Picasso.
Figura 3.3.2.1
Figura 3.3.2.2
3.3.3 Căutare persoane pentru adăugarea în grup
Aceasta
funcționalitate
presupune
căutarea
de
alți
useri
ce
folosesc
aplicația
pentru
adăugarea
acestora
într-un
grup
nou
creat.
Se
aduc
din
baza
de
date
toate
profilurile
al
căror
nume
începe
cu
o
anumită
construcție
3 8
de
caractere
introdusă
de
către
utilizatorul
ce
face
adăugarea.
Apoi
prin
intermediul
FirebaseUI
se
construiește
un
obiect
de
tipul
FirebaseRecyclerAdapter
pentru
un
recyclerview
din
cadrul
aplicației
ce
va
prelucra
lista
de
utilizatori
ce
pot
fi
adăugați.
În
cadrul
acestui
adapter
se
stabilesc
detaliile
referitoare
la
adăugarea
unui
utilizator
în
grup,
și
anume
modificarea
vizibilității
unui
ImageButton
corespunzător
fiecărui
utilizator
ce
poate
fi
adăugat. Codul sursă poate fi vizualizat în Figura 3.3.3.1.
Figura 3.3.3.1
3.4 Manual de utilizare
În
cadrul
acestui
subcapitol
se
va
prezenta
modul
de
utilizare
al
unora
dintre
funcționalitățile
aplicației,
cum
ar
fi
înregistrarea
unui
nou
utilizator,
login,
editare
profil
și
creare
grup,
cu
scopul
de
a
ajuta
viitorii
utilizatori.
3 9
Figura
3.4.1
reprezintă
ecranul
deschis
de
aplicație
la
apăsarea
butonului
“Sign
up”.
Aici
se
crează
un
nou
cont
cu
o
adresă
de
email
validă
și
o
parolă
compusă
din
minim
6
caractere.
Apoi,
după
cum
urmează
în
Figura
3.4.2,
un
utilizator
urmează
să
își
completeze
datele
personale
ce
compun
profilul
utilizatorului.
După
completarea acestui pas, utilizatorul v-a fi redirecționat spre ecranul principal al aplicației.
Figura 3.4.1
Figura 3.4.2
Figura
3.4.3
reprezintă
funcționalitatea
de
login,
unde
un
utilizator
își
introduce
adresa
de
email
și
parola introduse în cadrul operației de înregistrare.
4 0
Figura 3.4.3
Figura 3.4.4
Precum
în
Figura
3.4.4
un
utilizator
poate
accesa
funcționalitatea
de
editare
a
datelor
profilului
său,
realizând modificările dorite și apoi salvându-le.
Pentru
a
crea
un
grup,
un
utilizator
v-a
selecta
din
ecranul
principal
opțiunea
de
vizualizare
a
grupurilor
(Figura
3.4.5),
“My
groups”,
iar
apoi
v-a
selecta
opțiunea
de
creare
grup
nou
(Figura
3.4.6),
“CREATE
NEW
GROUP”.
Utilizatorul
v-a
introduce
datele
necesare
și
apoi
v-a
apăsa
butonul
de
“CONTINUE”
(Figura
3.4.7)
care
îl
va
redirecționa
spre
un
nou
ecran
unde
este
la
latitudinea
acestuia
dacă
să
invite
sau
nu
acum
alți
utilizatori
în
grup.
Pentru
a
invita
un
alt
utilizator
în
grup,
trebuie
introdus
numele
acestuia
în
spațiul
destinat
căutării
și
apăsat
butonul
de
search
(Figura
3.4.8),
iar
apoi
în
dreptul
fiecărui
utilizator
se
apasă
pictograma
de
adăugare.
Terminarea
procesului
de
creare
grup
se
realizează
prin
apăsarea
butonului
“FINISH
ADDING
MEMBERS”
(Figura
3.4.8).
4 1
Figura 3.4.5
Figura 3.4.6
Figura 3.4.7
Figura 3.4.8
4 2
Capitolul 4
Concluzii
Scopul
acestei
lucrări
a
fost
de
a
crea
și
a
a
evalua
o
aplicație
mobile
care
aduce
în
prim
plan
o
soluție
pentru
o
problemă
întâlnită
în
viața
de
zi
cu
zi
a
posibililor
săi
utilizatori,
și
anume
crearea,
gestionarea
și
aducerea
la
cunoștință
a
altor
persoane
cu
interese
comune
de
evenimente/activități
în
timpul
liber.
Perfecționarea
unui
sistem,
indiferent
de
natura
acestuia,
nu
poate
fi
concepută
în
afara
utilizărilor
unor
metode
și
tehnologii
moderne,
de
aceea
s-a
folosit
platforma
de
dezvoltare
Android,
având
anumite
caracteristici
mai
convenabile,
de
la
caracterul
său
open-source
până
la
numărul
foarte
mare
de
utilizatori,
împreună
cu
platforma
Firebase
care
constituie
partea
de
server
a
aplicației.
În
cadrul
celei
din
urmă
s-au
folosit
servicii
de
stocare
a
datelor
utilizatorilor
într-o
bază
de
date
NoSQL
actualizată
în
timp
real,
de
stocare
a
imaginilor
afișate
în
cadrul
aplicației,
extragerea
acestora
din
spațiul
de
stocare
extern
realizându-se
cu
ajutorul
librăriei
Picasso,
și
servicii
de autentificare a utilizatorilor prin intermediul unui email și a unei parole.
Din
punctul
meu
de
vedere,
consider
că
această
aplicație
și-a
îndeplinit
scopul,
punând
la
latitudinea
utilizatorilor
săi
modalități
de
gestionare
a
problemelor
întâmpinate
în
cadrul
realizării
sau
participării
la
diferite
activități
sau
evenimente
din
timpul
acestora
liber,
încurajând
interacțiunile
dintre
aceștia
și
în
lumea
reală,
nu
doar cea digitală, fiind ușor de folosit chiar și pentru utilizatori neexperimentați.
Totodată,
această
soluție
prezentă
de
mine
nu
consider
a
fi
o
soluție
perfectă,
având
anumite
imperfecțiuni,
de
exemplu
un
număr
mare
de
aplicații
similare
deja
existente
pe
piață,
existența
altor
platforme
al
căror
scop
primar
să
nu
fie
soluționarea
acestei
probleme,
dar
care
sa
atingă
anumite
aspecte
ale
problemei
prezentate de mine, suficiente din partea utilizatorilor acestora (de exemplu Facebook, Whatsapp, etc.)
4 3
În
ceea
ce
privește
extinderile
viitoare
legate
de
aplicația
MeetYouUp
se
mai
pot
adăuga
funcționalități
cum
ar
fi:
un
chat
între
utilizatorii
acesteia
pentru
a
facilita
comunicarea,
crearea
de
notificări
din
partea
aplicației
care
să
prezinte
utilizatorului
diferite
aspecte
legate
de
evenimentele
la
care
urmează
sa
participe
sau
diferite
discuții
prezente
în
grupuri
și
poziționarea
și
afișarea
în
timp
real
a
utilizatorilor
în
cadrul
unei
hărți
(Google Maps) pentru a facilita întâlnirile din lumea reală între aceștia.
Unele
din
provocările
impuse
de
realizarea
acestei
lucrări
au
reprezentat
depășirea
anumitor
zone
de
confort,
cunoașterea,
înțelegerea
și
implementarea
de
tehnologii
noi,
aprofundarea
anumitor
cunoștințe
și
privirea din punctul de vedere al unui public țintă considerabil de mare.
În
concluzie,
aplicația
dezvoltată
și-a
atins
scopul,
lăsând
loc
de
viitoare
aspecte
ce
pot
fi
implementate
pentru a crește aplicabilitatea acesteia și cu scopul de a îmbunătății experiența utilizatorilor săi.
4 4
Capitolul 5
Bibliografie
[1] – Mc Ferran Damien: “Best custom ROMs for the Samsung Galaxy S2”, CNET, CBS Iteractive, 17 Aprilie 2012:
https://web.archive.org/web/20120419194709/http://reviews.cnet.co.uk/mobile-apps/best-custom-roms-for-the
-samsung-galaxy-s2-50007658
[2]
–
Russakovskii
Artem:
“Custom
ROMs
For
Android
Explained
–
Here
Is
Why
You
Want
Them”,
Android
Police,
1 Mai 2010:
https://www.androidpolice.com/2010/05/01/custom-roms-for-android-explained-and-why-you-want-them/
[3] – Wikipedia The Free Encyclopedia, “Android (operating system)” :
https://en.wikipedia.org/wiki/Android_(operating_system)
[4] – Android Source: “Security”:
https://source.android.com/security/
[5] – Alan Henry, “How Secure Is Android, Really?”, 16 Octombrie 2013:
https://lifehacker.com/how-secure-is-android-really-1446328680
[6] – Renée Lynn Midrack, “What is a Third-Party App?”, 9 Decembrie 2017:
https://www.lifewire.com/what-is-a-third-party-app-4154068
[7] – Andrea López, “Lo que necesitas saber sobre los nuevos botones de Facebook”, 24 Februarie 2016:
http://tecreview.itesm.mx/lo-que-necesitas-saber-sobre-los-nuevos-botones-de-facebook/
4 5
[8] – Cella Lao Rousseau, “How to use Snapchat on Android”, 3 Iulie 2016:
https://www.androidcentral.com/how-use-snapchat-android
[9] – Authored by a Symantec employee, “The Risks of Third Party App Stores”:
https://us.norton.com/internetsecurity-mobile-the-risks-of-third-party-app-stores.html
[10] – Jeff Dunn, “
There’s no hope of anyone catching up to Android and iOS
”, 22 August 2016:
http://www.businessinsider.com/smartphone-market-share-android-ios-windows-blackberry-2016-8
[11] – John Callaham, “The history of Android OS: its name, origin and more”, 26 Martie 2018:
https://www.androidauthority.com/history-android-os-name-789433/
[12] – Nicolas Colin, “Infography on Android logo history”, 17 Noiembrie 2014:
https://yunmai.wordpress.com/tag/android-logo-history/
[13] – GeekyAnts, “Introduction to Firebase”, 28 Decembrie 2017 (informații preluate în 29 Mai 2018):
https://hackernoon.com/introduction-to-firebase-218a23186cd7
[14] – Yasin Çetiner, “Firebase Services”, 18 August 2016 (informații preluate în 31 Mai 2018):
https://www.slideshare.net/Yasinetiner/firebase-services
[15]
–
Pablo
A.
Martínez,
“Lessons
learnt
(the
hard
way)
using
Firebase
RealTime
Database”,
24
Februarie
2018
(informații preluate în 31 Mai 2018):
https://pamartinezandres.com/lessons-learnt-the-hard-way-using-firebase-realtime-database-c609b52b9afb
[16] – Picasso website (informații preluate în 10 Iunie 2018):
http://square.github.io/picasso/
[17]
–
Anshul
Jain,
“Decoding
Picasso
library-
one
image
at
a
time.”,
9
Ianuarie
2018
(nformații
preluate
în
10
Iunie 2018):
https://medium.com/mindorks/decoding-picasso-library-one-image-at-a-time-c28e97e28e92
[18]
–
James
Burke,
Jules
Bergman,
Isaac
Asimov:
“The
impact
of
science
on
society”,
University
Press
of
the
Pacific, 1 Iunie 2005
4 6
[19]
–
Semnele
Timpului,
“Cum
ne-a
schimbat
evoluția
tehnologică
viața”,
12
Aprilie
2013
(informații
preluate
în
10 Iunie 2018):
https://semneletimpului.ro/stiinta/tehnologie/cum-ne-a-schimbat-evolutia-tehnologica-viata.html
[20]
–
Erich
Gramma,
Richard
Helm,
Ralph
Johnson,
John
Vlissides:
“Design
Patterns:
Elements
of
Reusable
Object-Oriented Software”, Addison-Wesley Professional, 10 Noiembrie 1994
4 7
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicație Android pentru socializare – MeetYouUp – Coordonator științific Conferențiar universitar dr. Virginia Niculescu Absolvent Matea Andrei… [606283] (ID: 606283)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
