Date post: | 07-Nov-2014 |
Category: |
Technology |
Upload: | vlad-petre |
View: | 1,786 times |
Download: | 1 times |
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
Coordonatori Ştiinţifici:
Prof. Dr. Ing. Nicolae Ţăpuş As. Drd. Ing. Alexandru Olteanu
[email protected] [email protected]
Bucureşti, România
Iulie 2011
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.
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
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
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
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.
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]
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.
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.
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;
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.
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;
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:
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.
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.
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
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
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.
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.
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,
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]
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ă
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]
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
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
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.
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)
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
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
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
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;
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;
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.
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
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.
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
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.
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=... .
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.
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¢er=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:
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
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" />
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.
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.
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.
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
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-
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
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