diploma project: friloc - retea de socializare bazata pe geolocalizare

49
Universitatea Politehnicadin Bucureşti Facultatea de Automatică şi Calculatoare, Catedra de Calculatoare PROIECT DE DIPLOMĂ Reţea de socializare bazată pe geolocalizare Absolvent: Vlad-Ştefan Petre [email protected] Coordonatori Ştiinţifici: Prof. Dr. Ing. Nicolae Ţăpuş As. Drd. Ing. Alexandru Olteanu [email protected] [email protected] Bucureşti, România Iulie 2011

Upload: vlad-petre

Post on 07-Nov-2014

1.795 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Universitatea „Politehnica” din Bucureşti

Facultatea de Automatică şi Calculatoare, Catedra de Calculatoare

PROIECT DE DIPLOMĂ

Reţea de socializare bazată pe geolocalizare

Absolvent:

Vlad-Ştefan Petre

[email protected]

Coordonatori Ştiinţifici:

Prof. Dr. Ing. Nicolae Ţăpuş As. Drd. Ing. Alexandru Olteanu

[email protected] [email protected]

Bucureşti, România

Iulie 2011

Page 2: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Abstract

Telefoanele mobile au apărut din nevoia oamenilor de a fi mereu în contact

unii cu alţii. Pe măsură ce capabilităţile acestor dispozitive au evoluat,

oamenii au început să folosească tot mai mult, prin intermediul aplicaţiilor,

servicii de socializare online precum Facebook™ sau Twitter™ pentru a

comunica. Lucrarea de faţă îşi propune să prezinte o evoluţie firească a

acestui tip de servicii: o reţea de socializare bazată pe geolocalizare în timp

real adresată în primul rând celor ce doresc să fie în contact permanent cu

cei apropiaţi, denumită în continuare FriLoc.

Page 3: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

ii

Cuprinsul lucrării

1 Introducere .......................................................................................................... 1

1.1 Problema abordată .......................................................................................................... 2

1.2 Scopul proiectului .......................................................................................................... 2

1.3 Conţinutul lucrării .......................................................................................................... 3

2 Noţiuni preliminare ............................................................................................. 4

2.1 Platforma Android .......................................................................................................... 4

2.1.1 Scurt istoric .......................................................................................................... 4 2.1.2 Ce este Android? .................................................................................................. 4

2.1.3 Arhitectura platformei Android ............................................................................ 5

2.2 Aplicaţiile Android ......................................................................................................... 7

2.2.1 Componentele unei aplicaţii ................................................................................. 8 2.2.1.1 Activităţile ..................................................................................................... 9 2.2.1.2 Serviciile ....................................................................................................... 9

2.2.1.3 Furnizorii de conținut .................................................................................... 9 2.2.1.4 Receptorii de difuzare ................................................................................... 9

2.3 Reţeaua Facebook ........................................................................................................ 10

2.3.1 Scurt istoric ........................................................................................................ 10 2.3.2 Ce este Facebook? .............................................................................................. 11

2.3.2.1 Chat ............................................................................................................. 11 2.3.2.2 Credite ......................................................................................................... 11 2.3.2.3 Oferte .......................................................................................................... 11

2.3.2.4 Mesaje şi căsuţa poştală .............................................................................. 11 2.3.2.5 Reţele şi grupurile de prieteni ..................................................................... 12

2.3.2.6 Peretele ........................................................................................................ 12 2.3.2.7 Fluxul de ştiri .............................................................................................. 12

2.3.2.8 Notificări ..................................................................................................... 12 2.3.2.9 Evenimente ................................................................................................. 12 2.3.2.10 Locuri .......................................................................................................... 12

2.3.3 Platforma Facebook ............................................................................................ 13

3 Analiza principalelor soluţii similare existente .............................................. 14

3.1 Facebook Places ........................................................................................................... 14

3.2 Foursquare .................................................................................................................... 14

3.3 Gowalla ........................................................................................................................ 15

3.4 Google Latitude ............................................................................................................ 15

3.5 SCVNGR ...................................................................................................................... 16

3.6 Geomium ...................................................................................................................... 16

3.7 Urbo .............................................................................................................................. 17

4 Descrierea FriLoc ............................................................................................. 18

4.1 Aplicaţia client ............................................................................................................. 18

4.2 Interfaţa de autentificare ............................................................................................... 18

4.3 Ecranul principal .......................................................................................................... 19

4.4 Serviciul din fundal ...................................................................................................... 21

Page 4: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

iii

4.5 Ecranul cu informaţii despre FriLoc ............................................................................ 21

4.6 Ecranul cu setări ........................................................................................................... 22

4.7 Ecranul cu notificări ..................................................................................................... 23

4.8 Ecranul cu fluxul de ştiri .............................................................................................. 24

4.9 Ecranul de tip hartă ...................................................................................................... 24

4.10 Ecranul cu alerte pe locaţie .......................................................................................... 25

4.11 Ecranul cu locaţiile de interes ...................................................................................... 26

4.12 Ecranul cu prieteni ....................................................................................................... 27

4.13 Ecranul cu evenimente ................................................................................................. 28

5 Proiectare şi implementare .............................................................................. 30

5.1 Arhitectura platformei .................................................................................................. 30

5.2 Interfaţa cu Platforma Facebook .................................................................................. 31

5.2.1 Graph API .......................................................................................................... 31

5.2.2 Autentificarea în platforma Facebook ................................................................ 32 5.2.3 Exemple de cereri către API-ul Facebook .......................................................... 33 5.2.4 Utilizatori de test ................................................................................................ 34

5.3 Serviciul web ................................................................................................................ 35

5.4 Aplicaţia client ............................................................................................................. 36

6 Testare şi evaluare ........................................................................................... 38

7 Concluzii şi posibilităţi de extindere ............................................................... 40

9 Bibliografie ........................................................................................................ 41

Page 5: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

iv

Listă de figuri

Figura 1: Ce este Android. ......................................................................................................... 5

Figura 2: Arhitectura platformei Android. ................................................................................. 5

Figura 3: Ecranul de autentificare ............................................................................................ 19

Figura 4: Ecranul principal ....................................................................................................... 20

Figura 5: Serviciul şi interfaţa grafică ...................................................................................... 21

Figura 6: Ecranul cu informaţii despre FriLoc ......................................................................... 22

Figura 7: Ecranul cu setări ....................................................................................................... 22

Figura 8: Ecranul cu notificări şi ecranul cu fluxul de ştiri ...................................................... 23

Figura 9: Ecranul de tip hartă ................................................................................................... 24

Figura 10: Ecranul cu alerte pe locaţie ..................................................................................... 25

Figura 11: Ecranul cu locaţii de interes .................................................................................... 26

Figura 12: Ecranul cu prieteni .................................................................................................. 27

Figura 13: Ecranul cu evenimente ............................................................................................ 29

Figura 14: Diagrama de arhitectură .......................................................................................... 30

Figura 15: Introspecţia obiectelor Facebook ............................................................................ 32

Figura 16: Permisiuni de acces în platforma Facebook ........................................................... 33

Figura 17: Publicarea unui mesaj pe pagina de profil a unui utilizator Facebook ................... 34

Figura 18: Iniţierea unei cereri de creare a unui cont de test Facebook ................................... 34

Figura 19: Exemplu de răspuns în urma creării unui cont de test Facebook............................ 35

Figura 20: Activarea modulului RewriteEngine în Apache ..................................................... 35

Figura 21: Permisiuni necesare aplicaţiei Android .................................................................. 37

Figura 22: Perspectiva DDMS din mediul de dezvoltare Eclipse ............................................ 38

Figura 23: Instrumente de testare disponibile în Android ........................................................ 39

Figura 24: Sigla FriLoc ............................................................................................................ 40

Page 6: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

v

Notaţii şi abrevieri

FriLoc Numele proiectului propus în lucrarea de faţă.

GPS Global Positioning System Sistem de Poziționare Globală

Este un sistem global de navigație prin satelit și unde radio.

POI Point of Interest Punct de Interes

Este un punct specific unei locaţii geografice pe care cineva îl poate găsi ca

fiind util sau interesant.

Georeminder Alertă specifică unei anumite locaţii geografice. Este utilă în momentul în

care utilizatorul doreşte să i se reamintească anumite informaţii specifice

zonei în care se află.

API Application Programming Interface

Este vorba despre interfața dintre programe externe și un sistem sau o

platformă, care stabilește în amănunt modul în care programele externe pot

accesa (apela) serviciile sistemului sau a platformei respective.

Startup Startup este termenul prin care sunt definite companiile aflate în primii doi

ani de la înfiinţare.

REST Representational State Transfer Transfer Reprezentat prin Stări

HTTPS Hypertext Transfer Protocol Secure

Reprezintă protocolul HTTP încapsulat într-un flux SSL/TLS cu scopul de

a se oferi o identificare criptată şi sigură la un server.

SSL Secure Sockets Layer

TLS Transport Layer Security

SSL/TLS sunt protocoale criptografice ce permit comunicaţii sigure pe

Internet.

URL Uniform Resource Locator

Adresă uniformă pentru localizarea resurselor.

JSON JavaScript Object Notation

Este un format text de reprezentare și interschimb de date între aplicații

informatice, inteligibil pentru oameni, utilizat pentru reprezentarea

obiectelor și a altor structuri de date,folosit în special pentru a transmite

date prin rețea.

Page 7: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

1

1 Introducere

În ultimii ani, Internetul a cunoscut o creştere exponenţială la o scară globală. Acest fapt a

condus omenirea către o nouă eră, o eră a informaţiei, transformând astfel societatea umană

într-o societate informaţională. Odată cu această evoluţie, reţeaua World Wide Web a

cunoscut şi ea o transformare firească, o trecere de la Web 1.0 (Web-ul bazat pe hyperlink-

uri) la Web 2.0 (Web-ul social).

Aplicaţiile şi site-urile Web 2.0 au devenit adevărate platforme de colaborare, bazate pe

comunităţi, unde utilizatorii nu mai sunt doar simpli consumatori de conţinut, ci au devenit

chiar producători de conţinut. De asemenea, Web-ul 2.0 a dus la apariţia unor noi platforme

specifice de comunicare între oameni, platforme care se adresează în mod special relaţiilor

interumane personale (prieteniilor). Astfel au apărut reţelele de socializare online -

instrumente cu ajutorul cărora oamenii, deşi aflaţi la distanţe geografice considerabile, pot să

continue să comunice facil cu apropiaţii lor, pot să facă schimb de impresii, sau să se menţină

la curent cu ultimele noutăţi de acasă.

Globalizarea ne forţează să fim mai rapizi, să căpătăm mobilitate şi să călătorim mai mult.

Acest lucru a condus către o dezvoltare tehnologică accelerată a dispozitivelor mobile (laptop-

uri, tablete, telefoane mobile inteligente), de care am ajuns să fim tot mai dependenţi în viaţa

de zi cu zi, atât pe plan profesional, cât şi pe plan personal.

Odată cu expansiunea Internetului, cu dezvoltarea tehnologică a dispozitivelor mobile şi a

reţelelor operatorilor de telefonie mobilă, precum şi cu creşterea tot mai mare a numărului de

utilizatori ai reţelelor de socializare online [1], acestea din urmă au început să fie tot mai des

accesate de pe telefoane mobile inteligente conectate la Internet [2].

Însă, tot acest melanj de tehnologie, socializare, Internet şi mobilitate a condus către apariţia

unei noi forme de reţea de socializare. Este vorba de reţelele de socializare online, bazate pe

geolocaţia utilizatorilor, dedicate spre a fi accesate prin intermediul terminalelor mobile

inteligente, dotate cu senzori de localizare globala (GPS - Global Positioning System) şi acces

la Internet.

Conform unui raport publicat de ComScore pe data de 12 mai 2011, aproximativ unul din

cinci utilizatori de telefoane inteligente (engleză: smartphones) folosesc servicii bazate pe

geolocalizare de tipul checkin, în genul Foursquare sau Gowalla. Tot conform acestui raport,

aproximativ 16.7 milioane de utilizatori de telefonie mobilă au folosit acest tip de servicii în

martie 2011. [3]

Page 8: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

2

1.1 Problema abordată

Majoritatea reţelelor de socializare online (inclusiv cele bazate pe geolocaţia utilizatorilor) din

ziua de astăzi sunt orientate pe amiciţiile dintre utilizatori, pe atingerea unui număr cât mai

mare de legături superficiale între utilizatori, şi nu pe cultivarea legăturile strânse dintre

aceştia (cum sunt prieteniile adevărate). De asemenea, principalele reţele de socializare

actuale încurajează utilizatorul să partajeze cât mai multe informaţii cu cât mai mulţi

utilizatori (de multe ori, fiind vorba de prieteni pe care utilizatorul nici măcar nu îi cunoaşte

personal).

De asemenea, majoritatea reţelelor de socializare online bazate pe geolocaţia utilizatorilor îi

încurajează pe aceştia să îşi facă publică prezenţa într-un anumit punct de interes (muzeu,

cafenea, etc.) la un anumit moment de timp (checkin). Problema apare în momentul în care

informaţia respectivă devine expirată. Spre exemplu, după o oră de stat într-o cafenea, deşi

utilizatorul părăseşte locaţia respectivă, informaţia despre prezenţa sa în acel punct de interes

rămâne înscrisă, deşi nu (mai) interesează pe nimeni.

1.2 Scopul proiectului

Prin lucrarea de faţă, doresc să abordez problema diferit. Astfel, lucrarea propune dezvoltarea

unei reţele de socializare online bazată pe geolocalizare în timp real şi dedicată accesării de pe

un dispozitiv mobil dotat cu sistem de operare Android: FriLoc. Soluţia este puternic orientată

pe prieteniile strâns legate şi apropiate dintre utilizatori, acest lucru însemnând că locaţia în

timp real a utilizatorului va fi disponibilă doar pentru câţiva cei mai buni prieteni ai acestuia.

De asemenea, soluţia mai propune ca utilizatorii înscrişi în această reţea să aibă posibilitatea

de a interacţiona cu prietenii lor prin mesaje, de a consulta locaţia curentă a acestora pe hartă,

de a crea evenimente destinate grupului respectiv de prieteni, de a consulta punctele de interes

din zona în care se află aceştia la momentul respectiv, precum şi de a plasa georeminder-e pe

hartă.

În fine, soluţia de faţă mai propune şi integrarea cu cea mai mare reţea de socializare online la

ora actuală: Facebook [1]. Scopul este ca un nou utilizator să nu fie nevoit să îşi creeze un

cont în această nouă reţea, ci să se folosească de unul actual, deja populat cu informaţii

precum nume sau adresă de e-mail, pe baza căruia să se facă autentificarea. De asemenea,

integrarea cu Facebook implică şi alte avantaje, cum ar fi: posibilitatea de a selecta prietenii

cei mai apropiaţi cu care utilizatorul va interacţiona în reţeaua FriLoc din lista de prieteni pe

care acesta îi are în reţeaua Facebook, promovarea unui eveniment creat în reţeaua FriLoc pe

reţeaua Facebook, şi nu în ultimul rând, popularea bazei de date cu locaţii de interes FriLoc pe

baza informaţiilor culese din reţeaua Facebook.

Page 9: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

3

1.3 Conţinutul lucrării

Lucrarea de faţă este împărţită în 7 părţi, după cum urmează:

Capitolul 1: Introducere

Capitolul 1 oferă o prezentarea generală a proiectului, a problemei abordate precum şi a

scopului acestuia.

Capitolul 2: Noţiuni preliminare

Capitolul 2 prezintă informaţii generale şi noţiuni teoretice cu privire la dezvoltarea

aplicaţiilor pe platforma Android, precum şi a API-ului reţelei Facebook. De asemenea,

capitolul mai prezintă şi o scurtă istorie a celor două.

Capitolul 3: Analiza soluţiilor existente

Capitolul 3 propune un studiu detaliat cu privire la principalele soluţii similare existente

pe piaţă la ora actuală. O evaluare a acestor soluţii similare existente scoate în evidenţă

aspecte ce pot fi îmbunătăţite, motivând astfel prezenta lucrare.

Capitolul 4: Descrierea reţelei FriLoc

Capitolul 4 oferă o scurtă introducere şi o descriere a reţelei de socializare online

FriLoc. De asemenea, acest capitol oferă şi o descriere a aplicaţiei Android din punctul

de vedere al utilizatorului, bazată pe scenarii de utilizare.

Capitolul 5: Proiectare şi implementare

Capitolul 5 prezintă detalii cu privire la arhitectura reţelei şi implementarea clientului de

Android, precum şi a serviciului web.

Capitolul 6: Testare şi evaluare

Capitolul 6 oferă câteva aprecieri legate de performanţă.

Capitolul 7: Concluzii şi posibilităţi de extindere

Capitolul 7 încheie această lucrare, prezentând un scurt rezumat însoţit de concluzii şi

câteva posibilităţi de extindere.

Page 10: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

4

2 Noţiuni preliminare

În acest capitol doresc să introduc câteva aspecte generale cu privire la platforma Android şi

să detaliez sumar procesul de scriere de aplicaţii pentru această platformă. De asemenea, tot în

acest capitol doresc să prezint şi câteva concepte generale legate de accesarea API-ului reţelei

Facebook.

2.1 Platforma Android

În acest subcapitol doresc să ofer câteva informaţii de bază legate de platforma Android,

informaţii menite pe de-o parte să familiarizeze cititorul cu această platformă, iar pe de altă

parte să scoată în evidenţă avantajele platformei datorate în mare parte flexibilităţii pe care o

oferă, motivând astfel alegerea făcută.

2.1.1 Scurt istoric

În anul 2003, Andy Rubin, Rich Miner, Nick Sears şi Chris White pun bazele unui startup,

denumit Android, Inc. Cei 3 îşi propuseseră să dezvolte software pentru dispozitive mobile

inteligente, care să ţină cont atât de preferinţele utilizatorului cât şi de locaţia acestuia.

În anul 2005, gigantul Google cumpără această mică companie, reuşind să îi convingă pe

fondatori să rămână sa lucreze în continuare la proiect. Echipa reuşeşte astfel să dezvolte o

platformă destinată dispozitivelor mobile, bazată pe kernel-ul Linux. Între timp, încep să

apară speculaţii cu privire la o posibilă intrare a gigantului Google pe piaţa dispozitivelor

mobile.

Pe data de 5 noiembrie 2007, este înfiinţat Open Handset Alliance, un consorţiu ce include

mai multe companii precum Broadcom Corporation, Google, HTC, Intel, LG, Marvell,

Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-

Mobile şi Texas Instruments. Scopul acestui consorţiu era să dezvolte standarde deschise

pentru dispozitive mobile.

Începând cu data de 21 octombrie 2008, Android este licenţiat ca software cu sursă deschisă.

Astfel, majoritatea componentelor sistemului se află sub licenţă Apache, doar câteva aflându-

se sub licenţă GPL [4].

2.1.2 Ce este Android?

Android este o stivă software, o platformă pentru dispozitive mobile care include un sistem de

operare, middleware-ul şi aplicaţii cheie [5].

Printre trăsăturile de bază ale platformei putem aminti:

arhitectură modulară pentru aplicaţii proiectată special pentru a permite reutilizarea de

componente;

maşină virtuală Dalvik optimizată pentru dispozitive mobile;

Page 11: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

5

bază de date SQLite pentru a permite stocarea structurată de date;

grafică optimizată atât 2D cât şi 3D, bazată pe OpenGL ES 1.0;

browser integrat pentru navigarea pe site-uri web bazat pe motorul cu sursă deschisă

WebKit;

suport pentru diferite formate media audio şi video cum ar fi MPEG4, H.264, MP3,

AAC, AMR, JPG, PNG, GIF;

suport pentru telefonie GSM;

suport pentru Bluetooth, EDGE, 3G şi WiFi;

suport pentru cameră foto, GPS, busolă şi accelerometru;

suport bogat pentru dezvoltarea aplicaţiilor ce include un emulator, instrumente pentru

depanare a codului, instrumente pentru analiză de performanţă, precum şi o extensie

pentru mediul de dezvoltare cu sursă deschisă Eclipse.

Figura 1: Ce este Android.

2.1.3 Arhitectura platformei Android

Figura 2: Arhitectura platformei Android.

Page 12: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

6

În cele ce urmează, voi prezenta succint componentele prezentate în figura de mai sus.

Orice dispozitiv mobil dotat cu platformă Android va fi livrat împreună cu un set de aplicaţii

de bază precum un client de email, un program pentru gestiunea mesajelor scurte de tip SMS,

un program de tip calendar, un browser web şi un program pentru gestiunea contactelor. Toate

aplicaţiile Android sunt scrise în limbajul Java.

Deoarece Android este o platformă deschisă, dezvoltatorii au posibilitatea de a crea aplicaţii

bogate în conţinut şi inovative în idei. Astfel, dezvoltatorii pot să capete acces la hardware-ul

dispozitivului, la informaţii cu privire la locaţia dispozitivului, la serviciile care rulează în

fundal, pot sa adauge notificări în bara de status a sistemului (engleză: Status Bar) şi multe

altele.

Dezvoltatorii au acces complet la acelaşi API al framework-ului la care au acces şi aplicaţiile

de bază ale platformei. Arhitectura platformei a fost gândită de aşa natură încât componentele

să poată fi reutilizate, astfel că orice aplicaţie îşi poate face publice capabilităţile şi poate fi

accesată de către alte aplicaţii. Acelaşi mecanism permite ca componentele să poată fi

înlocuite de utilizator.

La baza tuturor aplicaţiilor stă un set întreg de servicii şi sisteme, printre care:

un set bogat şi extensibil de componente grafice de tip View cum ar fi liste, tabele,

butoane sau câmpuri de text, cu ajutorul cărora se pot construi interfeţe grafice bogate;

furnizori de conţinut (engleză: Content Providers) ce permit aplicaţiilor să acceseze date

ale altor aplicaţii (spre exemplu accesarea listei de contacte din aplicaţia Contacte),

precum şi publicarea propriilor date spre a fi accesate de către celelalte aplicaţii;

un manager de resurse (engleză: Resource Manager) ce facilitează accesul la resurse de

tip non-cod cum ar fi fişiere ce definesc aspectul interfeţei grafice, sau şiruri de

caractere localizate;

un manager de notificări (engleză: Notification Manager) ce permite tuturor aplicaţiilor

să afişeze mesaje de atenţionare sau de informare în bara de status (engleză: Status Bar)

adresate utilizatorului;

un manager al activităţilor (engleză: Activity Manager) ce gestionează durata de viaţă a

aplicaţiilor şi facilitează o stivă de navigare comună.

Platforma Android include un set bogat de biblioteci C/C++ folosite de numeroase

componente ale sistemului. Accesul către aceste biblioteci pentru dezvoltatori este facilitat de

către framework-ul de aplicaţii.

Dintre bibliotecile de bază putem aminti:

biblioteca de bistem C – o derivare BSD a bibliotecii standard C (libc), optimizată

pentru dispozitivele încorporate bazate pe Linux;

Page 13: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

7

biblioteci media – bazate pe OpenCORE; aceste biblioteci oferă suport pentru redarea şi

înregistrarea a numeroase formate audio şi video, dintre care putem aminti: MPEG4,

H.264, MP3, AAC, AMR, JPG şi PNG;

managerul de suprafeţe (engleză: Surface Manager) – gestionează accesul la

subansamblele afişajului grafic şi facilitează compunerea imaginilor prin suprapunerea

de straturi compozite 2D sau 3D provenite din diferite aplicaţii;

LibWebCore – pune la dispoziţie un motor modern de randare a paginilor web, integrat

atât în navigatorul web, cât şi în componenta grafică ce poate fi folosită în cadrul

aplicaţiilor pentru a afişa pagini web;

SGL – motorul ce gestionează grafica 2D;

biblioteci 3D – implementate pe baza API-ului OpenGL ES 1.0; aceste biblioteci

utilizează fie accelerarea 3D în hardware, acolo unde aceasta este disponibilă, fie

accelerarea 3D efectuată în software puternic optimizată.

FreeType – folosită pentru a randa fonturi bazate atât pe grafică vectorială cât şi pe

grafică de tip raster;

SQLite – o bază de date flexibilă şi puternic optimizată din punct de vedere al

consumului de resurse, disponibilă pentru toate aplicaţiile.

De asemenea, platforma Android mai pune la dispoziţie un set de biblioteci de bază ce expun

majoritatea funcţionalităţilor prezente în bibliotecile standard Java. Dacă tot am atins acest

aspect, este bine de precizat faptul că Android nu este Java!

Fiecare aplicaţie Android rulează în propriul său proces şi are propria sa instanţă în cadrul

maşinii virtuale Dalvik. Maşina virtuală Dalvik rulează fişiere executabile în format .dex, ce

sunt optimizate pentru a folosi cât mai puţin memoria. Maşina virtuală Dalvik se bazează pe

nucleul Linux pentru a gestiona firele de execuţie şi pentru a gestiona memoria la nivel

hardware.

Platforma Android este bazată pe nucleul Linux, versiunea 2.6, pentru accesul la servicii de

bază precum securitatea, gestiunea memoriei, gestiunea proceselor, stiva de reţea şi driverele.

De asemenea, nucleul acţionează ca un intermediar între hardware şi restul stivei software.

2.2 Aplicaţiile Android

Aplicaţiile Android sunt scrise în limbajul de programare orientat obiect Java. Uneltele din

cadrul SDK-ului Android sunt cele ce compilează codul Java (împreună cu alte fişiere tip

resursă necesare) într-un pachet Android. Prin pachet Android înţelegându-se un fişier

comprimat având extensia .apk. Tot ceea ce se află într-un astfel de fişier .apk este considerat

ca fiind o aplicaţie Android, iar acest fişier este cel ce este instalat pe dispozitive, pentru ca

acestea să poată rula aplicaţia respectivă.

Odată instalată pe un terminal mobil, fiecare aplicaţie Android trăieşte în propriul spaţiu de

memorie virtualizat – conceptul se numeşte sandboxing:

Page 14: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

8

sistemul de operare Android este un sistem multi-utilizator bazat pe Linux, în care

fiecare aplicaţie este reprezentată de un utilizator unic;

în mod implicit, sistemul alocă fiecărei aplicaţii un identificator de utilizator Linux unic;

acest identificator este cunoscut şi utilizat doar de către sistemul de operare, nu şi de

către aplicaţie în sine;

fiecare proces are propria sa maşină virtuală, astfel că codul fiecărei aplicaţii este

executat în mod izolat faţă de celelalte aplicaţii;

în mod implicit, fiecare aplicaţie rulează în cadrul propriului ei proces Linux. Sistemul

de operare porneşte acest proces în momentul în care oricare dintre componentele

aplicaţiei trebuie să ruleze. Procesul este oprit în momentul atunci când componenta

respectivă îşi termină ciclul de viaţă, sau în momentul în care sistemul rămâne fără

memorie RAM.

În acest fel, sistemul Android implementează principiul celui mai mic privilegiu. Acest

principiu forţează ca fiecare aplicaţie, în mod implicit, să aibă acces doar la componentele

necesare funcţionări ei corespunzătoare şi nimic mai mult. Acest mecanism asigură un mediu

sigur în care o aplicaţie nu poate accesa părţi ale sistemului pentru care nu a primit

permisiuni.

Totuşi, pentru a mări gradul de flexibilitate, au fost implementate şi mecanisme prin care o

aplicaţie poate partaja date cu alte aplicaţii, precum şi prin care o aplicaţie poate avea acces la

serviciile sistemului:

este posibil ca două aplicaţii să poată împarţi acelaşi identificator de utilizator Linux, în

acest fel, cele două aplicaţii având posibilitatea de a îşi accesa fişierele una alteia.

Pentru a conserva resursele sistemului, aplicaţiile având acelaşi identificator de

utilizator pot să ruleze în cadrul aceluiaşi proces Linux şi pot partaja aceeaşi maşină

virtuală. În acest caz însă, este necesar ca aplicaţiile să fie semnate cu acelaşi certificat

digital;

o aplicaţie poate cere permisiunea de a accesa date stocate în sistem precum contactele

utilizatorului, mesajele scurte de tip SMS, cardul de memorie SD, camera foto, interfaţa

Bluetooth, precum şi multe altele. Toate cererile de permisiunii ale unei aplicaţii trebuie

să fie aprobate de utilizator în momentul în care aceasta este instalată.

2.2.1 Componentele unei aplicaţii

Componentele sunt cărămizile unei aplicaţii Android. Fiecare componentă reprezintă o

metodă diferită prin care sistemul are acces la o aplicaţie. Însă nu toate componentele unei

aplicaţii facilitează accesul utilizatorului. De asemenea, fiecare componentă există ca o

entitate separată având un rol bine definit în cadrul întregii aplicaţii.

Sunt patru tipuri diferite de componente. Fiecare astfel de tip are un rol specific şi are un ciclu

de viaţă specific ce definește modul în care componenta este creată şi distrusă. În continuare

vom descrie cele patru componente.

Page 15: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

9

2.2.1.1 Activităţile

O activitate reprezintă un singur ecran cu o singură interfață pentru utilizator. Spre

exemplu, o aplicație de email poate avea o activitate ce afișează lista de emailuri

necitite, o activitate în care se poate compune un nou mesaj email şi încă o activitate în

care se pot citi emailuri. Deşi activităţile lucrează una cu cealaltă pentru a crea o

experienţă coezivă pentru utilizator, fiecare este totuşi independentă faţă de celelalte.

Prin urmare, o altă aplicație poate porni oricare dintre aceste activităţi (evident, acest

lucru fiind posibil doar dacă aplicaţia iniţială permite acest lucru). Spre exemplu,

aplicaţia specifică camerei foto poate porni o activitate în cadrul aplicaţiei de email

pentru a compune un nou mesaj email având ca ataşament fotografia ce tocmai a fost

făcută.

2.2.1.2 Serviciile

Un serviciu este o componentă ce rulează în fundal şi are rolul de a efectua operaţii de

lungă durată sau poate duce la îndeplinire diferite sarcini pentru alte procese. Un

serviciu nu poate interacţiona în mod direct cu utilizatorul. Spre exemplu, un serviciu

poate să redea muzică în fundal, în timp ce utilizatorul navighează pe internet utilizând

o altă aplicaţie. Sau, un serviciu poate să preia date de la un serviciu web fără a bloca

interactivitatea utilizatorului cu o activitate. Un serviciu este întotdeauna pornit de către

o altă componentă. Spre exemplu, o activitate poate porni un serviciu şi poate

interacționa cu acesta.

2.2.1.3 Furnizorii de conținut

Un furnizor de conţinut gestionează un set de date partajat între diferite aplicaţii. O

aplicaţie poate stoca date în sistemul de fişiere, în baza de date SQLite, pe web, sau în

oricare alt spaţiu de stocare persistent la care are acces aplicaţia respectivă. Folosind

furnizorii de conţinut, şi alte aplicaţii pot citi sau scrie diferite date, cu condiţia ca acesta

să permită acest lucru. Spre exemplu, sistemul Android pune la dispoziţie un furnizor de

conţinut ce gestionează contactele utilizatorului. Prin urmare, orice aplicaţie, având

permisiunile corespunzătoare aprobate de către utilizator, poate să obţină sau să

modifice informaţii despre un anumit contact. Furnizorii de conţinut sunt de asemenea

utili pentru scrierea sau citirea datelor private ale aplicaţiei curente.

2.2.1.4 Receptorii de difuzare

Un receptor de difuzare este o componentă ce răspunde la anunţurile generale.

Majoritatea anunţurilor generale sunt emise de către sistem - spre exemplu, în momentul

în care ecranul se stinge, sau nivelul bateriei atinge un prag critic, sau o fotografie a fost

făcută, sistemul iniţiază un anunţ general. Aplicaţiile pot şi ele să iniţieze anunţuri

generale - spre exemplu, pentru a anunţa celelalte aplicaţii de faptul că anumite date au

fost descărcate de pe internet şi sunt acum disponibile spre a fi utilizate. Deşi receptorii

de difuzare nu prezintă o interfaţă cu utilizatorul, ei pot să genereze notificări în bara de

stare, pentru a alerta utilizatorul atunci când un eveniment de difuzare are loc. În

general, un receptor de difuzare este un fel de poartă de acces către alte componente.

Page 16: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

10

Spre exemplu, folosind un receptor de difuzare, se poate porni un serviciu care să

trateze evenimentul respectiv.

Un aspect unic al modului în care a fost gândit sistemul Android este reprezentat de

mecanismul unic prin care o aplicaţie poate porni o componentă a altei aplicaţii. Spre

exemplu, daca se doreşte ca utilizatorul să facă o fotografie utilizând camera foto, cel mai

probabil este o altă aplicaţie care se ocupă de aşa ceva, iar aplicaţia curentă se poate folosi de

acest lucru, în loc să se piardă timpul cu dezvoltarea unei activităţi care să se ocupa de acest

lucru. Astfel, pentru a prelua o fotografie de la camera foto, este necesar doar ca activitatea

din cadrul aplicaţiei camerei foto care are rolul de a fotografia. După ce utilizatorul a terminat

de fotografiat, poza respectivă este returnată aplicaţiei iniţiale pentru a fi folosită. Pentru

utilizator se creează astfel impresia că cele doua activităţi fac parte din aceeaşi aplicaţie,

realitatea fiind evident diferită.

În momentul în care sistemul trebuie sa pornească o componentă, el porneşte mai întâi un

proces specific acelei aplicaţii (asta dacă nu există un proces specific acelei aplicaţii care

rulează deja), iar apoi instanţiază clasele necesare acelei componente.

Deoarece sistemul rulează fiecare aplicaţie într-un proces separat, având permisiuni ce

restricţionează accesul către alte aplicaţii, o aplicaţie nu poate să activeze o componentă a

altei aplicaţii în mod direct. Sistemul însă, poate. Astfel că, pentru a activa o componentă

dintr-o altă aplicaţie, aplicaţia iniţială trebuie să înştiinţeze sistemul cu privire la intenţia pe

care o are şi anume aceea de a utiliza o componenta particulară. Odată recepţionată intenţia,

sistemul poate activa componenta respectivă.

2.3 Reţeaua Facebook

În acest subcapitol doresc să prezint structurat informaţii cu privire la reţeaua de socializare

Facebook, insistând pe câteva dintre caracteristicile sale de bază, precum şi pe descrierea API-

ului pus la dispoziţie dezvoltatorilor de aplicaţii Facebook.

2.3.1 Scurt istoric

La începutul anului 2003, Adam D’Angelo pe vremea aceea student la Institutul Tehnologic

Caltech din California, a creat o reţea de socializare rudimentară, experimentală, denumită

Buddy Zoo, ce a apucat să fie folosită de câteva sute de mii de utilizatori până când D’Angelo

s-a hotărât să o închidă. În vara acelui an, Mark Zuckerberg – prieten cu D’Angelo încă din

liceu, împreună cu nişte prieteni analizează succesul website-ului Buddy Zoo şi discută despre

viitorul reţelelor de socializare de pe Internet. În data de 28 octombrie 2003, Mark Zuckerberg

dezvoltă Facemash, un site ce compara seturi de câte două poze şi în care utilizatorii erau

rugaţi să o voteze pe cea mai bună [6].

Pe data de 4 februarie 2004, Mark Zuckerberg, student anul 2 la Harvard, lansează

Thefacebook. În 24 de ore, pe site s-au înregistrat aproximativ 1300 de utilizatori noi. La doar

Page 17: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

11

6 zile de la lansarea acestui website, Zuckerberg este acuzat de 3 colegi (Cameron

Winklevoss, Tyler Winklevoss şi Divya Narendra) cum că le-a furat ideea.

Deşi iniţial accesul în website era disponibil doar studenţilor de la Harvard (în prima lună

înregistrându-se peste jumătate dintre aceştia), în martie 2004 Facebook a fost deschis şi

pentru studenţii de la Universităţile Stanford, Columbia şi Yale. Expansiunea a continuat cu

şcolile din zona Boston, iar apoi cu toate universităţile din Statele Unite ale Americii, precum

şi Canada.

În vara anului 2004, Facebook este înfiinţată ca şi companie, iar antreprenorul Sean Parker

devine preşedinte. În iunie 2004, sediul companiei este mutat în Palo Alto, California. În

2005, compania a renunţat la articolul „The” din numele acesteia, achiziţionând domeniul

facebook.com.

În prezent, Facebook este cea mai mare reţea de socializare online, numărând peste 600 de

milioane de utilizatori! [1]

2.3.2 Ce este Facebook?

Pentru a înţelege mai bine ce este o reţea de socializare online, am decis ca în continuare să

prezint câteva dintre caracteristicile esenţiale ale celei mai mari reţele de socializare online:

Facebook. [7]

2.3.2.1 Chat

Caracteristică introdusă în aprilie 2008, permite utilizatorilor reţelei să comunice între ei

în timp real, de tip mesagerie instant, unu la unu, sau în cadrul unui grup de prieteni.

Între timp, clienţii consacraţi de tip mesagerie instant au început să ofere integrare cu

Facebook şi implicit suport pentru această caracteristică. Protocolul pe baza căruia a

fost dezvoltată această componentă este unul deschis şi se numeşte XMPP (Extensible

Messaging and Presence Protocol).

2.3.2.2 Credite

Această caracteristică a fost introdusă în iulie 2010 şi reprezintă moneda virtuală din

reţea. Utilizatorii pot cumpăra credite folosind bani reali. Ei pot folosi creditele astfel

cumpărate pentru a achiziţiona diverse lucruri în jocurile sau aplicaţiile specifice acestei

platforme.

2.3.2.3 Oferte

În data de 25 aprilie 2011, Facebook a anunţat un program pilot denumit Deals, ce urma

să pună la dispoziţie un sistem prin care utilizatorii să poată achiziționa cupoane online

cu reduceri la diferiţi comercianţi locali. Această caracteristică se vrea a fi un

competitor direct al site-urilor de cumpărături sociale tip Groupon.

2.3.2.4 Mesaje şi căsuţa poştală

Încă de la înfiinţarea website-ului, utilizatorii au putut să îşi trimită mesaje electronice –

similar serviciului de email. Un utilizator Facebook poate trimite un mesaj către oricâţi

Page 18: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

12

prieteni de-ai săi la un moment dat. Fiecare utilizator are o căsuţă proprie de mesaje -

inbox.

2.3.2.5 Reţele şi grupurile de prieteni

Facebook permite ca utilizatorii să facă parte din diferite reţele şi grupuri de prieteni. Pe

baza grupurilor de prieteni, un utilizator îşi poate particulariza setările ce ţin de

intimitatea sa. De asemenea, grupurile sunt utile pentru a discuta şi a organiza

evenimente. Un utilizator nu poate face parte din mai mult de 300 de grupuri la un

moment dat.

2.3.2.6 Peretele

Peretele (engleză: Wall) este un spaţiu aflat pe pagina fiecărui utilizator şi permite ca

prietenii acestuia să îi lase un mesaj public. Muţi utilizatori folosesc această

caracteristică pentru a lăsa mesaje scurte unui alt utilizator (e.g. un mesaj cu urări în

cazul unei aniversări).

2.3.2.7 Fluxul de ştiri

Această caracteristică a fost introdusă în septembrie 2006 şi permite utilizatorilor să

vadă ultimele noutăţi legate de activitatea prietenilor lor. Printre ştirile ce pot apărea în

acest flux se numără: schimbarea informaţiilor de pe profilul personal al unui prieten,

evenimente viitoare, zile de naştere, etc. De asemenea, în fluxul de ştiri mai pot apărea

şi discuţiile publice, purtate de utilizatori pe perete. Utilizatorii au totuşi posibilitatea de

a seta nivelul de informaţii care poate ajunge în acest flux de ştiri.

2.3.2.8 Notificări

Notificările sunt un mecanism prin care utilizatorii sunt alertaţi cu privire la evenimente

şi acţiuni importante ce au avut loc, cum ar fi: un prieten a comentat la o poză ce

aparţine utilizatorului curent, sau cineva a publicat un mesaj pe peretele utilizatorului

curent. Conceptul este similar cu cel din Android.

2.3.2.9 Evenimente

Evenimentele Facebook reprezintă o metodă prin care utilizatorii îşi pot ţine la curent

prietenii cu privire la viitoarele evenimente importante (e.g.: un concert, o reuniune,

etc.). Pentru a crea un eveniment, este necesar să se specifice un nume, o gazdă, tipul

evenimentului (public sau privat), ora şi data de începere precum şi ora la care

evenimentul se încheie, locaţia evenimentului şi o listă de invitaţi.

2.3.2.10 Locuri

Locurile (engleză: Places) au fost introduse în august 2010. Este o caracteristică prin

care un utilizator se poate înregistra ca fiind prezent într-o anumită locaţie folosind

telefonul mobil şi informându-şi astfel prietenii cu privire la prezenţa sa în locaţia

respectivă. Pentru ca un utilizator să poată să folosească această caracteristică, este

necesar să aibă un telefon cu Android, iOS sau BlackBerry şi să aibă instalată aplicaţia

oficială Facebook. Această caracteristică mai poate fi utilizată şi dacă este accesat site-

ul mobil Facebook folosind un navigator cu suport pentru HTML5.

Page 19: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

13

2.3.3 Platforma Facebook

Platforma Facebook pune la dispoziţie un API bogat şi instrumente diverse ce permit

dezvoltatorilor terţi să construiască şi să integreze propriile aplicaţii cu reţeaua de socializare.

Platforma a fost lansată în mai 2007 şi a evoluat de la dezvoltare exclusiv pe Facebook.com

până la dezvoltare pe dispozitive mobile. [8]

Platforma pune la dispoziţie un framework pentru dezvoltatorii de software pentru a crea

aplicaţii care să interacţioneze cu caracteristicile Facebook de bază.

Graph API este nucleul Platformei Facebook. Este componenta ce permite dezvoltatorilor să

scrie şi să citească date din reţea. Aceasta facilitează accesul la obiecte (e.g. utilizatori,

fotografii, evenimente, pagini) şi la legăturile dintre ele (prietenii, like-uri, fotografii marcate).

[9]

Mecanismul de autentificare permite aplicaţiilor scrise de terţi dezvoltatori să interacţioneze

cu Graph API în numele utilizatorilor Facebook şi facilitează un mecanism de single-sign-on

atât pe web cât şi pe aplicaţiile de tip desktop sau mobile.

Facebook Connect este un subset din API ce permite utilizatorilor Facebook să se autentifice

pe diferite site-uri sau aplicaţii folosindu-se de identitatea lor de pe Facebook. Odată conectaţi

în aceste terţe aplicaţii, utilizatorii au posibilitatea de a interacţiona cu prietenii lor, sau pot să

publice informaţii pe propriul perete. Dezvoltatorii pot folosi aceste servicii pentru a îi ajuta

pe utilizatori să se conecteze şi să partajeze informaţii cu prietenii lor din Facebook, atât

direct în reţea cât şi în afara acesteia, precum şi să crească rata de utilizare a aplicaţiilor lor.

Protocolul Open Graph permite dezvoltatorilor să îşi integreze propriile pagini web în graful

social. Odată integrate în graful social, aceste pagini capătă funcţionalităţi specifice oricărui

obiect din graf, precum o legătură către un profil sau un flux constant de actualizări pentru

utilizatorii conectaţi la respectivul obiect.

Page 20: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

14

3 Analiza principalelor soluţii similare existente

Capitolul de faţă propune o analiză sumară a soluţiilor similare existente pe piaţă la ora

actuală, scoţând în evidenţă dezavantaje sau lipsuri ale acestor soluţii, motivând astfel

proiectul prezentat în lucrarea de faţă.

Principalele servicii de socializare online existente pe piaţă la ora actuală, dedicate spre a fi

accesate de pe dispozitive mobile şi care se bazează pe locaţia utilizatorului sunt: Facebook

Places, Foursquare, Gowalla, Google Latitude, SCVNGR, Geomium şi Urbo.

3.1 Facebook Places

Places este un serviciu oferit de către cea mai mare reţea de socializare online. A fost lansat în

august 2010 şi în prezent are peste 30 de milioane de utilizatori, deşi sunt mult mai puţini cei

ce folosesc acest serviciu în mod activ. [10]

Places este un serviciu disponibil pentru toţi utilizatorii reţelei Facebook, ce poate fi accesat

doar de pe un dispozitiv mobil, fie folosind aplicaţia oficială Facebook pentru Android, iOS

sau BlackBerry, fie accesând varianta mobilă a site-ului folosind un navigator cu suport

pentru HTML5.

Serviciul permite utilizatorilor să se înregistreze (engleză: checkin) într-un punct de interes

(engleză: POI – point of interest), informându-şi astfel prietenii cu privire la prezenţa sa în

acea locaţie. De asemenea, un utilizator are posibilitatea de a însemna (engleză: to tag)

anumiţi prieteni ca fiind şi ei prezenţi de asemenea în respectiva locaţie. [11]

O astfel de înregistrare apare pe fluxul de ştiri al prietenilor şi leagă această informaţie de un

anumit moment în timp. Spre deosebire de FriLoc, proiectul descris în amănunt în această

lucrare, Facebook Places nu este un serviciu în timp real.

3.2 Foursquare

În primul rând, Foursquare este un serviciu online de socializare, de tipul checkin, similar

Facebook Places, dar care a apărut cu un an înaintea acestuia, mai exact în anul 2009. În iunie

2010, această reţea de socializare a anunţat că a atins pragul psihologic de 10 milioane de

utilizatori. [12]

Pe lângă posibilitatea de a se înregistra ca fiind prezent într-un punct de interes sau de a

consulta cele mai recente înregistrări publicate de prietenii săi, un utilizator mai are

posibilitatea şi de a câştiga insigne (engleză: badges) speciale, în funcţie de cât de des

utilizează serviciul de înregistrare.

De asemenea, un utilizator poate să devină primar (engleză: mayor) al unei locaţii de interes

dacă are la activ cele mai multe înregistrări în acea locaţie în ultimele 60 de zile, În plus,

Page 21: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

15

utilizatorul mai are posibilitatea şi de a marca un punct de interes într-o listă de tip To Do ,

pentru a avea posibilitatea ca ulterior să îşi amintească de acesta.

Spre deosebire de FriLoc, nici acest serviciu de socializare nu oferă utilizatorului posibilitatea

de a consulta locaţia în timp real a prietenilor săi pe o hartă. De asemenea, FriLoc

implementează şi totodată extinde conceptul de listă tip To Do, oferind posibilitatea ca un

utilizator să fie automat alertat, dacă se află în zona geografică a punctului de interes. Această

caracteristică specifică FriLoc se numeşte Georeminder (română: alertă pe locaţie).

3.3 Gowalla

Gowalla este de asemenea un serviciu de socializare bazat pe geolocalizare de tipul checkin,

similar Foursquare şi Facebook Places. Reţeaua a luat fiinţă în anul 2007 şi în prezent numără

peste 1 milion de utilizatori. [13]

Similar Foursquare, serviciul încurajează utilizatorii să se înregistreze în locaţii de interes,

recompensându-i pe aceştia cu diferite obiecte virtuale. Spre deosebire de Foursquare, acest

serviciu permite utilizatorilor să îşi organizeze călătorii, grupând mai multe locaţii de interes

şi creând astfel o rută între acestea.

Începând cu luna martie a anului 2011, aplicaţia client de pe Android, ajunsă la versiunea a

treia, permite utilizatorilor să îşi publice înregistrarea (engleză: checkin) într-o locaţie şi pe

reţelele Foursquare, Facebook Places, Twitter şi Tumblr. De asemenea, noua versiune a

aplicaţiei mai permite utilizatorilor şi să consulte înregistrările pe care aceştia le-au efectuat în

cadrul celorlalte reţele de socializare bazate pe geolocalizare.

Similar Facebook Places şi Foursquare, nici acest serviciu de socializare bazat pe

geolocalizare nu este disponibil şi în varianta de timp real – o caracteristică de bază a

aplicaţiei FriLoc. In reţeaua FriLoc nu există nici conceptul de primar promovat de reţeaua

Foursquare, şi nici conceptul de obiecte virtuale câştigate în urma unui checkin – promovat

atât de Foursquare cât şi de Gowalla, deoarece caracteristica de înregistrare nu este una

fundamentală în cadrul proiectului de faţă, accentul punându-se pe posibilitatea de consulta

locaţiile prietenilor în timp real pe hartă.

3.4 Google Latitude

Google Latitude este un serviciu de socializare bazat pe geolocalizare lansat în februarie

2009, de către gigantul Google. Serviciul reprezintă o evoluţie a startup-ului ce oferea un

serviciu similar bazat pe geolocalizare, denumit Dodgeball, lansat în 2000 şi achiziţionat de

Google în 2005. [14]

Serviciul se vrea a fi o reţea de socializare bazată pe geolocalizare prin intermediul căreia

utilizatorii să poată avea posibilitatea de a vedea locaţia curentă a altor utilizatori Google pe

hartă (pe baza unei autorizări din partea acestora). [15]

Page 22: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

16

Latitude are o bază de 9 milioane de utilizatori, dintre care doar aproximativ 3 milioane sunt

activi în reţea. [16]

Deşi Latitude posedă aceeaşi caracteristică de bază pe care o are şi FriLoc, în speţă

posibilitatea de a consulta pe hartă locaţia curentă a utilizatorilor, serviciul are o problemă

legată pe de-o parte de renumele companiei Google, iar pe de altă parte de o realitate

adevărată. Şi anume, Google nu este privită ca o companie orientată pe reţele de socializare.

Astfel că, o pătrime din totalul de utilizatori ai acestui serviciu au zero prieteni! [17]

Spre deosebire de Latitude, FriLoc se vrea a fi o veritabilă reţea de socializare, fapt pentru

care este puternic integrată cu cea mai mare reţea de socializare online: Facebook. De

asemenea, FriLoc prezintă în plus nişte caracteristici cu adevărat utile pentru utilizatori, cum

ar fi Georeminder-ele sau poziţionarea evenimentelor pe hartă.

3.5 SCVNGR

SCVNGR (a se citi scavenger - engleză), este o platformă de jocuri bazată pe geolocalizare

pentru dispozitive mobile. Aplicaţia are atât o componentă destinată companiilor, cât şi o

componentă destinată consumatorilor. Conform unor zvonuri datate din februarie 2011,

această reţea numără aproximativ 1 milion de utilizatori. [18]

Jucătorii sunt încurajaţi să viziteze locuri şi să accepte diferite provocări. Astfel, ei pot câştiga

puncte, sau pot obţine insigne speciale virtuale, precum şi reduceri în viaţa reală la diferiţi

comercianţi.

Similar Foursquare şi Gowalla, această reţea de socializare nu permite consultarea locaţiei

curente a utilizatorilor pe hartă.

3.6 Geomium

Geomium este o reţea de socializare bazată pe geolocalizare, lansată în septembrie 2010 cu

sediul la Londra. Din anumite puncte de vedere, Geomium este aplicaţia care seamănă cel mai

mult cu ceea ce FriLoc se doreşte a fi. Ambele reţele de socializare plasează pe hartă atât

diferite puncte de interes, cât şi evenimente sau prieteni în timp real.

De asemenea, nici FriLoc şi nici Geomium nu au implementat un mecanism de recompensare

a utilizatorului de genul Foursquare Badges sau Gowalla Items - asta deoarece, atât FriLoc,

cât şi Geomium, se doresc a fi aplicaţii cu adevărat folositoare pentru utilizatori. În schimb,

reţeaua permite plasarea pe hartă a diferitelor oferte localizate ale comercianților.

Totuşi există câteva diferenţe notabile care validează lansarea FriLoc într-un viitor apropiat.

În primul rând, trebuie menţionat faptul că Geomium este momentan disponibilă doar pe

telefoanele iPhone. În al doilea rând, FriLoc are un mare avantaj oferit de integrarea puternică

Page 23: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

17

pe care o are cu Facebook-ul. De asemenea, FriLoc prezintă şi câteva caracteristici pe care

Geomium nu le are, printre care putem aminti Gereminder-ele.

În fine, diferenţa esenţială dintre cele două reţele de socializare constă în abordarea cu care

acestea tratează informaţiile cu privire la locaţia curentă a unui utilizator. Reţeaua Geomium a

primit numeroase critici cu privire la faptul că există posibilitatea de a accesa locaţia în timp

real a unor utilizatori cu care nu există nici o legătură anterior formată. Mai trebuie să

precizăm şi faptul că Geomium acoperă momentan doar Londra, pe când FriLoc, datorită

integrării cu Facebook, şi implicit cu Places, va fi disponibilă tuturor utilizatorilor Facebook

la nivel mondial încă din prima zi de la lansare. [19]

3.7 Urbo

Urbo este o aplicaţie de informare bazată pe geolocalizare, românească. Aplicaţia este extrem

de bogată în ceea ce priveşte numărul de locaţii de interes (baza de date are peste 100.000

firme), asta deoarece acest serviciu se vrea a fi un ghid al firmelor pe piaţa românească. Din

păcate însă, aplicaţia se concentrează doar pe 10 oraşe din România.

În cadrul aplicaţiei, un utilizator îşi poate face prieteni şi se poate înregistra (engleză: checkin)

într-o locaţie de interes, similar Foursquare şi Gowalla. Tot la capitolul similarităţi putem

menţiona şi faptul că un utilizator poate câştiga diverse insigne virtuale dacă foloseşte funcţia

de înregistrare în mod frecvent. Ca noutate, putem aminti faptul că aplicaţia permite

calcularea rutei optime între locaţia curentă a utilizatorului şi un punct de interes. [20]

Diferenţele dintre FriLoc şi Urbo sunt majore. În timp ce Urbo este o aplicaţie românească cu

un concept de înregistrare similar Foursquare şi Gowalla, FriLoc se concentrează pe

posibilitatea de a consulta locaţiile prietenilor în timp real. De asemenea, FriLoc, spre

deosebire de Urbo, se vrea a fi o veritabilă reţea de socializare cu multiple caracteristici

precum plasarea pe hartă atât a unor locaţii de interes, cât şi a unor evenimente sau a unor

geoalerte. De asemenea, reţeaua FriLoc este puternic integrată cu Facebook, cea mai mare

reţea de socializare online. [21]

Page 24: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

18

4 Descrierea FriLoc

Acest capitol prezintă caracteristicile de bază ale proiectului tratat în această lucrare. FriLoc

este o reţea de socializare bazată pe geolocalizare al cărei scop principal este ca utilizatorii săi

să poată consulta locaţia geografică curentă a prietenilor lor.

În cele ce urmează, vom trata pe rând, fiecare caracteristică în parte.

4.1 Aplicaţia client

În primul rând, pentru a avea acces la toate funcţionalităţile puse la dispoziţie de reţeaua de

socializare FriLoc, utilizatorul are nevoie de un terminal cu platformă Android, cu senzor

GPS încorporat şi acces constant la Internet (preferabil, un pachet de date mobil de la

operatorul local de telefonie mobilă).

Pe acest terminal este necesar să se instaleze aplicaţia client FriLoc pentru a putea utiliza

efectiv funcţionalităţile puse la dispoziţie de această reţea de socializare online. Aplicaţia

client poate fi instalată pe dispozitive ce rulează sistemul Android, versiunile 2.1, 2.2, 2.3 şi

2.4. Coroborat cu ultimul studiu de piaţă, încheiat la data de 1 iunie 2011, cu privire la

distribuţia pe piaţă a diverselor versiuni ale sistemului Android, aplicaţia client FriLoc poate

fi instalată pe aproximativ 95% din totalul dispozitivelor dotate cu sistem Android. [22]

Aplicaţia este livrată sub forma unui singur fişier, un pachet *.apk specific acestei platforme

şi ocupă aproximativ 1 MB. Aplicaţia poate fi instalată doar în memoria telefonului. Deşi în

prezent aplicaţia nu se găseşte pe Android Market [23], acest lucru va fi posibil începând cu

toamna acestui an, când va fi lansată pe piaţă, gratuit.

4.2 Interfaţa de autentificare

La prima lansare a aplicaţiei, utilizatorul este întâmpinat de un ecran în care este prezentată

sigla FriLoc, termeni şi condiţii de utilizare, o căsuţă pe care utilizatorul trebuie să o bifeze

confirmând astfel faptul că a citit şi a luat la cunoştinţă şi că acceptă respectivii termeni, şi un

buton pentru iniţializarea procesului de autentificare.

Iniţial, butonul ce declanşează procesul de autentificare este dezactivat. Acesta devine activ

doar în momentul în care utilizatorul a bifat căsuţa de accept a termenilor. La apăsarea

butonului devenit activ, utilizatorul este rugat să îşi introducă datele de autentificare în reţeaua

Facebook. Deşi voi detalia procesul de autentifice în capitolul următor, menţionez totuşi şi

aici faptul că aplicaţia FriLoc nu stochează parola utilizatorului, în schimb aceasta fiind

verificată în mod direct doar de către platforma Facebook.

Am ales ca autentificarea în reţea să se poată realiza doar cu ajutorul unui cont de Facebook,

pe de-o parte deoarece FriLoc se adresează în primul rând consumatorilor de reţele de

Page 25: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

19

socializare online, iar pe de altă parte, s-a dorit încă de la bun început o integrare strânsă cu

reţeaua Facebook.

Figura 3: Ecranul de autentificare

După introducerea datelor de autentificare Facebook, la prima autentificare în reţeaua FriLoc,

utilizatorul este rugat de către platforma Facebook să confirme permisiunile de acces cu

privire la acţiunile pe care FriLoc le poate întreprinde în Facebook în numele utilizatorului.

Vom intra în mai multe detalii cu privire la aceste permisiuni în capitolul următor.

Dacă autentificarea s-a realizat cu succes, utilizatorul va fi redirecționat către ecranul

principal al aplicaţiei, descris în secţiunea următoare.

4.3 Ecranul principal

Ecranul principal este de tip tablou (engleză: dashboard) şi este împărţit de aşa natură încât

utilizatorul să nu trebuiască să se chinuiască să se acomodeze cu interfaţa grafică, sau cu

găsirea vreunei opţiuni ascunse.

În partea de sus avem o bară de acţiuni (engleză: actionbar) prezentă în toate celelalte ecrane

ale aplicaţiei. Bara de acţiuni conţine sigla FriLoc împreuna cu trei iconiţe. În celelalte ecrane,

sigla poate fi acţionată printr-o atingere tactilă, scopul ei fiind de a readuce întotdeauna

utilizatorul înapoi la ecranul principal. Celelalte trei iconiţe sunt iconiţele pentru notificări,

pentru reîmprospătare şi pentru pornirea sau oprirea serviciului. Aceste trei iconiţe pot fi şi ele

la rândul lor acţionate. Iconiţa de reîmprospătare (engleză: refresh) are rolul de a actualiza cu

cele mai noi informaţii ecranul curent. Despre celelalte două iconiţe vom vorbi în secţiunile ce

urmează.

În jumătatea de sus a ecranului principal sunt afişate câteva informaţii cu privire la profilul

utilizatorului curent conectat în reţea. Acestea sunt poza de profil şi numele complet

Page 26: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

20

(informaţii preluate din Facebook), precum şi locaţia curentă afişată la nivel de oraş şi de

stradă.

Figura 4: Ecranul principal

În jumătatea de jos se găsesc cele şase opţiuni de navigare posibile în continuare:

Georeminders (română: alerte pe locaţie)

Venues (română: locaţii de interes)

Live Feed (română: fluxul ştiri)

Events (română: evenimente)

Friends (română: prieteni)

Map (română: harta)

Le vom trata pe fiecare în parte în secţiunile următoare.

Ultimul element al acestui ecran, prezent de altfel şi în majoritatea celorlalte ecrane ale

interfeței, este titlul ecranului curent şi are atât rol informativ, cât şi rol estetic.

La apăsarea tastei Menu a telefonului, utilizatorului îi sunt prezentate încă trei opţiuni:

Logout (română: ieşirea din cont)

About (română: informaţii despre FriLoc)

Settings (română: setări)

Prin apăsarea opţiunii Logout, utilizatorul este deconectat de la reţea şi, dacă doreşte să se

reconecteze, va fi nevoit să se autentifice din nou prin reintroducerea datelor de conectare

Facebook.

Despre celelalte două opţiuni vom vorbi în secţiunile următoare.

Page 27: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

21

4.4 Serviciul din fundal

Tot ce trebuie să facă utilizatorul pentru a îşi face cunoscută locaţia sa geografică curentă, în

timp real către prietenii săi, este să pornească serviciul din fundal. Acest serviciu poate fi

pornit sau oprit prin acţionarea iconiţei sale din bara de acţiuni prezentă în majoritatea

ecranelor aplicaţiei.

Cât timp serviciul rulează şi este activ, iconiţa sa din bara de acţiuni este de culoare albă şi

este prezentă iconiţa FriLoc în bara de status a sistemului. În momentul în care serviciul este

oprit, iconiţa sa devine de culoare roşie, iar iconiţa FriLoc dispare din bara de status a

sistemului.

Detalii despre cum funcţionează efectiv acest serviciu găsim în capitolul dedicat

implementării.

Figura 5: Serviciul şi interfaţa grafică

În fine, dacă serviciul este activ, utilizatorul capătă acces foarte facil la interfaţa grafica, dacă

derulează bara de status a sistemului şi acţionează câmpul pe care scrie FriLoc is running.

Această scurtătură va redirecţiona utilizatorul către ecranul ce conţine harta. Mai multe detalii

despre acest ecran, în cele ce urmează.

4.5 Ecranul cu informaţii despre FriLoc

Ecranul cu informaţii despre FriLoc (engleză: about) poate fi activat dacă se alege opţiunea

About din meniul ecranului principal. Acest ecran este compus din trei file:

About (română: despre)

Privacy Policy (română: politica de confidenţialitate)

Terms of Service (română: termeni şi condiţii de utilizare a serviciului)

Page 28: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

22

Figura 6: Ecranul cu informaţii despre FriLoc

4.6 Ecranul cu setări

În ecranul cu setări se poate ajunge prin apăsarea opţiunii corespunzătoare din meniul

ecranului principal. Setările din cadrul acestui ecran sunt împărţite în patru categorii, după

cum urmează:

General Settings (română: setări generale)

Notifications Alerts (română: )alerte la notificări

Georeminders Alerts (română: alerte pe locaţii geografice)

Friends Nearby Alerts (română: alerte la apropierea de prieteni)

Figura 7: Ecranul cu setări

Page 29: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

23

În categoria General Settings utilizatorul are posibilitatea de a seta intervalul de timp la care

serviciul, cât timp este activ şi rulează în fundal, îi transmite serverului locaţia curentă a

utilizatorului. De asemenea, tot în cadrul acestei categorii, utilizatorul mai are şi posibilitatea

de a seta dacă serviciul să pornească sau nu odată cu pornirea telefonului, precum şi dacă

serviciul să menţină sa nu activă conexiunea WiFi atunci când telefonul este în modul sleep şi

nu are o conexiune de date activă.

În categoria Notifications Alerts, utilizatorul are posibilitatea de a activa sau dezactiva

propagarea notificărilor generale în bara de status a sistemului Android. Iar în cazul în care

sunt activate, utilizatorul poate configura modul de apariţie al acestora: cu sunet sau fără

sunet, cu vibrație sau fără vibraţie.

Categoriile Georeminders Alerts şi Friends Nearby Alerts au un set analog de setări. Diferenţa

ţine de faptul că Georeminders Alerts tratează alertele generate de Georemindere (română:

alerte pe locaţie geografică), iar Friends Nearby Alerts tratează alertele generate în momentul

în care utilizatorul se află în aceeaşi zonă în care se află şi unul sau mai mulţi prieteni de-ai

săi.

4.7 Ecranul cu notificări

Navigarea în ecranul cu notificări se poate realiza daca se acționează iconiţa corespunzătoare

din ActionBar (română: bara de acţiuni) – această bară regăsindu-se în aproape toate ecranele

aplicaţiei. De asemenea, direct în ecranul de notificări se mai poate ajunge şi dacă utilizatorul

selectează o notificare din bara de status a sistemului Android.

În acest ecran se regăsesc diverse informaţii, sub formă de listă de notificări ce ţin de

utilizatorul curent, precum cererile de prietenie, însemnări ale momentelor în care utilizatorul

s-a aflat în preajma unor prieteni de-ai săi sau în care un Georeminder a intrat în acţiune, etc.

Figura 8: Ecranul cu notificări şi ecranul cu fluxul de ştiri

Page 30: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

24

4.8 Ecranul cu fluxul de ştiri

Ecranul Live Feeds (română: flux de ştiri) poate fi accesat doar din ecranul principal şi este

una din cele şase ramuri principale de navigare. Acest ecran este compus dintr-o listă în care

se regăsesc diverse informaţii partajate între utilizator şi prietenii săi.

Un utilizator poate publica un mesaj în acest flux de ştiri, mesajul având astfel ataşată locația

curentă a utilizatorului, iar acest mesaj putând fi urmărit de către toţi prietenii autorului. De

asemenea, în momentul în care un utilizator se înregistrează ca fiind prezent în cadrul unei

locaţii de interes, checkin-ul respectiv este automat publicat şi în cadrul acestui flux de ştiri.

Tot în cadrul acestui flux de ştiri mai pot apărea şi informaţii precum momentul în care un

utilizator se înregistrează ca participant în cadrul unui eveniment (engleză: attending).

4.9 Ecranul de tip hartă

Ecranul Map (română: harta) este a doua ramură din cele şase ramuri principale de navigare

prezente în ecranul principal. O altă modalitate de a consulta foarte uşor acest ecran se poate

realiza prin accesarea notificării permanente din bara de status a sistemului, cu privire la

faptul că serviciul de geolocalizare este activ şi rulează.

Figura 9: Ecranul de tip hartă

În acest ecran, utilizatorul poate consulta locaţia geografică a următoarelor tipuri de elemente:

Georeminders (română: alerte pe locații geografice)

Venues (română: locaţii de interes)

Events (română: evenimente)

Friends (română: prieteni)

Printr-un click pe un astfel de element, în partea de sus a ecranului apare o bară neagră, cu

numele şi adresa elementului respectiv. De asemenea, pentru a consulta mai uşor elementele

Page 31: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

25

prezente pe hartă, se pot folosi cele două săgeţele de navigare din bara informativă, ce au rolul

de a parcurge această listă de elemente.

Pentru a popula harta cu elemente, este necesar ca utilizatorul să acţioneze butonul Load

Items. De asemenea, daca utilizatorul doreşte să consulte doar elemente de un anumit tip,

atunci el poate specifica acest lucru prin apăsarea tastei Menu şi alegerea unui tip de element,

sau All pentru a reveni la afişarea standard a tuturor elementelor pe hartă. De asemenea, tot în

cadrul acestui meniu regăsim şi opţiunea My Location (română: locţia mea), opţiune ce are

rolul de a centra harta pe locaţia curentă a utilizatorului marcată printr-un punct albastru.

În fine, în partea din stânga sus a ecranului se află o busolă, iar în ActionBar (română: bara de

acţiuni) a fost adăugată o iconiţă ce are rolul de a interschimba modul de vizualizare al hărţii

în modul satelit sau modul standard.

4.10 Ecranul cu alerte pe locaţie

Ecranul cu alerte pe locație (engleză: georeminders) este a cea de a treia ramură de navigare

dintre cele şase prezente în ecranul principal. În acest ecran se poate consulta lista de alerte pe

locaţii, ordonate ascendent în funcţie de distanţa dintre ele şi poziţia curentă a utilizatorului.

Figura 10: Ecranul cu alerte pe locaţie

În urma unui click pe un Georeminder, ecranul curent se schimbă, utilizatorului fiindu-i

prezentate informaţii respective cu privire la alerta respectivă. În acest ecran detaliat regăsim

următoarele informaţii cu privire la un georeminder:

titlul alertei respective;

o scurtă descriere;

locaţia alertei sub formă de adresă;

oraşul;

Page 32: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

26

distanţa până la poziţia geografică a alertei respective;

locaţia de interes ataşată georeminder-ului curent, în situaţia în care aceasta a fost

specificată;

un buton ce deschide ecranul de tip hartă, având în centru georeminder-ul curent;

un câmp ce poate fi bifat pentru a seta astfel dacă utilizatorul doreşte sau nu să fie

înştiinţat atunci când se află în zona geografică a alertei curente.

Pentru a crea un nou georeminder, este suficient să se navigheze în ecranul cu lista de alerte

pe locaţii, să se apese tasta Menu a telefonului şi să se selecteze opţiunea Add Georeminder.

Se va deschide astfel un alt ecran, în care utilizatorul va putea să introducă date cu privire la

alerta respectivă.

4.11 Ecranul cu locaţiile de interes

Venues (română: locaţii de interes) este ce-a patra opţiune disponibilă pe ecranul principal al

aplicaţiei FriLoc. Ecranul prezintă cele mai apropiate 20 de locaţii de interes de poziţia

geografică curentă a utilizatorului, ordonate ascendent, în funcţie de distanţa la care se află

acestea.

Figura 11: Ecranul cu locaţii de interes

Pentru a consulta detalii cu privire la o locaţie de interes, este suficient să se efectueze un

click în ecranul Venues. În ecranul proaspăt deschis, Venue Details (română: detaliile unei

locaţii de interes), informaţiile ce pot fi prezentate cu privire la o locaţie de interes sunt:

numele locaţiei curente;

o scurtă descriere a locației curente;

strada locaţiei curente;

distanţa de la poziția geografică actuală a utilizatorului, până la poziţia geografică a

locaţiei de interes;

Page 33: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

27

numărul total de înregistrări pe care utilizatorii reţelei FriLoc l-au efectuat în acest

venue de-a lungul timpului, precum şi posibilitatea ca utilizatorul curent să se

înregistreze ca fiind prezent în locaţia curentă;

numărul de utilizatori ai reţelei FriLoc prezenţi în locaţia respectivă, în momentul

consultării acestor informaţii;

posibilitatea de a consulta şi de a adăuga comentarii locaţiei curente;

posibilitatea de a acorda un calificativ sub formă de Like (română: îmi place) sau

Dislike (română: nu îmi place) locaţiei curente;

un buton ce deschide ecranul de tip hartă, având în centru venue-ul curent;

posibilitatea de a adăuga un georeminder locaţiei curente.

4.12 Ecranul cu prieteni

Ecranul Friends (română: prieteni) este cea de-a cincea opţiune din cele şase prezente pe

ecranul principal. În acest ecran, utilizatorul are acces la lista cu toţi prietenii cu care acesta s-

a conectat în reţeaua FriLoc. În cadrul acestei liste, prietenii sunt grupaţi în două categorii, în

funcţie de statutul pe care îl au aceştia în momentul vizualizării ecranului: online (română:

conectat) sau offline (română: deconectat). Un utilizator este considerat online dacă s-a

autentificat cu succes în reţea şi dacă are serviciul din fundal activat.

Figura 12: Ecranul cu prieteni

Categoria utilizatorilor online este afişată prima în cadrul acestui ecran, iar în cadrul acestei

categorii, utilizatorii sunt ordonaţi ascendent, în funcţie de distanţa de la poziţia geografică a

utilizatorului la momentul consultării acestui ecran, şi poziţia fiecărui prieten în parte.

Utilizatorii din categoria offline sunt sortaţi alfabetic.

Page 34: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

28

Mai multe detalii despre un prieten pot fi consultate prin efectuarea unei atingeri (engleză: to

tap) a ecranului în dreptul numelui acestuia. Se deschide astfel un nou ecran denumit Friend

Details (română: detaliile unui prieten) în care regăsim informaţii precum:

numele complet al prietenului respectiv;

poza de profil a acestuia, descărcată cu ajutorul API-ului Facebook;

strada pe care se află acesta la momentul consultării acestui ecran;

oraşul în care se află;

distanţa geografică dintre utilizator şi prietenul respectiv;

posibilitatea de a vedea locaţia de interes curentă, dacă prietenul a folosit funcția de

checkin (română: înregistrare);

posibilitatea de a deschide ecranul Map având punctul geografic în care se află

prietenul curent în centrul hărţii.

De notat că informaţiile legate de locaţia geografică a unui prieten sunt disponibile doar dacă

atât utilizatorul curent cât şi prietenul respectiv sunt online în reţeaua FriLoc.

Dacă utilizatorul doreşte să se conecteze în reţeaua FriLoc cu un nou prieten pe care îl are

deja în reţeaua Facebook, atunci tot ce trebuie să facă este să apese tasta Menu a telefonului şi

să aleagă opţiunea Add Friend (română: adaugă prieten). Se va deschide astfel o nouă

fereastră, în care este prezentă o listă cu toţi prietenii pe care îi are acest utilizator în reţeaua

Facebook, dar cu care nu s-a conectat încă în reţeaua FriLoc. Pentru a uşura procesul de

selecţie al unui utilizator, în partea de sus a ecranului este prezent un câmp text, ce are rolul

de a filtra această listă în funcţie de şirul de caractere introdus.

După alegerea unui prieten cu care se doreşte conectarea, utilizatorului îi este prezentată o

fereastră de tip dialog prin care acesta este rugat să confirme acțiunea respectivă şi în care

acesta are posibilitatea de a îi scrie un mesaj destinatarului.

Pentru a şterge un prieten din reţeaua FriLoc este nevoie ca, din lista în care sunt afişaţi toţi

utilizatorii cu care există deja o conexiune creată, să se selecteze un timp mai îndelungat

persoana respectivă şi să se confirmare acţiunea respectivă în fereastra de confirmare de tip

dialog.

4.13 Ecranul cu evenimente

În fine, ultimul ecran despre care vom discuta în acest capitol este cel ce se ocupă cu afişarea

listei de evenimente. Acesta este cea de-a şasea şi totodată ultima opţiune principală

disponibilă în Dashboard (română: ecranul principal).

Elementul principal al acestui ecran îl constituie lista de evenimente ce vor avea loc în viitorul

apropiat, sortate în funcţie de distanţa geografică, raportat la poziţia curentă a utilizatorului.

Pentru a accesa detalii cu privire la un eveniment, este suficient să se atingă ecranul în dreptul

Page 35: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

29

unui eveniment şi o nouă fereastră, intitulată Event Details (română: detaliile unui eveniment)

se va deschide.

Figura 13: Ecranul cu evenimente

În fereastra Event Details sunt prezente o serie de informaţii despre evenimentul respectiv,

precum:

titlul evenimentului;

o scurtă descriere;

tipul evenimentului (public sau privat);

gazda evenimentului;

lista de invitaţi;

răspunsul utilizatorului către acest eveniment:

o Attending - dacă va participa la eveniment;

o Not Attending - dacă nu doreşte să participe;

o Maybe Attending - dacă utilizatorul nu a luat încă o decizie;

adresa la care se va desfăşura evenimentul respectiv;

oraşul în care va avea loc;

distanţa geografică dintre utilizator şi eveniment;

locaţia de interes în care va avea loc evenimentul, în cazul în care această informaţie a

fost specificată;

posibilitatea de a deschide ecranul Map având punctul geografic în care va avea loc

evenimentul respectiv marcat şi centrat pe hartă.

De asemenea, utilizatorul are posibilitatea şi de a crea noi evenimente, oferind toate detaliile

necesare şi creând o listă de invitaţi.

Page 36: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

30

5 Proiectare şi implementare

În urma prezentării caracteristicilor reţelei FriLoc şi a tuturor funcţionalităţilor aplicaţiei

client, capitolul de faţă propune o continuare firească a celui anterior şi anume prezentarea

generală a arhitecturii platformei precum şi a principalelor caracteristici ale aplicaţiei client

din punct de vedere tehnic.

5.1 Arhitectura platformei

Datorită integrării puternice cu platforma Facebook, arhitectura are un caracter distribuit peste

reţeaua Internet. Din punct de vedere tehnic, pentru ca platforma să funcţioneze

corespunzător, a fost necesar să se conceapă următoarele componente:

serviciu web (alcătuit din baza de date şi module de comunicaţie);

interfaţa cu platforma Facebook;

aplicaţie client pentru platforma Android ce va fi instalată pe terminalele compatibile

ale utilizatorilor.

Figura 14: Diagrama de arhitectură

După cum se poate observa şi din diagrama de arhitectură, FriLoc este o reţea de socializare

online concepută a funcţiona peste reţeaua Internet. Cele trei componente majore, menționate

anterior, rulează pe maşini / dispozitive diferite, însă toate trei pot comunica la un moment dat

între ele. Modul de iniţiere al comunicaţiei dintre componente este:

aplicaţie client Android –> API-ul platformei Facebook

aplicaţie client Android –> API-ul serviciului web FriLoc

Page 37: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

31

API-ul serviciului web FriLoc –> API-ul platformei Facebook

În cele ce urmează, vom detalia specificaţiile tehnice ale fiecărei componente în parte.

5.2 Interfaţa cu Platforma Facebook

Aşa cum am descris şi în subcapitolul 2.3.3, reţeaua de socializare online Facebook pune la

dispoziţia dezvoltatorilor un framework pentru a crea aplicaţii care să interacţioneze cu

caracteristicile Facebook de bază. Astfel, Platforma Facebook expune un API bogat, nucleul

platformei fiind reprezentat de un graf social denumit Graph API. Acesta facilitează accesul

la diverse obiecte, (e.g. utilizatori, fotografii, evenimente, pagini), precum şi la legăturile

dintre acestea (e.g. prietenii, like-uri, fotografii marcate).

API-ul Facebook este de tip REST (Representational State Transfer). Pentru a păstra

confidențialitatea informaţiilor, toate cererile către API se realizează peste protocolul HTTPS.

Adresa de bază a grafului social este https://graph.facebook.com. Toate informaţiile venite ca

răspuns în urma unei cereri respectă standardul JSON de reprezentare a datelor, iar toate

şirurile de caractere respectă standardul ISO-8601.

Pentru a avea acces la API-ul Facebook, este nevoie să se creeze o aplicaţie de tipul Facebook

(engleză: Facebook Application). Odată creată aplicaţia Facebook, acesteia i se va atribui un

ID unic şi se va genera un cod secret denumit App Secret. Acest este necesar pentru ca atât

SDK-ul pentru Android cât şi cel pentru PHP să se poată conecta la platformă.

5.2.1 Graph API

Fiecare obiect din cadrul acestui graf social are un ID unic. Proprietăţile unui obiect putând fi

accesate prin efectuarea unei cereri de forma https://graph.facebook.com/ID. Alternativ,

utilizatorii şi paginile speciale pot fi accesate folosindu-se numele unic al obiectului resepctiv,

în loc de ID. Câteva exemple de obiecte:

obiectul utilizator Bret Taylor: https://graph.facebook.com/btaylor;

obiectul paginii Coca-Cola: https://graph.facebook.com/cocacola;

obiectul evenimentului Facebook Developer Garage Austin:

https://graph.facebook.com/251906384206;

obiectul fotografiei de profil a utilizatorului petrevlad88:

http://graph.facebook.com/petrevlad88/picture;

obiectul unu checkin într-o pizzerie: https://graph.facebook.com/414866888308.

Exemplele date mai sus reprezintă informaţii publice, ce pot fi accesate fără a fi nevoie de o

autentificare anterioară în reţea. Majoritatea informaţiilor sunt însă private şi necesită o

autentificare în urma căreia se obţine o cheie de acces (engleză: access token). Mai multe

detalii despre mecanismul de autorizare al platformei, în secţiunea următoare.

Page 38: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

32

Pentru a vizualiza conexiunile dintre obiecte, este suficient să se acceseze un URL de forma

https://graph.facebook.com/ID/CONNECTION_TYPE. Câteva exemple de conexiuni

specifice:

lista de prieteni a utilizatorului curent autentificat:

https://graph.facebook.com/me/friends?access_token=... ;

lista de evenimente la care utilizatorul cu ID-ul 1128563559 are acces:

https://graph.facebook.com/1128563559/events?access_token=... ;

lista de checkins ale utilizatorului petrevlad88:

https://graph.facebook.com/petrevlad88/checkins?access_token=... .

API-ul Facebook suportă introspecţia obiectelor, ceea ce permite vizualizarea tuturor

conexiunilor pe care un obiect le are. Pentru a folosi această facilitate, este necesar să se

adauge parametrul metadata=1 la URL-ul obiectului respectiv. Astfel, răspunsul cererii va fi

un obiect JSON ce va include o proprietate denumită metadata ce va lista toate conexiunile

suportate de obiectul respectiv.

Spre exemplu, pentru a vizualiza toate conexiunile pe care le are obiectul eveniment

Developer Garage, este suficient să se iniţieze o cerere la URL-ul:

https://graph.facebook.com/331218348435?metadata=1. Rezultatul returnat de API-ul

Facebook va fi:

{

"name": "facebook developer garage austin - sxsw edition",

"metadata": {

"connections": {

"feed": "http://graph.facebook.com/331218348435/feed",

"picture": "https://graph.facebook.com/331218348435/picture",

"invited": "https://graph.facebook.com/331218348435/invited",

"attending": "https://graph.facebook.com/331218348435/attending",

"maybe": "https://graph.facebook.com/331218348435/maybe",

"noreply": "https://graph.facebook.com/331218348435/noreply",

"declined": "https://graph.facebook.com/331218348435/declined"

}

}

}

Figura 15: Introspecţia obiectelor Facebook

5.2.2 Autentificarea în platforma Facebook

Aşa cum am menţionat anterior, majoritatea obiectelor din API necesită autentificare pentru a

fi accesate. Pentru a fi posibil acest lucru, este necesară o cheie de acces (engleză: access

token) specifică utilizatorului Facebook autentificat. După obţinerea acestei chei, se pot

autoriza cereri către API printr-un apel de forma:

https://graph.facebook.com/220439?access_token=... .

Page 39: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

33

Un acces_token este specific unui anumit utilizator şi semnifică faptul că utilizatorul s-a

autentificat în reţea şi că a autorizat aplicaţia terţă să îi acceseze anumite obiecte prin

intermediul API-ului, precum mesaje, poze, prieteni, etc. În mod normal, un access_token

expiră după o anumită perioadă de timp.

În cazul aplicaţiei FriLoc, pentru a exploata la maximum API-ul platformei Facebook, este

necesar ca utilizatorul să autorizeze următoarele permisiuni de acces din partea aplicației:

Permisiune Descriere

offline_access Permisiune necesară pentru a primi din partea platformei Facebook

o cheie de acces care nu expiră.

email Permisiune necesară pentru a avea acces la adresa de e-mail a

utilizatorului.

read_friendlists Permisiune necesară pentru a putea avea acces la lista de prieteni a

utilizatorului.

publish_stream Permisiune necesară pentru cazul în care utilizatorul doreşte să

publice anumite informaţii în profilul său public.

publish_checkins Permisiune necesară pentru cazul în care utilizatorul doreşte să facă

public, locul unde se află la un anumit moment (checkin Facebook

Places).

create_event Permisiune necesară pentru cazul în care un utilizator doreşte să

creeze un eveniment Facebook şi să îl plaseze pe harta FriLoc.

rsvp_event Permisiune necesară pentru ca un utilizator să poată răspunde

invitaţiei unui eveniment din clientul Android.

Figura 16: Permisiuni de acces în platforma Facebook

Autentificarea cu Platforma Facebook se realizează prin protocolul OAuth 2.0.

Confidenţialitatea datelor fiind asigurată prin utilizarea protocolului HTTPS.

5.2.3 Exemple de cereri către API-ul Facebook

În această secţiune doresc să ofer câteva exemple de apeluri pe care clientul Android sau chiar

serviciul web FriLoc le pot iniţia către API-ul Facebook. Exemplele de apeluri, împreună cu

răspunsul lor, sunt însoţite de explicaţii.

Pentru a accesa fotografia pe care o are un utilizator ca poză de profil, este necesar să se

iniţieze o cerere către URL-ul https://graph.facebook.com/petrevlad88/picture. Se poate

specifica dimensiunea dorită dacă se precizează parametrul type cu unul din argumentele

square (50x50), small (50px lăţime şi înălţime variabilă), normal (100px lăţime şi înălţime

variabilă), sau large (200px lăţime şi înălţime variabilă). Răspunsul oferit va fi o redirectare

către fotografia respectivă ca fişier în format JPEG.

Page 40: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

34

Pentru a căuta obiecte în baza de date, se poate utiliza URL-ul

https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE. Câteva exemple de

cereri:

pentru a căuta persoane cu numele mark:

https://graph.facebook.com/search?q=mark&type=user;

pentru a căuta evenimente ce au în titlu cuvântul conference:

https://graph.facebook.com/search?q=conference&type=event;

pentru a căuta locaţii de interes ce au în titlu cuvântul coffee, pe o rază de 1 km în jurul

coordonatelor geografice 37.76 latitudine şi 122.427 longitudine:

https://graph.facebook.com/search?q=coffee&type=place&center=37.76,122.427&dist

ance=1000.

Pentru a publica o informaţie în graful social este necesar să se iniţieze o cerere de tipul HTTP

POST către URL-ul conexiunii obiectului respectiv, ataşându-se o cheie de acces validă. Spre

exemplu, pentru a publica un mesaj pe pagina de profil a utilizatorului Arjun, este necesar să

se efectueze o cerere POST către URL-ul https://graph.facebook.com/arjun/feed:

curl -F 'access_token=...' \

-F 'message=Salut, Arjun. Ce mai faci?' \

https://graph.facebook.com/arjun/feed

Figura 17: Publicarea unui mesaj pe pagina de profil a unui utilizator Facebook

Pentru a şterge obiecte din graf este necesar să se inițieze o cerere de tipul HTTP DELETE

către URL-ul obiectului respectiv. Exemplu:

DELETE https://graph.facebook.com/ID?access_token=... HTTP/1.1

5.2.4 Utilizatori de test

În timpul dezvoltării aplicaţiei, este posibil să se testeze aplicaţia atât cu conturi de Facebook

ale unor persoane reale, cât şi cu conturi de test speciale. Conturile de test pot fi create

generând o cerere către API şi sunt specifice aplicaţiei pentru care au fost generate. Pentru a

crea un cont de test asociat cu o aplicaţie, se poate genera o cerere de forma:

https://graph.facebook.com/APP_ID/accounts/test-users?

installed=true

&permissions=read_stream

&method=post

&access_token=APP_ACCESS_TOKEN

Figura 18: Iniţierea unei cereri de creare a unui cont de test Facebook

Răspunsul este returnat sub forma unui obiect JSON, în care avem ID-ul contului de test, o

cheie de acces, un URL pentru autentificare, o adresa de email fictivă şi o parola generată

aleator. Un exemplu de răspuns este următorul:

Page 41: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

35

{

"id": "1234...",

"access_token":"1234567..." ,

"login_url":"https://www.facebook.com/platform/test_account..."

"email": "[email protected]",

"password": "1234..."

}

Figura 19: Exemplu de răspuns în urma creării unui cont de test Facebook

5.3 Serviciul web

Serviciul web este de tip RESTful (Representational State Transfer) şi este scris în PHP 5.

Serviciul web este alcătuit din patru module:

modulul de comunicaţie cu API-ul Facebook;

modulul de comunicaţie cu baza de date;

modulul de comunicaţie cu clienţii;

modulul de procesare a cererilor.

Baza de date este una de tip relaţional, iar ca sistem de gestiune al bazei de date am optat

pentru MySQL, deoarece pe de-o parte este cel mai popular SGBD cu sursă deschisă la ora

actuală, iar pe de altă parte, serviciul web fiind scris în PHP, am luat în considerare faptul că

acest framework este optimizat în lucrul cu MySQL.

Ca driver de interfaţare PHP - MySQL, am optat pentru MySQLi (MySQL Improved),

deoarece API-ul este orientat pe obiecte, oferă suport pentru tranzacţii şi este mai performant

decât driverul standard.

Modulul de comunicație cu clienţii acceptă cereri din partea acestora peste protocolul HTTP.

Din păcate, datorită faptului că am folosit un serviciu de găzduire ieftin, nu am avut

posibilitatea de a instala un certificat pentru a putea comunica în mod securizat, folosind

protocolul HTTPS. Acest lucru se poate realiza însă într-un mod facil, prin instalarea unui

certificat digital semnat de un Certificate Authority recunoscut.

Toate cererile venite din partea clienţilor trebuie să fie însoţite de cheia de acces necesară

pentru a întreprinde diferite acţiuni pe Facebook în numele utilizatorului.

Pentru a facilita scrierea mai uşoară în limbajul PHP a serviciului web, am activat modulul de

RewriteEngine al serverului web Apache, configurând fişierul .htaccess astfel:

RewriteEngine on

RewriteRule ^.*$ index.php

Figura 20: Activarea modulului RewriteEngine în Apache

Page 42: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

36

Modului de procesare al cererilor are rolul de a trata toate cererile adresate serviciului web şi

de a le oferi acestora un răspuns. De asemenea, modulul de procesare a cererilor poate iniţia la

rândul său alte cereri către API-ul Facebook.

5.4 Aplicaţia client

Aplicaţia client este scrisă în limbajul Java şi dezvoltată pe platforma mobilă Android 2.1,

fiind astfel compatibilă cu versiunile 2.1, 2.2, 2.3 şi 2.4 şi acoperind astfel aproximativ 95%

din piaţă. Paradigma de dezvoltare a aplicaţiei este MVC (Model View Controller).

Aplicaţia este împărţită în 6 pachete, după cum urmează:

com.friloc.facebook – conţine clase ce facilitează comunicaţia cu API-ul Facebook cu

ajutorul SDK-ului;

com.friloc.facebook.sdk – conţine clase scrise de echipa Facebook ce fac parte

integrantă din SDK;

com.frioc.model – conţine clasele ce implementează modelul aplicaţiei;

com.friloc.ui – conţine clasele ce implementează interfaţa grafică a aplicaţiei

com.frioc.ui.adaptors – conţine clasele ce implementează controller-ele listelor;

com.friloc.webservice – conţine clase ce implementează comunicaţia cu serviciul web

FriLoc;

com.frilod.util – conţine clase ce implementează diverse alte funcţionalităţi.

În fundal, aplicaţia porneşte un serviciu care rulează permanent şi care trimite regulat

actualizări către serviciul web cu privire la locaţia curentă a utilizatorului. Locaţia geografică

curentă a utilizatorului este preluată cu ajutorul tehnologiei de triangulare GSM. Această

tehnologie presupune ca telefonul să cunoască antenele GSM la care este conectat, să

cunoască poziţia lor geografică şi, prin calcularea unei medii a distanţelor, să aproximeze

locaţia curentă. Avantajul folosirii triangulării GSM constă în faptul că nu afectează negativ

consumul bateriei, semnalul GSM fiind oricum mereu activ la un telefon mobil. Un

dezavantaj al acestei soluţii ar fi marja de eroare, care este mult mai mare decât în situaţia în

care s-ar folosi tehnologia GPS de localizare prin satelit. Însă, având în vedere faptul că în

oraşe densitatea de antene GSM este crescută, marja de eroare devine acceptabilă, având

aproximativ de 100 metri. [24]

Pentru ca aplicaţia să funcţioneze corespunzător, a fost nevoie să fie incluse în fişierul

Manifest următoarele permisiuni:

<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Page 43: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

37

Figura 21: Permisiuni necesare aplicaţiei Android

În ordinea în care acestea apar în figura de mai sus, rolurile permisiunilor sunt:

de a avea acces la funcţia de vibrare a telefonului mobil;

de a avea acces la internet;

de a accesa starea conexiunii de date mobile;

de a accesa starea conexiunii WiFi;

de a accesa locaţia geografică a utilizatorului, folosindu-se triangularea GSM;

de a seta anumiţi parametri către managerul de sistem care se ocupă de partea de

localizare;

de a putea porni automat aplicaţia în momentul re-startării telefonului.

Page 44: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

38

6 Testare şi evaluare

Soluţia propusă în această lucrare a fost supusă atât unor teste ce ţin de performanţă, cât şi

unor teste ce ţin de implementarea funcţionalităţilor descrise în capitolele anterioare. Pentru a

efectua aceste teste, am folosit diverse instrumente precum perspectiva DDMS (Dalvik Debug

Monitor Server) din mediul de dezvoltare Eclipse [25], aplicaţia Android SystemPanel Lite

sau chiar afişând informaţii pe care chiar sistemul Android le pune la dispoziția utilizatorilor

finali.

Figura 22: Perspectiva DDMS din mediul de dezvoltare Eclipse

Din punct de vedere hardware, aplicaţia a fost dezvoltată şi testată pe telefonul mobil LG

P500 Optimus One, dotat cu platforma Android 2.3.3, cu 512 MB memorie RAM şi procesor

tactat la 600 MHz. De asemenea, teste suplimentare au fost efectuate şi pe telefonul mobil

HTC Desire, dotat cu platforma Android 2.2, cu 512 MB memorie RAM şi procesor tactat la

1 GHz.

În medie, consumul de procesor se situează în jurul valorii de 4 %. Aplicaţia Twitter, setată să

se reîmprospăteze o dată la patru ore, înregistrează un consum mediu de doar 0.5%. Din punct

de vedere al consumului de memorie RAM, aplicaţia FriLoc ocupă efectiv un spaţiu de 15

MB de memorie, în comparaţie cu aplicaţia Twitter, care ocupă aproximativ 12 MB.

Estimativ, consumul de trafic de date într-o lună de zile ar trebui să fie de aproximativ 50 MB

dacă utilizatorul este permanent conectat la reţea iar serviciul este activ în fundal. Cum în ziua

de astăzi pachetele de date pentru dispozitivele mobile sunt destule de accesibile ca preţ, acest

lucru nu ar trebui să fie un impediment în exploatarea la maxim a capabilităţilor aplicaţiei.

Page 45: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

39

Tot estimativ, durata de viaţă a bateriei a scăzut într-adevăr cu câteva procente, dar nu

îndeajuns de mult încât aplicaţia să devină inutilizabilă. Estimarea este valabilă pe platforma

Android 2.3.3, în condiţiile în care utilizatorul a setat ca serviciul să comunice cu serverul o

dată la cinci minute. De asemenea, este important de precizat faptul că sistemul Android 2.3.3

pe care au fost efectuate testele gestionează mai eficient decât versiunile anterioare resursele

consumate de procesele şi serviciile sistemului.

Figura 23: Instrumente de testare disponibile în Android

Din punct de vedere al funcţionalităţilor, în general acestea funcţionează în parametri normali.

Însă, cum nu există produs software perfect (a se citi fără bug-uri), pot apărea situaţii în care

aplicaţia să se defecteze şi să fie necesară o repornire a acesteia. De asemenea, mai există

posibilitatea şi ca sistemul să omoare serviciul din fundal, iar acesta să nu mai pornească

automat.

Datorită faptului că aspectul vizual al aplicaţiei trebuie radical îmbunătăţit şi că cel mai

probabil încă există câteva bug-uri (română: defecte) majore nedetectate din lipsa de timp

alocat testării, aplicaţia nu a ajuns la nivelul de calitate impus unei aplicaţii gata de a fi lansată

pe Android Market.

Page 46: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

40

7 Concluzii şi posibilităţi de extindere

Având în vedere contextul actual în care nevoia de mobilitate şi de disponibilitate este tot mai

accentuată, în care telefoanele mobile inteligente sunt tot mai răspândite, în care accesul la

internet este tot mai facil şi în care a treia ţară din lume este o reţea de socializare online [26],

consider că existenţa FriLoc este justificată pe deplin.

FriLoc este o platformă de socializare bazată pe geolocaţia în timp real a utilizatorilor, care se

detaşează de principalele reţele sociale actuale, datorită funcţionalităţilor unice pe care le are,

precum:

orientare pe utilizatori, dar mai ales pe relaţiile strânse dintre aceştia;

integrare puternică cu API-ul celei mai mari reţele de socializare online: Facebook;

posibilitatea notificării utilizatorului aplicaţiei, pe baza anumitor filtre specificate de

acesta, asupra locaţiilor de interes, a geonotiţelor, sau a prietenilor aflaţi în zona în

care se află utilizatorul la un anumit moment.

Direcţii de dezvoltare ulterioară sunt nenumărate. Următorul pas în dezvoltarea acestei reţele

de socializare ar fi integrarea şi cu alte reţele de socializare online, precum Twitter,

Foursquare sau Gowalla.

Aplicaţia Android poate fi îmbunătăţită în primul rând la capitolele: aspect vizual, optimizarea

bateriei şi optimizarea consumului de trafic de date. Ca funcționalități ce pot fi adăugate

aplicației, putem enumera posibilitatea creării de grupuri temporare de utilizatori (ex: pentru

excursii), filtrarea locaţiilor de interes pe hartă în funcţie de ora deschiderii acestora,

implementarea unor algoritmi inteligenţi de sugestie a locaţiilor de interes pe baza datelor

adunate din profilul de Facebook al utilizatorului.

Figura 24: Sigla FriLoc

Page 47: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

41

9 Bibliografie

[1] (accesat în ianuarie 2011) Socialbakers. [Online].

http://www.socialbakers.com/blog/100-facebook-reaches-600-million-users/

[2] (accesat în februarie 2011) Facebook. [Online].

http://www.facebook.com/blog.php?post=297879717130

[3] (accesat în mai 2011) Cnet News. [Online]. http://news.cnet.com/8301-1023_3-

20062640-93.html?part=rss&subj=news&tag=2547-1_3-0-20

[4] (accesat în aprilie 2011) Techradar. [Online]. http://www.techradar.com/news/phone-

and-communications/mobile-phones/a-complete-history-of-android-470327

[5] (accesat în iunie 2011) Android Developers. [Online].

http://developer.android.com/guide/basics/what-is-android.html

[6] (accesat în mai 2011) Wikipedia. [Online].

http://en.wikipedia.org/wiki/History_of_Facebook

[7] (accesat în mai 2011) Wikipedia. [Online].

http://en.wikipedia.org/wiki/Facebook_features

[8] (accesat în iunie 2011) Wikipedia. [Online].

http://en.wikipedia.org/wiki/Facebook_Platform

[9] (accesat în ianuarie 2011) Facebook Developers. [Online].

http://developers.facebook.com/docs/

[10] (accesat în ianuarie 2011) SFGate. [Online]. http://www.sfgate.com/cgi-

bin/article.cgi?f=/g/a/2010/10/29/businessinsider-facebook-places-may-have-30-million-

users-but-none-of-them-use-it-very-much-2010-10.DTL

[11] (accesat în martie 2011) Facebook. [Online]. http://www.facebook.com/places/

[12] (accesat în iunie 2011) Mashable. [Online]. http://mashable.com/2011/06/20/foursquare-

10-million/

[13] (accesat în martie 2011) TechCrunch. [Online].

http://techcrunch.com/2011/02/10/gowalla-users/

[14] (accesat în aprilie 2011) Engadget. [Online].

http://www.engadget.com/2005/05/12/google-buys-dodgeball/

[15] (accesat în aprilie 2011) Google Blog. [Online].

http://googleblog.blogspot.com/2009/02/see-where-your-friends-are-with-google.html

[16] (accesat în aprilie 2011) TechCrunch. [Online].

http://techcrunch.com/2010/12/14/google-latitude/

[17] (accesat în martie 2011) TechCrunch. [Online].

http://techcrunch.com/2010/05/06/google-latitude-users-check-in/

[18] (accesat în februarie 2011) ShoutEx. [Online]. http://shoutex.com/blog/location-based-

mobile-apps-scvngr-flowd-spyami/

[19] (accesat în mai 2011) Tech n Gadgets. [Online]. http://techngadgets.co.uk/geomium-

Page 48: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

42

%E2%80%93-the-future-of-social-networks.html

[20] (accesat în februarie 2011) Androidul. [Online].

http://www.androidul.ro/index.php/2011/02/adulmec-lanseaza-aplicatia-urbo-si-pentru-

android/

[21] (accesat în iunie 2011) TechCrunch. [Online]. http://techcrunch.com/2011/06/13/its-a-

facebook-world-other-social-networks-just-live-in-it/

[22] (accesat în iunie 2011) Android Developers. [Online].

http://developer.android.com/resources/dashboard/platform-versions.html

[23] (accesat în iunie 2011) Android Market. [Online]. https://market.android.com/

[24] Paul Imhoff Daniel Plohmann, Localization (GPS, GSM, WLAN). XP Course.:

Universitaet Bonn, 2007.

[25] (accesat în iulie 2011) Android Developers. [Online].

http://developer.android.com/guide/developing/debugging/ddms.html

[26] (accesat în iulie 2011) Mountain Weekly News. [Online]. http://mtnweekly.com/if-

facebook-was-a-country-it-would-be-the-third-largest-in-the-world-11731

[27] (accesat în iunie 2011) Android Developers. [Online].

http://developer.android.com/guide/basics/what-is-android.html

[28] (accesat în iunie 2011) Android Developers. [Online].

http://developer.android.com/resources/dashboard/platform-versions.html

[29] (accesat în iunie 2011) Android Market. [Online]. https://market.android.com/

[30] (accesat în februarie 2011) Androidul. [Online].

http://www.androidul.ro/index.php/2011/02/adulmec-lanseaza-aplicatia-urbo-si-pentru-

android/

[31] (accesat în mai 2011) Cnet News. [Online]. http://news.cnet.com/8301-1023_3-

20062640-93.html?part=rss&subj=news&tag=2547-1_3-0-20

[32] (accesat în aprilie 2011) Engadget. [Online].

http://www.engadget.com/2005/05/12/google-buys-dodgeball/

[33] (accesat în februarie 2011) Facebook. [Online].

http://www.facebook.com/blog.php?post=297879717130

[34] (accesat în mai 2011) Facebook. [Online]. http://www.facebook.com/places/

[35] (accesat în ianuarie 2011) Facebook Developers. [Online].

http://developers.facebook.com/docs/

[36] (accesat în martie 2011) Google Blog. [Online].

http://googleblog.blogspot.com/2009/02/see-where-your-friends-are-with-google.html

[37] (accesat în iunie 2011) Mashable. [Online]. http://mashable.com/2011/06/20/foursquare-

10-million/

[38] (accesat în aprilie 2011) SFGate. [Online]. http://www.sfgate.com/cgi-

bin/article.cgi?f=/g/a/2010/10/29/businessinsider-facebook-places-may-have-30-million-

users-but-none-of-them-use-it-very-much-2010-10.DTL

Page 49: Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

Proiect de Diplomă

Reţea de socializare bazată pe geolocalizare

43

[39] (accesat în februarie 2011) ShoutEx. [Online]. http://shoutex.com/blog/location-based-

mobile-apps-scvngr-flowd-spyami/

[40] (accesat în mai 2011) Socialbakers. [Online]. http://www.socialbakers.com/blog/100-

facebook-reaches-600-million-users/

[41] (accesat în februarie 2011) Tech n Gadgets. [Online].

http://techngadgets.co.uk/geomium-%E2%80%93-the-future-of-social-networks.html

[42] (accesat în iunie 2011) TechCrunch. [Online]. http://techcrunch.com/2010/12/14/google-

latitude/

[43] (accesat în iunie 2011) TechCrunch. [Online].

http://techcrunch.com/2011/02/10/gowalla-users/

[44] (accesat în iulie 2011) TechCrunch. [Online]. http://techcrunch.com/2011/06/13/its-a-

facebook-world-other-social-networks-just-live-in-it/

[45] (accesat în mai 2011) TechCrunch. [Online]. http://techcrunch.com/2010/05/06/google-

latitude-users-check-in/

[46] (accesat în ianuarie 2011) Techradar. [Online]. http://www.techradar.com/news/phone-

and-communications/mobile-phones/a-complete-history-of-android-470327

[47] (accesat în martie 2011) Wikipedia. [Online].

http://en.wikipedia.org/wiki/History_of_Facebook

[48] (accesat în aprilie 2011) Wikipedia. [Online].

http://en.wikipedia.org/wiki/Facebook_features

[49] (accesat în mai 2011) Wikipedia. [Online].

http://en.wikipedia.org/wiki/Facebook_Platform