Universitatea „Politehnica” din BucureştiFacultatea de Automatică şi Calculatoare, Catedra de Calculatoare  PROIECT DE DIP...
AbstractTelefoanele mobile au apărut din nevoia oamenilor de a fi mereu în contactunii cu alţii. Pe măsură ce capabilităţi...
Proiect de Diplomă                                                                                              Reţea de s...
Proiect de Diplomă                                                                                          Reţea de socia...
Proiect de Diplomă                                                                                           Reţea de soci...
Proiect de Diplomă                                                               Reţea de socializare bazată pe geolocaliz...
Proiect de Diplomă                                                                  Reţea de socializare bazată pe geoloca...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                                  Reţea de socializare bazată pe geoloca...
Proiect de Diplomă                                                                 Reţea de socializare bazată pe geolocal...
Proiect de Diplomă                                                                 Reţea de socializare bazată pe geolocal...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                                  Reţea de socializare bazată pe geoloca...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                               Reţea de socializare bazată pe geolocaliz...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                               Reţea de socializare bazată pe geolocaliz...
Proiect de Diplomă                                                                     Reţea de socializare bazată pe geol...
Proiect de Diplomă                                                                  Reţea de socializare bazată pe geoloca...
Proiect de Diplomă                                                                    Reţea de socializare bazată pe geolo...
Proiect de Diplomă                                                                    Reţea de socializare bazată pe geolo...
Proiect de Diplomă                                                                    Reţea de socializare bazată pe geolo...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                                      Reţea de socializare bazată pe geo...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                                           Reţea de socializare bazată p...
Proiect de Diplomă                                                                  Reţea de socializare bazată pe geoloca...
Proiect de Diplomă                                                                        Reţea de socializare bazată pe g...
Proiect de Diplomă                                                                    Reţea de socializare bazată pe geolo...
Proiect de Diplomă                                                                     Reţea de socializare bazată pe geol...
Proiect de Diplomă                                                                     Reţea de socializare bazată pe geol...
Proiect de Diplomă                                                                     Reţea de socializare bazată pe geol...
Proiect de Diplomă                                                                    Reţea de socializare bazată pe geolo...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                                     Reţea de socializare bazată pe geol...
Proiect de Diplomă                                                                   Reţea de socializare bazată pe geoloc...
Proiect de Diplomă                                                                    Reţea de socializare bazată pe geolo...
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Upcoming SlideShare
Loading in …5
×

Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

3,274 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,274
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
107
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare

  1. 1. Universitatea „Politehnica” din BucureştiFacultatea de Automatică şi Calculatoare, Catedra de Calculatoare PROIECT DE DIPLOMĂ Reţea de socializare bazată pe geolocalizare Absolvent: Vlad-Ştefan Petre vlad@vladpetre.com Coordonatori Ştiinţifici: Prof. Dr. Ing. Nicolae Ţăpuş As. Drd. Ing. Alexandru Olteanu nicolae.tapus@cs.pub.ro alexandru.olteanu@cti.pub.ro Bucureşti, România Iulie 2011
  2. 2. AbstractTelefoanele mobile au apărut din nevoia oamenilor de a fi mereu în contactunii 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 acomunica. Lucrarea de faţă îşi propune să prezinte o evoluţie firească aacestui tip de servicii: o reţea de socializare bazată pe geolocalizare în timpreal adresată în primul rând celor ce doresc să fie în contact permanent cucei apropiaţi, denumită în continuare FriLoc.
  3. 3. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare Cuprinsul lucrării1 Introducere ..........................................................................................................1 1.1 Problema abordată .......................................................................................................... 2 1.2 Scopul proiectului .......................................................................................................... 2 1.3 Conţinutul lucrării .......................................................................................................... 32 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 ............................................................................................ 133 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 .............................................................................................................................. 174 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 ii
  4. 4. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare 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 ................................................................................................. 285 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 ............................................................................................................. 366 Testare şi evaluare ........................................................................................... 387 Concluzii şi posibilităţi de extindere............................................................... 409 Bibliografie ........................................................................................................ 41 iii
  5. 5. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare Listă de figuriFigura 1: Ce este Android. ......................................................................................................... 5Figura 2: Arhitectura platformei Android. ................................................................................. 5Figura 3: Ecranul de autentificare ............................................................................................ 19Figura 4: Ecranul principal ....................................................................................................... 20Figura 5: Serviciul şi interfaţa grafică ...................................................................................... 21Figura 6: Ecranul cu informaţii despre FriLoc ......................................................................... 22Figura 7: Ecranul cu setări ....................................................................................................... 22Figura 8: Ecranul cu notificări şi ecranul cu fluxul de ştiri ...................................................... 23Figura 9: Ecranul de tip hartă ................................................................................................... 24Figura 10: Ecranul cu alerte pe locaţie ..................................................................................... 25Figura 11: Ecranul cu locaţii de interes .................................................................................... 26Figura 12: Ecranul cu prieteni .................................................................................................. 27Figura 13: Ecranul cu evenimente ............................................................................................ 29Figura 14: Diagrama de arhitectură .......................................................................................... 30Figura 15: Introspecţia obiectelor Facebook ............................................................................ 32Figura 16: Permisiuni de acces în platforma Facebook ........................................................... 33Figura 17: Publicarea unui mesaj pe pagina de profil a unui utilizator Facebook ................... 34Figura 18: Iniţierea unei cereri de creare a unui cont de test Facebook ................................... 34Figura 19: Exemplu de răspuns în urma creării unui cont de test Facebook............................ 35Figura 20: Activarea modulului RewriteEngine în Apache ..................................................... 35Figura 21: Permisiuni necesare aplicaţiei Android .................................................................. 37Figura 22: Perspectiva DDMS din mediul de dezvoltare Eclipse ............................................ 38Figura 23: Instrumente de testare disponibile în Android ........................................................ 39Figura 24: Sigla FriLoc ............................................................................................................ 40 iv
  6. 6. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare Notaţii şi abrevieriFriLoc 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ăriHTTPS 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 LayerTLS 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. v
  7. 7. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare1 IntroducereÎn ultimii ani, Internetul a cunoscut o creştere exponenţială la o scară globală. Acest fapt acondus 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 acunoscut ş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 pecomunităţi, unde utilizatorii nu mai sunt doar simpli consumatori de conţinut, ci au devenitchiar producători de conţinut. De asemenea, Web-ul 2.0 a dus la apariţia unor noi platformespecifice de comunicare între oameni, platforme care se adresează în mod special relaţiilorinterumane 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ţade 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 areţelelor operatorilor de telefonie mobilă, precum şi cu creşterea tot mai mare a numărului deutilizatori ai reţelelor de socializare online [1], acestea din urmă au început să fie tot mai desaccesate de pe telefoane mobile inteligente conectate la Internet [2].Însă, tot acest melanj de tehnologie, socializare, Internet şi mobilitate a condus către apariţiaunei noi forme de reţea de socializare. Este vorba de reţelele de socializare online, bazate pegeolocaţia utilizatorilor, dedicate spre a fi accesate prin intermediul terminalelor mobileinteligente, dotate cu senzori de localizare globala (GPS - Global Positioning System) şi accesla Internet.Conform unui raport publicat de ComScore pe data de 12 mai 2011, aproximativ unul dincinci utilizatori de telefoane inteligente (engleză: smartphones) folosesc servicii bazate pegeolocalizare 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 înmartie 2011. [3] 1
  8. 8. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare1.1 Problema abordatăMajoritatea reţelelor de socializare online (inclusiv cele bazate pe geolocaţia utilizatorilor) dinziua de astăzi sunt orientate pe amiciţiile dintre utilizatori, pe atingerea unui număr cât maimare de legături superficiale între utilizatori, şi nu pe cultivarea legăturile strânse dintreaceştia (cum sunt prieteniile adevărate). De asemenea, principalele reţele de socializareactuale încurajează utilizatorul să partajeze cât mai multe informaţii cu cât mai mulţiutilizatori (de multe ori, fiind vorba de prieteni pe care utilizatorul nici măcar nu îi cunoaştepersonal).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 careinformaţia respectivă devine expirată. Spre exemplu, după o oră de stat într-o cafenea, deşiutilizatorul părăseşte locaţia respectivă, informaţia despre prezenţa sa în acel punct de interesrămâne înscrisă, deşi nu (mai) interesează pe nimeni.1.2 Scopul proiectuluiPrin lucrarea de faţă, doresc să abordez problema diferit. Astfel, lucrarea propune dezvoltareaunei reţele de socializare online bazată pe geolocalizare în timp real şi dedicată accesării de peun 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 întimp 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ă posibilitateade 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 interesdin zona în care se află aceştia la momentul respectiv, precum şi de a plasa georeminder-e pehartă.În fine, soluţia de faţă mai propune şi integrarea cu cea mai mare reţea de socializare online laora actuală: Facebook [1]. Scopul este ca un nou utilizator să nu fie nevoit să îşi creeze uncont în această nouă reţea, ci să se folosească de unul actual, deja populat cu informaţiiprecum 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 prieteniicei mai apropiaţi cu care utilizatorul va interacţiona în reţeaua FriLoc din lista de prieteni pecare acesta îi are în reţeaua Facebook, promovarea unui eveniment creat în reţeaua FriLoc pereţeaua Facebook, şi nu în ultimul rând, popularea bazei de date cu locaţii de interes FriLoc pebaza informaţiilor culese din reţeaua Facebook. 2
  9. 9. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare1.3 Conţinutul lucrăriiLucrarea 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. 3
  10. 10. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare2 Noţiuni preliminareÎn acest capitol doresc să introduc câteva aspecte generale cu privire la platforma Android şisă detaliez sumar procesul de scriere de aplicaţii pentru această platformă. De asemenea, tot înacest capitol doresc să prezint şi câteva concepte generale legate de accesarea API-ului reţeleiFacebook.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 ooferă, 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 mobileinteligente, 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ă pefondatori să rămână sa lucreze în continuare la proiect. Echipa reuşeşte astfel să dezvolte oplatformă 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 dispozitivelormobile.Pe data de 5 noiembrie 2007, este înfiinţat Open Handset Alliance, un consorţiu ce includemai 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 deschisepentru 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 deoperare, 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; 4
  11. 11. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare  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. 5
  12. 12. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareÎ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ţiide 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. Toateaplicaţiile Android sunt scrise în limbajul Java.Deoarece Android este o platformă deschisă, dezvoltatorii au posibilitatea de a crea aplicaţiibogate în conţinut şi inovative în idei. Astfel, dezvoltatorii pot să capete acces la hardware-uldispozitivului, la informaţii cu privire la locaţia dispozitivului, la serviciile care rulează înfundal, pot sa adauge notificări în bara de status a sistemului (engleză: Status Bar) şi multealtele.Dezvoltatorii au acces complet la acelaşi API al framework-ului la care au acces şi aplicaţiilede bază ale platformei. Arhitectura platformei a fost gândită de aşa natură încât componentelesă poată fi reutilizate, astfel că orice aplicaţie îşi poate face publice capabilităţile şi poate fiaccesată 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 numeroasecomponente ale sistemului. Accesul către aceste biblioteci pentru dezvoltatori este facilitat decă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; 6
  13. 13. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare  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 expunmajoritatea funcţionalităţilor prezente în bibliotecile standard Java. Dacă tot am atins acestaspect, 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 cadrulmaşinii virtuale Dalvik. Maşina virtuală Dalvik rulează fişiere executabile în format .dex, cesunt optimizate pentru a folosi cât mai puţin memoria. Maşina virtuală Dalvik se bazează penucleul Linux pentru a gestiona firele de execuţie şi pentru a gestiona memoria la nivelhardware.Platforma Android este bazată pe nucleul Linux, versiunea 2.6, pentru accesul la servicii debază 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 AndroidAplicaţiile Android sunt scrise în limbajul de programare orientat obiect Java. Uneltele dincadrul SDK-ului Android sunt cele ce compilează codul Java (împreună cu alte fişiere tipresursă necesare) într-un pachet Android. Prin pachet Android înţelegându-se un fişiercomprimat având extensia .apk. Tot ceea ce se află într-un astfel de fişier .apk este consideratca fiind o aplicaţie Android, iar acest fişier este cel ce este instalat pe dispozitive, pentru caacestea să poată rula aplicaţia respectivă.Odată instalată pe un terminal mobil, fiecare aplicaţie Android trăieşte în propriul spaţiu dememorie virtualizat – conceptul se numeşte sandboxing: 7
  14. 14. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare  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. Acestprincipiu forţează ca fiecare aplicaţie, în mod implicit, să aibă acces doar la componentelenecesare funcţionări ei corespunzătoare şi nimic mai mult. Acest mecanism asigură un mediusigur în care o aplicaţie nu poate accesa părţi ale sistemului pentru care nu a primitpermisiuni.Totuşi, pentru a mări gradul de flexibilitate, au fost implementate şi mecanisme prin care oaplicaţie poate partaja date cu alte aplicaţii, precum şi prin care o aplicaţie poate avea acces laserviciile 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ţiiComponentele sunt cărămizile unei aplicaţii Android. Fiecare componentă reprezintă ometodă diferită prin care sistemul are acces la o aplicaţie. Însă nu toate componentele uneiaplicaţii facilitează accesul utilizatorului. De asemenea, fiecare componentă există ca oentitate 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 ciclude viaţă specific ce definește modul în care componenta este creată şi distrusă. În continuarevom descrie cele patru componente. 8
  15. 15. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare2.2.1.1 ActivităţileO activitate reprezintă un singur ecran cu o singură interfață pentru utilizator. Spreexemplu, o aplicație de email poate avea o activitate ce afișează lista de emailurinecitite, o activitate în care se poate compune un nou mesaj email şi încă o activitate încare se pot citi emailuri. Deşi activităţile lucrează una cu cealaltă pentru a crea oexperienţă 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, acestlucru 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 emailpentru a compune un nou mesaj email având ca ataşament fotografia ce tocmai a fostfăcută.2.2.1.2 ServiciileUn serviciu este o componentă ce rulează în fundal şi are rolul de a efectua operaţii delungă durată sau poate duce la îndeplinire diferite sarcini pentru alte procese. Unserviciu nu poate interacţiona în mod direct cu utilizatorul. Spre exemplu, un serviciupoate să redea muzică în fundal, în timp ce utilizatorul navighează pe internet utilizândo altă aplicaţie. Sau, un serviciu poate să preia date de la un serviciu web fără a blocainteractivitatea utilizatorului cu o activitate. Un serviciu este întotdeauna pornit de cătreo altă componentă. Spre exemplu, o activitate poate porni un serviciu şi poateinteracționa cu acesta.2.2.1.3 Furnizorii de conținutUn furnizor de conţinut gestionează un set de date partajat între diferite aplicaţii. Oaplicaţie poate stoca date în sistemul de fişiere, în baza de date SQLite, pe web, sau înoricare alt spaţiu de stocare persistent la care are acces aplicaţia respectivă. Folosindfurnizorii de conţinut, şi alte aplicaţii pot citi sau scrie diferite date, cu condiţia ca acestasă permită acest lucru. Spre exemplu, sistemul Android pune la dispoziţie un furnizor deconţinut ce gestionează contactele utilizatorului. Prin urmare, orice aplicaţie, avândpermisiunile 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 asemeneautili pentru scrierea sau citirea datelor private ale aplicaţiei curente.2.2.1.4 Receptorii de difuzareUn 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 fostfăcută, sistemul iniţiază un anunţ general. Aplicaţiile pot şi ele să iniţieze anunţurigenerale - spre exemplu, pentru a anunţa celelalte aplicaţii de faptul că anumite date aufost descărcate de pe internet şi sunt acum disponibile spre a fi utilizate. Deşi receptoriide difuzare nu prezintă o interfaţă cu utilizatorul, ei pot să genereze notificări în bara destare, pentru a alerta utilizatorul atunci când un eveniment de difuzare are loc. Îngeneral, un receptor de difuzare este un fel de poartă de acces către alte componente. 9
  16. 16. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare 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 demecanismul unic prin care o aplicaţie poate porni o componentă a altei aplicaţii. Spreexemplu, daca se doreşte ca utilizatorul să facă o fotografie utilizând camera foto, cel maiprobabil este o altă aplicaţie care se ocupă de aşa ceva, iar aplicaţia curentă se poate folosi deacest lucru, în loc să se piardă timpul cu dezvoltarea unei activităţi care să se ocupa de acestlucru. Astfel, pentru a prelua o fotografie de la camera foto, este necesar doar ca activitateadin cadrul aplicaţiei camerei foto care are rolul de a fotografia. După ce utilizatorul a terminatde fotografiat, poza respectivă este returnată aplicaţiei iniţiale pentru a fi folosită. Pentruutilizator 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 unproces specific acelei aplicaţii (asta dacă nu există un proces specific acelei aplicaţii carerulează deja), iar apoi instanţiază clasele necesare acelei componente.Deoarece sistemul rulează fiecare aplicaţie într-un proces separat, având permisiuni cerestricţionează accesul către alte aplicaţii, o aplicaţie nu poate să activeze o componentă aaltei 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 pecare 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 socializareFacebook, 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 istoricLa începutul anului 2003, Adam D’Angelo pe vremea aceea student la Institutul TehnologicCaltech 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’Angelos-a hotărât să o închidă. În vara acelui an, Mark Zuckerberg – prieten cu D’Angelo încă dinliceu, împreună cu nişte prieteni analizează succesul website-ului Buddy Zoo şi discută despreviitorul reţelelor de socializare de pe Internet. În data de 28 octombrie 2003, Mark Zuckerbergdezvoltă Facemash, un site ce compara seturi de câte două poze şi în care utilizatorii eraurugaţ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 10
  17. 17. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare6 zile de la lansarea acestui website, Zuckerberg este acuzat de 3 colegi (CameronWinklevoss, 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 şipentru 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 Parkerdevine preşedinte. În iunie 2004, sediul companiei este mutat în Palo Alto, California. În2005, compania a renunţat la articolul „The” din numele acesteia, achiziţionând domeniulfacebook.com.În prezent, Facebook este cea mai mare reţea de socializare online, numărând peste 600 demilioane 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 11
  18. 18. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareprieteni 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 prieteniFacebook permite ca utilizatorii să facă parte din diferite reţele şi grupuri de prieteni. Pebaza grupurilor de prieteni, un utilizator îşi poate particulariza setările ce ţin deintimitatea sa. De asemenea, grupurile sunt utile pentru a discuta şi a organizaevenimente. Un utilizator nu poate face parte din mai mult de 300 de grupuri la unmoment dat.2.3.2.6 PeretelePeretele (engleză: Wall) este un spaţiu aflat pe pagina fiecărui utilizator şi permite caprietenii 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 încazul unei aniversări).2.3.2.7 Fluxul de ştiriAceastă 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 înacest 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 dea seta nivelul de informaţii care poate ajunge în acest flux de ştiri.2.3.2.8 NotificăriNotifică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ă ceaparţine utilizatorului curent, sau cineva a publicat un mesaj pe peretele utilizatoruluicurent. Conceptul este similar cu cel din Android.2.3.2.9 EvenimenteEvenimentele Facebook reprezintă o metodă prin care utilizatorii îşi pot ţine la curentprietenii 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ă, tipulevenimentului (public sau privat), ora şi data de începere precum şi ora la careevenimentul se încheie, locaţia evenimentului şi o listă de invitaţi.2.3.2.10 LocuriLocurile (engleză: Places) au fost introduse în august 2010. Este o caracteristică princare un utilizator se poate înregistra ca fiind prezent într-o anumită locaţie folosindtelefonul mobil şi informându-şi astfel prietenii cu privire la prezenţa sa în locaţiarespectivă. Pentru ca un utilizator să poată să folosească această caracteristică, estenecesar să aibă un telefon cu Android, iOS sau BlackBerry şi să aibă instalată aplicaţiaoficială Facebook. Această caracteristică mai poate fi utilizată şi dacă este accesat site-ul mobil Facebook folosind un navigator cu suport pentru HTML5. 12
  19. 19. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare2.3.3 Platforma FacebookPlatforma Facebook pune la dispoziţie un API bogat şi instrumente diverse ce permitdezvoltatorilor 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.compână la dezvoltare pe dispozitive mobile. [8]Platforma pune la dispoziţie un framework pentru dezvoltatorii de software pentru a creaaplicaţ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ţionezecu Graph API în numele utilizatorilor Facebook şi facilitează un mecanism de single-sign-onatâ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 autentificepe 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 ajutape utilizatori să se conecteze şi să partajeze informaţii cu prietenii lor din Facebook, atâtdirect î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 grafulsocial. Odată integrate în graful social, aceste pagini capătă funcţionalităţi specifice oricăruiobiect din graf, precum o legătură către un profil sau un flux constant de actualizări pentruutilizatorii conectaţi la respectivul obiect. 13
  20. 20. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare3 Analiza principalelor soluţii similare existenteCapitolul de faţă propune o analiză sumară a soluţiilor similare existente pe piaţă la oraactuală, scoţând în evidenţă dezavantaje sau lipsuri ale acestor soluţii, motivând astfelproiectul prezentat în lucrarea de faţă.Principalele servicii de socializare online existente pe piaţă la ora actuală, dedicate spre a fiaccesate de pe dispozitive mobile şi care se bazează pe locaţia utilizatorului sunt: FacebookPlaces, Foursquare, Gowalla, Google Latitude, SCVNGR, Geomium şi Urbo.3.1 Facebook PlacesPlaces este un serviciu oferit de către cea mai mare reţea de socializare online. A fost lansat înaugust 2010 şi în prezent are peste 30 de milioane de utilizatori, deşi sunt mult mai puţini ceice folosesc acest serviciu în mod activ. [10]Places este un serviciu disponibil pentru toţi utilizatorii reţelei Facebook, ce poate fi accesatdoar de pe un dispozitiv mobil, fie folosind aplicaţia oficială Facebook pentru Android, iOSsau BlackBerry, fie accesând varianta mobilă a site-ului folosind un navigator cu suportpentru 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 înacea 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 unanumit 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, similarFacebook Places, dar care a apărut cu un an înaintea acestuia, mai exact în anul 2009. În iunie2010, această reţea de socializare a anunţat că a atins pragul psihologic de 10 milioane deutilizatori. [12]Pe lângă posibilitatea de a se înregistra ca fiind prezent într-un punct de interes sau de aconsulta cele mai recente înregistrări publicate de prietenii săi, un utilizator mai areposibilitatea şi de a câştiga insigne (engleză: badges) speciale, în funcţie de cât de desutilizează serviciul de înregistrare.De asemenea, un utilizator poate să devină primar (engleză: mayor) al unei locaţii de interesdacă are la activ cele mai multe înregistrări în acea locaţie în ultimele 60 de zile, În plus, 14
  21. 21. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareutilizatorul 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 posibilitateade a consulta locaţia în timp real a prietenilor săi pe o hartă. De asemenea, FriLocimplementează şi totodată extinde conceptul de listă tip To Do, oferind posibilitatea ca unutilizator 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 GowallaGowalla 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, acestserviciu 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 atreia, permite utilizatorilor să îşi publice înregistrarea (engleză: checkin) într-o locaţie şi pereţelele Foursquare, Facebook Places, Twitter şi Tumblr. De asemenea, noua versiune aaplicaţiei mai permite utilizatorilor şi să consulte înregistrările pe care aceştia le-au efectuat încadrul celorlalte reţele de socializare bazate pe geolocalizare.Similar Facebook Places şi Foursquare, nici acest serviciu de socializare bazat pegeolocalizare nu este disponibil şi în varianta de timp real – o caracteristică de bază aaplicaţiei FriLoc. In reţeaua FriLoc nu există nici conceptul de primar promovat de reţeauaFoursquare, şi nici conceptul de obiecte virtuale câştigate în urma unui checkin – promovatatât de Foursquare cât şi de Gowalla, deoarece caracteristica de înregistrare nu este unafundamentală în cadrul proiectului de faţă, accentul punându-se pe posibilitatea de consultalocaţiile prietenilor în timp real pe hartă.3.4 Google LatitudeGoogle Latitude este un serviciu de socializare bazat pe geolocalizare lansat în februarie2009, de către gigantul Google. Serviciul reprezintă o evoluţie a startup-ului ce oferea unserviciu similar bazat pe geolocalizare, denumit Dodgeball, lansat în 2000 şi achiziţionat deGoogle în 2005. [14]Serviciul se vrea a fi o reţea de socializare bazată pe geolocalizare prin intermediul căreiautilizatorii să poată avea posibilitatea de a vedea locaţia curentă a altor utilizatori Google pehartă (pe baza unei autorizări din partea acestora). [15] 15
  22. 22. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareLatitude are o bază de 9 milioane de utilizatori, dintre care doar aproximativ 3 milioane suntactivi î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 realitateadevă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 pentrucare este puternic integrată cu cea mai mare reţea de socializare online: Facebook. Deasemenea, FriLoc prezintă în plus nişte caracteristici cu adevărat utile pentru utilizatori, cumar fi Georeminder-ele sau poziţionarea evenimentelor pe hartă.3.5 SCVNGRSCVNGR (a se citi scavenger - engleză), este o platformă de jocuri bazată pe geolocalizarepentru dispozitive mobile. Aplicaţia are atât o componentă destinată companiilor, cât şi ocomponentă 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âştigapuncte, sau pot obţine insigne speciale virtuale, precum şi reduceri în viaţa reală la diferiţicomercianţi.Similar Foursquare şi Gowalla, această reţea de socializare nu permite consultarea locaţieicurente a utilizatorilor pe hartă.3.6 GeomiumGeomium este o reţea de socializare bazată pe geolocalizare, lansată în septembrie 2010 cusediul la Londra. Din anumite puncte de vedere, Geomium este aplicaţia care seamănă cel maimult cu ceea ce FriLoc se doreşte a fi. Ambele reţele de socializare plasează pe hartă atâtdiferite 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 recompensarea 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 petelefoanele iPhone. În al doilea rând, FriLoc are un mare avantaj oferit de integrarea puternică 16
  23. 23. Proiect de Diplomă Reţea de socializare bazată pe geolocalizarepe care o are cu Facebook-ul. De asemenea, FriLoc prezintă şi câteva caracteristici pe careGeomium 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 careacestea tratează informaţiile cu privire la locaţia curentă a unui utilizator. Reţeaua Geomium aprimit numeroase critici cu privire la faptul că există posibilitatea de a accesa locaţia în timpreal 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 Facebookla nivel mondial încă din prima zi de la lansare. [19]3.7 UrboUrbo este o aplicaţie de informare bazată pe geolocalizare, românească. Aplicaţia este extremde bogată în ceea ce priveşte numărul de locaţii de interes (baza de date are peste 100.000firme), asta deoarece acest serviciu se vrea a fi un ghid al firmelor pe piaţa românească. Dinpă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 putemmenţiona şi faptul că un utilizator poate câştiga diverse insigne virtuale dacă foloseşte funcţiade înregistrare în mod frecvent. Ca noutate, putem aminti faptul că aplicaţia permitecalcularea 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ă cuun concept de înregistrare similar Foursquare şi Gowalla, FriLoc se concentrează peposibilitatea de a consulta locaţiile prietenilor în timp real. De asemenea, FriLoc, spredeosebire de Urbo, se vrea a fi o veritabilă reţea de socializare cu multiple caracteristiciprecum plasarea pe hartă atât a unor locaţii de interes, cât şi a unor evenimente sau a unorgeoalerte. De asemenea, reţeaua FriLoc este puternic integrată cu Facebook, cea mai marereţea de socializare online. [21] 17
  24. 24. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare4 Descrierea FriLocAcest capitol prezintă caracteristicile de bază ale proiectului tratat în această lucrare. FriLoceste o reţea de socializare bazată pe geolocalizare al cărei scop principal este ca utilizatorii săisă 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 desocializare FriLoc, utilizatorul are nevoie de un terminal cu platformă Android, cu senzorGPS încorporat şi acces constant la Internet (preferabil, un pachet de date mobil de laoperatorul local de telefonie mobilă).Pe acest terminal este necesar să se instaleze aplicaţia client FriLoc pentru a putea utilizaefectiv funcţionalităţile puse la dispoziţie de această reţea de socializare online. Aplicaţiaclient poate fi instalată pe dispozitive ce rulează sistemul Android, versiunile 2.1, 2.2, 2.3 şi2.4. Coroborat cu ultimul studiu de piaţă, încheiat la data de 1 iunie 2011, cu privire ladistribuţia pe piaţă a diverselor versiuni ale sistemului Android, aplicaţia client FriLoc poatefi 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 înprezent aplicaţia nu se găseşte pe Android Market [23], acest lucru va fi posibil începând cutoamna acestui an, când va fi lansată pe piaţă, gratuit.4.2 Interfaţa de autentificareLa 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 bifezeconfirmând astfel faptul că a citit şi a luat la cunoştinţă şi că acceptă respectivii termeni, şi unbuton pentru iniţializarea procesului de autentificare.Iniţial, butonul ce declanşează procesul de autentificare este dezactivat. Acesta devine activdoar în momentul în care utilizatorul a bifat căsuţa de accept a termenilor. La apăsareabutonului devenit activ, utilizatorul este rugat să îşi introducă datele de autentificare în reţeauaFacebook. Deşi voi detalia procesul de autentifice în capitolul următor, menţionez totuşi şiaici faptul că aplicaţia FriLoc nu stochează parola utilizatorului, în schimb aceasta fiindverificată î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 18
  25. 25. Proiect de Diplomă Reţea de socializare bazată pe geolocalizaresocializare online, iar pe de altă parte, s-a dorit încă de la bun început o integrare strânsă cureţeaua Facebook. Figura 3: Ecranul de autentificareDupă 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 cuprivire 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 ecranulprincipal al aplicaţiei, descris în secţiunea următoare.4.3 Ecranul principalEcranul principal este de tip tablou (engleză: dashboard) şi este împărţit de aşa natură încâtutilizatorul să nu trebuiască să se chinuiască să se acomodeze cu interfaţa grafică, sau cugăsirea vreunei opţiuni ascunse.În partea de sus avem o bară de acţiuni (engleză: actionbar) prezentă în toate celelalte ecraneale 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 întotdeaunautilizatorul î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 elela rândul lor acţionate. Iconiţa de reîmprospătare (engleză: refresh) are rolul de a actualiza cucele mai noi informaţii ecranul curent. Despre celelalte două iconiţe vom vorbi în secţiunile ceurmează.În jumătatea de sus a ecranului principal sunt afişate câteva informaţii cu privire la profilulutilizatorului curent conectat în reţea. Acestea sunt poza de profil şi numele complet 19
  26. 26. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare(informaţii preluate din Facebook), precum şi locaţia curentă afişată la nivel de oraş şi destradă. 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 aleinterfeț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ă sereconecteze, va fi nevoit să se autentifice din nou prin reintroducerea datelor de conectareFacebook.Despre celelalte două opţiuni vom vorbi în secţiunile următoare. 20
  27. 27. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare4.4 Serviciul din fundalTot ce trebuie să facă utilizatorul pentru a îşi face cunoscută locaţia sa geografică curentă, întimp real către prietenii săi, este să pornească serviciul din fundal. Acest serviciu poate fipornit sau oprit prin acţionarea iconiţei sale din bara de acţiuni prezentă în majoritateaecranelor aplicaţiei.Cât timp serviciul rulează şi este activ, iconiţa sa din bara de acţiuni este de culoare albă şieste prezentă iconiţa FriLoc în bara de status a sistemului. În momentul în care serviciul esteoprit, iconiţa sa devine de culoare roşie, iar iconiţa FriLoc dispare din bara de status asistemului.Detalii despre cum funcţionează efectiv acest serviciu găsim în capitolul dedicatimplementă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 detaliidespre acest ecran, în cele ce urmează.4.5 Ecranul cu informaţii despre FriLocEcranul cu informaţii despre FriLoc (engleză: about) poate fi activat dacă se alege opţiuneaAbout 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) 21
  28. 28. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare Figura 6: Ecranul cu informaţii despre FriLoc4.6 Ecranul cu setăriÎn ecranul cu setări se poate ajunge prin apăsarea opţiunii corespunzătoare din meniulecranului 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 22
  29. 29. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareÎn categoria General Settings utilizatorul are posibilitatea de a seta intervalul de timp la careserviciul, cât timp este activ şi rulează în fundal, îi transmite serverului locaţia curentă autilizatorului. De asemenea, tot în cadrul acestei categorii, utilizatorul mai are şi posibilitateade 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 şinu are o conexiune de date activă.În categoria Notifications Alerts, utilizatorul are posibilitatea de a activa sau dezactivapropagarea notificărilor generale în bara de status a sistemului Android. Iar în cazul în caresunt 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-aisăi.4.7 Ecranul cu notificăriNavigarea în ecranul cu notificări se poate realiza daca se acționează iconiţa corespunzătoaredin ActionBar (română: bara de acţiuni) – această bară regăsindu-se în aproape toate ecraneleaplicaţiei. De asemenea, direct în ecranul de notificări se mai poate ajunge şi dacă utilizatorulselectează 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 deutilizatorul curent, precum cererile de prietenie, însemnări ale momentelor în care utilizatoruls-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 23
  30. 30. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare4.8 Ecranul cu fluxul de ştiriEcranul Live Feeds (română: flux de ştiri) poate fi accesat doar din ecranul principal şi esteuna din cele şase ramuri principale de navigare. Acest ecran este compus dintr-o listă în carese 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țiacurentă a utilizatorului, iar acest mesaj putând fi urmărit de către toţi prietenii autorului. Deasemenea, în momentul în care un utilizator se înregistrează ca fiind prezent în cadrul uneilocaţ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 unutilizator 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 navigareprezente în ecranul principal. O altă modalitate de a consulta foarte uşor acest ecran se poaterealiza prin accesarea notificării permanente din bara de status a sistemului, cu privire lafaptul 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ă, cunumele şi adresa elementului respectiv. De asemenea, pentru a consulta mai uşor elementele 24
  31. 31. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareprezente pe hartă, se pot folosi cele două săgeţele de navigare din bara informativă, ce au rolulde a parcurge această listă de elemente.Pentru a popula harta cu elemente, este necesar ca utilizatorul să acţioneze butonul LoadItems. 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 încadrul acestui meniu regăsim şi opţiunea My Location (română: locţia mea), opţiune ce arerolul 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 deacţ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ţieEcranul cu alerte pe locație (engleză: georeminders) este a cea de a treia ramură de navigaredintre cele şase prezente în ecranul principal. În acest ecran se poate consulta lista de alerte pelocaţ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-iprezentate informaţii respective cu privire la alerta respectivă. În acest ecran detaliat regăsimurmătoarele informaţii cu privire la un georeminder:  titlul alertei respective;  o scurtă descriere;  locaţia alertei sub formă de adresă;  oraşul; 25
  32. 32. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare  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 alertepe 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 laalerta respectivă.4.11 Ecranul cu locaţiile de interesVenues (română: locaţii de interes) este ce-a patra opţiune disponibilă pe ecranul principal alaplicaţiei FriLoc. Ecranul prezintă cele mai apropiate 20 de locaţii de interes de poziţiageografică curentă a utilizatorului, ordonate ascendent, în funcţie de distanţa la care se aflăacestea. Figura 11: Ecranul cu locaţii de interesPentru a consulta detalii cu privire la o locaţie de interes, este suficient să se efectueze unclick în ecranul Venues. În ecranul proaspăt deschis, Venue Details (română: detaliile uneilocaţ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; 26
  33. 33. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare  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 prieteniEcranul Friends (română: prieteni) este cea de-a cincea opţiune din cele şase prezente peecranul 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, înfuncţ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-aautentificat cu succes în reţea şi dacă are serviciul din fundal activat. Figura 12: Ecranul cu prieteniCategoria utilizatorilor online este afişată prima în cadrul acestui ecran, iar în cadrul acesteicategorii, utilizatorii sunt ordonaţi ascendent, în funcţie de distanţa de la poziţia geografică autilizatorului la momentul consultării acestui ecran, şi poziţia fiecărui prieten în parte.Utilizatorii din categoria offline sunt sortaţi alfabetic. 27
  34. 34. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareMai multe detalii despre un prieten pot fi consultate prin efectuarea unei atingeri (engleză: totap) a ecranului în dreptul numelui acestuia. Se deschide astfel un nou ecran denumit FriendDetails (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 aredeja în reţeaua Facebook, atunci tot ce trebuie să facă este să apese tasta Menu a telefonului şisă 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ţeauaFacebook, dar cu care nu s-a conectat încă în reţeaua FriLoc. Pentru a uşura procesul deselecţie al unui utilizator, în partea de sus a ecranului este prezent un câmp text, ce are rolulde 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ă ofereastră de tip dialog prin care acesta este rugat să confirme acțiunea respectivă şi în careacesta 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ţiutilizatorii cu care există deja o conexiune creată, să se selecteze un timp mai îndelungatpersoana respectivă şi să se confirmare acţiunea respectivă în fereastra de confirmare de tipdialog.4.13 Ecranul cu evenimenteÎn fine, ultimul ecran despre care vom discuta în acest capitol este cel ce se ocupă cu afişarealistei 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 viitorulapropiat, 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 28
  35. 35. Proiect de Diplomă Reţea de socializare bazată pe geolocalizareunui 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 detaliilenecesare şi creând o listă de invitaţi. 29
  36. 36. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare5 Proiectare şi implementareÎn urma prezentării caracteristicilor reţelei FriLoc şi a tuturor funcţionalităţilor aplicaţieiclient, capitolul de faţă propune o continuare firească a celui anterior şi anume prezentareagenerală a arhitecturii platformei precum şi a principalelor caracteristici ale aplicaţiei clientdin punct de vedere tehnic.5.1 Arhitectura platformeiDatorită integrării puternice cu platforma Facebook, arhitectura are un caracter distribuit pestereţeaua Internet. Din punct de vedere tehnic, pentru ca platforma să funcţionezecorespunză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 socializareonline concepută a funcţiona peste reţeaua Internet. Cele trei componente majore, menționateanterior, 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 30
  37. 37. Proiect de Diplomă Reţea de socializare bazată pe geolocalizare  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 FacebookAşa cum am descris şi în subcapitolul 2.3.3, reţeaua de socializare online Facebook pune ladispoziţia dezvoltatorilor un framework pentru a crea aplicaţii care să interacţioneze cucaracteristicile Facebook de bază. Astfel, Platforma Facebook expune un API bogat, nucleulplatformei fiind reprezentat de un graf social denumit Graph API. Acesta facilitează accesulla diverse obiecte, (e.g. utilizatori, fotografii, evenimente, pagini), precum şi la legăturiledintre acestea (e.g. prietenii, like-uri, fotografii marcate).API-ul Facebook este de tip REST (Representational State Transfer). Pentru a păstraconfidenț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 cară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 unID unic şi se va genera un cod secret denumit App Secret. Acest este necesar pentru ca atâtSDK-ul pentru Android cât şi cel pentru PHP să se poată conecta la platformă.5.2.1 Graph APIFiecare obiect din cadrul acestui graf social are un ID unic. Proprietăţile unui obiect putând fiaccesate 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 oautentificare anterioară în reţea. Majoritatea informaţiilor sunt însă private şi necesită oautentificare în urma căreia se obţine o cheie de acces (engleză: access token). Mai multedetalii despre mecanismul de autorizare al platformei, în secţiunea următoare. 31
  38. 38. Proiect de Diplomă Reţea de socializare bazată pe geolocalizarePentru a vizualiza conexiunile dintre obiecte, este suficient să se acceseze un URL de formahttps://graph.facebook.com/ID/CONNECTION_TYPE. Câteva exemple de conexiunispecifice:  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 tuturorconexiunilor pe care un obiect le are. Pentru a folosi această facilitate, este necesar să seadauge parametrul metadata=1 la URL-ul obiectului respectiv. Astfel, răspunsul cererii va fiun obiect JSON ce va include o proprietate denumită metadata ce va lista toate conexiunilesuportate de obiectul respectiv.Spre exemplu, pentru a vizualiza toate conexiunile pe care le are obiectul evenimentDeveloper Garage, este suficient să se iniţieze o cerere la URL-ul:https://graph.facebook.com/331218348435?metadata=1. Rezultatul returnat de API-ulFacebook 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 Facebook5.2.2 Autentificarea în platforma FacebookAşa cum am menţionat anterior, majoritatea obiectelor din API necesită autentificare pentru afi accesate. Pentru a fi posibil acest lucru, este necesară o cheie de acces (engleză: accesstoken) specifică utilizatorului Facebook autentificat. După obţinerea acestei chei, se potautoriza cereri către API printr-un apel de forma:https://graph.facebook.com/220439?access_token=... . 32

×