Android Licenta Draft1 [305554]

Cuprins

Introducere

Capitolul 1 – Tehnologii utilizate pentru dezvoltare aplicații mobile

1.1 [anonimizat]

1.2 Evoluția telefoanelor mobile

1.3 Sistemele de operare ale telefoanelor inteligente. Prezentare Generală. Comparație

1.4 Publicarea aplicațiilor mobile

1.4.1 Publicarea aplicațiilor pe Google Play

1.4.2 [anonimizat] 2 – Studiu de caz: aplicații de tracking GPS pentru dispozitive Android

2.1 Find My Device

2.2 Cerberus

2.3 Glympse Concluzii

Capitolul 3 – [anonimizat] a [anonimizat]. [anonimizat]-[anonimizat] o [anonimizat], noi nu mai dispunem de oportunitatea de a le utiliza. Nu trebuie să depunem eforturi semnificative pentru a [anonimizat], [anonimizat], sau avem nevoie de un număr de telefon din agenda și constatăm că nu mai avem baterie la telefon. Având în vedere nivelul de implicare a tehnologiei în viata noastra putem considera că numărul persoanelor care nu au fost niciodată într-o astfel de situație tinde cu repeziciune spre zero. [anonimizat], de ponderea imensă a [anonimizat], suportului tehnologic.

[anonimizat], [anonimizat]. [anonimizat], cu aâat îi acordăm mai puțina importanță.

[anonimizat]-a influențat din ce în ce mai mult viața. [anonimizat], momentul în care numărul dispozitivelor mobile conectate la Internet a depăsit numărul dispozitivelor desktop pentru prima dată în istorie. [anonimizat], care domina piața dispozitivelor mobile la sfârșitul anilor 90 și începutul anilor 2000. [anonimizat] a tot mai multor modele de dispozitive mobile din ce în ce mai performante și din ce în ce mai ieftine. [anonimizat]-o măsura cât mai mare tehnologii care până nu demult erau accesibile numai companiilor foarte mari cu bugete exorbitante. Printre aceste facilități putem aminti posibilitatea de a [anonimizat]e există o rețea de telefonie celulară, posibilitatea de a lucra în echipă la documente sau proiecte din locații fizice diferite, posibilitatea de a avea o imagine în timp real a situației tuturor mașinilor unei firme, backup la sistemul contabil în timp real și lista poate continua.

Ideea pe care doresc să o subliniez se referă la faptul că tehnologii care în urma cu câțiva ani erau folosite numai în cadrul firmelor de IT sau dezvoltatoare de soluții informatice se regăsesc azi în idei de business care nu au nicio legătură cu domeniul IT. Firme de taximetrie folosesc tablete pentru a cunoaște în timp real poziția fiecărei mașini, unele chiar folosesc aceste pozitii în tandem cu algoritmi software pentru a determina cui îi este trimisă următoarea comandă, în functie de disponibilitate și de distanta până la locul unde se află clientul. Marea majoritate a firmelor mici care încearcă să implementeze soluții de acest gen încearcă să obțină beneficii reale cu costuri cât mai mici, cum ar fi reducerea costurilor operative, fidelizarea clienților printr-o mai bună comunicare și prin imbunătățirea calității serviciilor sau, nu în ultimul rand, un mai bun control asupra pierderilor rezultate din neglijență, lipsa de productivitate sau diferite forme de fraudă.

Am luat ca model o firmă care administrează mai multe vehicule și dispune de un buget foarte limitat în acest sens. Aceasta poate fi o firmă care are ca obiect de activitate furnizarea de servicii, distribuție, curierat sau poate fi un restaurant care dorește să știe în cât timp se întoarce cea mai apropiată mașină care a plecat să facă 3-4 livrari la domiciliu la adrese diferite. Cunoscând detalii precum poziția fiecărei mașini și ora estimativă la care aceasta se va întoarce, se poate face planificarea astfel încât următoarea comanda să nu fie livrată rece, dar să nici nu dureze prea mult până când ajunge la clientul care probabil, de cele mai multe ori, comandă constant mâncare din acel loc. Acesta poate fi o idee de fidelizare a clientelei și, totodata, un mod de a fi cu un pas în fața unor întreprinzători mai reticenți la soluțiile digitale și care preferă modele de afaceri mai clasice.

Proiectul de față este constituit în prima sa parte dintr-un studiu de caz efectuat în încercarea de a găsi o soluție de tracking GPS pentru o firmă similară cu cea descrisă în paragraful anterior. S-au căutat soluții gratuite sau soluții care să nu implice costuri recurente suplimentare celor pentru serviciul de date de pe telefon sau tableta utilizată. Orice dispozitiv mobil conectat la Internet presupune un cost pentru serviciul de date, însă majoritatea furnizorilor de aplicații de urmărire a flotei (​fleet tracking​) percep un cost lunar suplimentar pentru acel serviciu. Am decis evitarea adoptării unei soluții de acest gen și, în urma studiului de caz, am ajuns la ideea de a implementa o aplicație care oferă o funcție simplă de tracking și la care se mai pot adaugă alte funcționalități, în functie de nevoile beneficiarului.

În cea de-a doua parte a licenței este prezentată implementarea soluției, implementare care are, la rândul ei, două părti și anume implementarea aplicației mobile care se instalează pe dispozitivul cu Android, și implementarea aplicației web, care afișează în timp real administratorului sau coordonatorului informații despre vehicule.

Am ales sistemul Android dată fiind ponderea extrem de mare pe piață a dispozitivelor care rulează acest sistem de operare și a faptului că publicarea aplicației pe Google Play Store, portalul de aplicații condus de Google, este mult mai ușoară decât operațiunea similară pentru o aplicație dezvoltată pentru dispozitive Apple. De asemenea, am luat în calcul și costurile dispozitivelor mobile – cele care rulează Android tind să coste o fracțiune (în cazul în care nu este vorba de dispozitive high end) din costul celor produse de Apple, care rulează sistemul de operare proprietar Apple, iOS.

În concluzie, sistemul de operare Android pentru dispozitive mobile, prețul tot mai accesibil al dispozitivelor care rulează această platforma, precum și faptul că este ​open source​, conferă dezvoltatorului o soluție extrem de facilă și flexibilă pentru dezvoltarea de produse adresate afacerilor de talie mica sau care sunt la început, mai ales în contextul în care serviciile de localizare GPS, serviciul Google Maps, precum și alte opțiuni și servicii sunt puse la dispozitie gratuit, pentru o utilizare în regim rezonabil.

Capitolul 1 – Tehnologii utilizate pentru dezvoltare aplicații mobile

Pentru a avea o imagine corectă asupra modului în care au luat avânt aplicațiile mobile, trebuie urmărite următoarele aspecte:

Evoluția World Wide Web-ului

Evoluția utilizării telefoanelor mobile

Cele două au evoluat în paralel până în momentul în care creșterea lungimii de bandă pentru dispozitivele mobile și transformarea telefoanelor în mini-calculatoare, care a dus la mai mult decât intersecția lor. A fost creat un mediul propice pentru dezvoltarea de aplicații mobile care să utilizeze servicii de pe web, fără probleme cauzate de viteză sau costuri prea mari. Numărul de utilizatori a crescut exponențial, deoarece nu mai are limitat de accesul la un desktop. Aplicațiile mobile care rulau pe telefoanele inteligente puteau fi accesate la orice oră, din orice locație. Programatorii au simțit schimbarea și au început să dezvolte aplicații native pentru sistemele de operare ale telefoanelor inteligente. O nouă piață s-a născut: cea a aplicațiilor mobile. Google Store, Apple Store sunt platforme care permit publicarea și achiziționarea de aplicații pentru dispozitivele mobile.

1.1 Evoluția World Wide Web-ului

Este greu de crezut că au trecut doar 25 de ani de la apariția World Wide Web-ului, acum, într-o epocă în care prima pornire este să verifici pe Google, în care informația abundă și este doar la un click distanță, în care dicționarele sunt online, hărțile sunt actualizate cu situația traficului în timp real, într-o perioadă în care noțiunea de virtualitate face parte din vocabularul uzual.

În anul 1989, Sir Tim Berners-Lee făcea prima propunere a ceea ce urma să fie WWW-ul, într-o perioadă în care lucra la CERN, Organizația Europeană pentru Cercetare Nucleară. Respinsă inițial, în varianta din octombrie 1980, propunerea conținea cele trei tehnologii fundamentale care continuă să fie baza Web-ului actual:

HTML – Hypertext Markup Language – limbajul de marcare pentru Web

URI – Uniform Resource Identifier – adresă unică utilizată pentru identificarea fiecărei resurse pe web

HTTP – Hypertext Transfer Protocol

Tim Berners-Lee a creat primul editor / browser pentru paginile Web (WorldWideWeb.app) și primul server Web (httpd). Până la sfârșitul anului 1990, prima pagină Web a fost livrată pe Internet, iar în anul 1991, oameni din afara CERN-ului au fost invitați să se alăture comunității Web.

Pe măsură ce Web-ul a început să crească, creatorul lui a realizat că adevăratul potențial al Web-ului putea fi atins doar dacă oricine putea să-l folosească, fără a cere permisiunea sau a plăti pentru asta:

“Dacă tehnologia ​(care sta la baza Web-ului) ar fi fost proprietate privată și sub controlul meu, probabil că nu ar fi cunoscut o asemenea amploare. Nu poți propune ceva care se vrea a constitui un spatiu universal și, în același timp, să păstrezi controlul complet asupra lui.”

Tim s-a mutat de la CERN la MIT (Massachusetts Institute of Technology) în anul 1994 și a înființat W3C (World Wide Web Consoțium), o comunitate internațională al cărei interes era dezvoltarea de standarde web deschise. La ora actuală, Sir Tim Berners-Lee continuă să fie Directorul acestui consorțiu. ​(“History of the Web,” n.d.)1.

Accesarea WWW-ului se face prin intermediul unei conexiuni la Internet, iar statisticile publicate în 2016 de către InternetLiveStats.com, arată că numărul de utilizatori conectați la Internet a crescut de la sub 500.000 în anul 2000, la peste 3 miliarde în anul 2016 ​(“Number of Internet Users (2016) – Internet Live Stats,” n.d.)2.

Creșterea numărului de utilizatori cu acces la Internet, ​faptul că World wide Web-ul a rămas o tehnologie gratuită, că s-a bazat pe o metodologie simplă de a partaja documente prin intermediu Internetului, trecerea telefoanelor mobile spre telefoane inteligente care a dus la rezultatul că Web-ul nu a mai fost limitat la utilizarea doar de pe calculatoare, faptul că în ultimii ani au apărut standarde și aplicații care permit dezvoltarea de aplicații ​mobile-first, ​toate acestea au dus la un boom al WWW-ului, după cum poate fi observat și în Figura 1, un infograph care conține evoluția web-ului din anul 1991 și până în 2012, publicat la ​http://www.evolutionoftheweb.com/​.

12 “History of the Web.” ​ World Wide Web Foundation​ ​. Web. 19 June 2016

“Number of Internet Users (2016) – Internet Live Stats.” , Web. 19 June 2016​

Același site web ne oferă și o imagine a evoluției numărului de utilizatori ai Internet-ului, prezentată în Figura 2. Se poate observa că, în 21 de ani de la apariția web-ului, numărul de utilizatori a ajuns la 2,27 de miliarde de utilizatori.

Una dintre cele mai cunoscute previziuni cu privire la evoluția utilizării Internetului pe dispozitivele mobile, a fost cea făcută de Mary Meeker, în anul 2009. Aceasta estima că în anul 2014, utilizarea Internetului de pe dispozitivele mobile va depăși utilizarea Internetului de pe desktop ​(Ingram, n.d.). Din statisticile publicate de comScore, se poate observa că realitatea s-a apropiat de estimări ​(“Mobile marketing statistics 2016,” 2016), numărul de utilizatori care se conectează la Internet de pe telefonul mobil fiind mai mare decât numărul de utilizatori care accesează Internetul de pe dispozițive de tip desktop.

1.2 Evoluția telefoanelor mobile

Telefoanele mobile au fost inițial create pentru a putea fi folosite din automobile.

Prima convorbire telefonică de pe un telefon mobil a fost făcută în 3 Aprilie 1973, când Martin Cooper, inginer la Motorola, a telefonat unei companii de telecomunicații rivale și i-a informat că vorbește de pe un telefon mobil. Telefonul pe care l-a utilizat Cooper avea 1.1 kg și dimensiunile 228.6x127x44.4mm. Acest prototip permitea o conversașie de 30 de minute și necesita 10 ore pentru a se încărca.

În 1983, Motorola a lansat primul telefon mobil comercial, cunoscut sub numele de Motorola DynaTAC 8000X. Dispozitivul permitea convorbiri de 30 de minute, 6 ore de standby și putea stoca până la 30 de numere. și costa 4000$. ​(“The History of Mobile Phones From 1973 To

2008: The Handsets That Made It ALL Happen,” n.d.)​

Înainte de apariția telefonului DynaTAC 8000X, mai multe evoluții majore au deshis calea către primul telefon mobil. Astfel, în timpul primului război mondial, armata germană a testat telefoane fără fir pe trenuri care circulau între Berlin și Zossen. în timpul celui de-al doilea război mondial, forțele armate din toată lumea au utilizat legăturile telefonice radio. Începând cu anul 1940, receptoarele radio portabile au fost disponibile la scară largă. Toate aceste tehnologii au inspirat cercetătorii de la Bell Labs să creeze un telefon portabil pentru automobile. în 1946, Bell Labs a început să ofere servicii telefonice pe vehiculele din St. Louis, Missouri. Câteva săptămâni mai târziu, AT&T a venit cu o contra-ofertă, un serviciu denumit Serviciu Telefonic Portabil, care consta într-o gamă largă de servicii pentru dispozitive portabile, în general incompatibile, care ofereau zone de acoperire limitate și un număr redus de canale disponibile.

În cele din urmă, AT & T și Bell Labs au introdus tehnologia celulară, ceea ce a permis reutilizarea frecvențelor în zonele acoperite de către transmițătoarele de mică putere. Acest lucru a permis telefoanele mobile să fie mai mult decât un vis: ele au devenit un produs fezabil din punct de vedere economic, care ar putea fi profitabil pentru Bell și AT & T.

Între 1957 și 1961, inventatorul sovietic Leonid Kupriyanovich a dezvoltat o serie de telefoane mobile care semănau surprinzător de mult cu telefoanele mobile moderne. Unul dintre telefoanele lui Leonid cântărea 70 de grame.

Serviciu Telefonic Portabil, lansat de AT&T în 1949, necesita pentru funcționare instalarea unui echipament de 36kg în automobil, existau doar 3 canale, ceea ce însemna că doar 3 clienți din orice oraș puteau iniția o convorbire la un moment dat și era foarte scump. ​(“History of Cell Phones

-,” n.d.)​ 6

La începutul anilor 1990 au intrat pe scenă și Nokia și NEC. Primul telefon mobil lansat de Nokia, Mobira Cityman 900, cântărea 800g. La sfârșitul anilor 1990, telefoanele mobile au început să devină frecvente.

O evoluție vizuală a felului în care au arătat telefoanele mobile de-a lungul anilor este prezentată în următoarea figură (preluată de pe http://www.dreamstime.com/):

Diferite studii publicate la sfârșitul anului 2015, prezintă evoluția uimitoare a Internetului, a telefoniei mobile și a utilizării dispozitivelor mobile. Astfel:

În 2015 arată că existau peste 2 miliarde de utilizatori de telefoane inteligente și că 83% din conexiunile la Internet sunt realizate de pe dispozitive mobile. ​(Srivastava, 2014)

Numărul de abonamente la telefonie mobilă a crescut de la 738 de milioane în anul 2000 la peste 7 miliarde în anul 2015, potrivit raportului publicat de Uniunea Internațională a Telecomunicațiilor. ​(​ICT Facts&Figures, The World in 2015​, n.d.)8

Numărul de conexiuni la Internet a crescut de la 400 de milioane în anul 2000, la 3.2 miliarde până la sfârșitul anului 2015, un număr cu atât mai promițător cu cât 2 miliade de utiliyatori fac parte din țările în curs de dezvoltare. ​(Nair, 2015)

1.3 Sistemele de operare ale telefoanelor inteligente. Prezentare Generală. Comparație

Sistemele de operare pentru mobile sunt sisteme de operare care funcționează pe telefoane inteligente, PDA-uri, tablete și alte dispozitive mobile. Principalele sisteme de operare mobile sunt: Android (Google), iOS (Apple), Windows Phone (Microsoft), RIM Bada și Symbian.

Potrivit statisticilor publicate de GSMA Intelligence, la ora actuală sunt peste 4.5 miliarde de abonați unici la un serviciu de telefonie mobilă, jumătate din populația lumii are un abonament pentru telefonie mobilă, față de 1 din 5, cum era acum 10 ani. ​(“The Mobile Economy 2015,” n.d.)

10

Android

Firma Android Inc. a fost fondată de Andy Rubin, fost inginer la Apple ​(“Android History,” 2015)11. Concentrându-se pe cea mai bună experiență web pe care ar putea-o oferi și creând un mediu în care orice dezvoltator ar putea lucra, Android a avut un plan de afaceri solid în momentul în care l-a prezentat în fața investitorilor, în 2005. Page și Brin, fondatorii Google, aveau nevoie de un telefon care să concureze cu Microsoft și Blackberry și, în același timp își doreau mai multe telefoane care să aibă Google ca motor de căutare implicit. O platformă deschisă ca Android le oferea exact aceste lucruri. Mai multe prototipuri au fost proiectate și respinse până când modelul G1 a fost finalizat și lansat, în anul 2008.

Cu toate că nucleul Android OS este open-source (cu sursă deschisă), o mare parte a sistemului de operare nu este. Aplicațiile Google incluse pe majoritatea telefoanelor Android vândute în Occident sunt cu sursă închisă.

iOS iOs este sistemul de operare ale telefoanelor iPhone. Primul iOS a apărut în anul 2007, nu a oferit suport pentru copy/paste, 3G, atașare fișiere la email, MMS și nu permitea funcționarea aplicațiilor externe. Actualizările ulterioare au inclus iTunes Music Store, permițând utilizatorilor, pentru prima dată, achiziționarea de melodii direct de pe telefon (prin intermediul unei conexiuni WIFI) și schimbarea tonului de apel. Începând cu 2007, în fiecare an a apărut o nouă versiune de iOS. Versiunea din 2015, iOS 9, a venit cu o serie nouă de caracteristici, printre care: durată mai lungă de viață pentru baterie, noul rol al lui Siri ca asistent de căutare și o nouă tastatură. ​(Williams, 2015)12

Windows Phone

Primul Windows Phone, în varianta în care este cunoscut la ora actuală, a fost lansat în anul

2010 la Barcelona și este rezultatul colaborării dintre Microsoft și Nokia. Începând cu această

1011 “The Mobile Economy 2015.” ​GSMA Intelligence​, Web. 20 June 2016

“Android History.” ​Android Central​, 21 Oct. 2015. Web. 19 June 2016

Williams, Rhiannon. “Apple iOS: A Brief History.” ​ ​Telegraph.co.uk​, 17 Sept. 2015. Web. 20 June 2016

variantă, sistemul de operare a fost regândit pentru dispozitive mobile, diferențiindu-se complet de varianta pentru desktop. Dispozitivele pe care rulează sistemul de operare sunt produse de Nokia. (Guru & Guru, 2012)13

Potrivit statisticilor publicate de Statistica.com, cel mai popular sistem de operare pentru dispozitive mobile este, de câțiva ani, Android, urmat de iOS ​(“Global smartphones sales by operating system 2009-2015 | Statistic,” n.d., “Smartphone OS global market share 2009-2016 |

Statistic,” n.d.)14 15:

Guru, and Guru. “Top 10 Mobile Phones Operating Systems.” ​ ​ShoutMeLoud​ 23 Aug. 2012. Web. 20 June 2016

1415 “Global Smartphones Sales by Operating System 2009-2015 | Statistic.” ​Statista​, Web. 19 June 2016

“Smartphone OS Global Market Share 2009-2016 | Statistic.” ​ ​Statista​, Web. 18 June 2016

1.4 Publicarea aplicațiilor mobile

Există o diferență de abordare majoră între cum sunt livrate aplicațiile mobile prin intermediul Google Play și a ehivalentului său – Apple Store. Pentru a publica o aplicație pe Google Play regulile sunt mult mai relaxate decât în cazul Apple Store, ceea ce poate fi privit ca un avantaj (viteză de publicare mult mai mare), dar și ca dezavantaj (aplicațiile nu sunt verificate riguros).

1.4.1 Publicarea aplicațiilor pe Google Play

Condițiile pentru a publica o aplicație pe Google Play sunt urmatoarele (potrivit informațiilor publicate pe site-ul ​https://developer.android.com/distribute/googleplay/start.html​):

Înregistrarea pentru un cont de Editor

Navigarea pe site-ul ​https://play.google.com/apps/publish/signup/

Introducerea informațiilor de bază despre dezvoltator (aceste informații pot fi modificate ulterior)

Citirea și acceptarea Acordului de Distribuire pentru Dezvoltatori pentru țara dezvoltatorului.

Plata unei taxe de înregistrare de 25$.

După verificarea înregistrării, dezvoltatorul este notificat prin intermediul adresei de email introduse la înregistrare.

Configurarea unui cont Google pentru plăți, în cazul în care se va dori comercializarea aplicațiilor publicate

Intrarea în cont, la adresa ​https://play.google.com/apps/publish/

Navigarea către pagina ​Financial Reports

Click pe Setup a Merchant Account Now (Configurați un cont de comerciant)

Explorarea consolei Google Play pentru dezvoltatori, precum și a uneltelor de publicare.

Odată creat contul și verificată înregistrarea, dezvoltatorul se poate conecta la consola Dezvoltatorului (Developers Console), care este punctul de plecare pentru operațiile de publicare a aplicațiilor.

1.4.2 Publicarea aplicațiilor pe Apple Store

Fiecare aplicație care se dorește a fi publicată este supusă unei recenzii bazate pe criterii tehnnice, de conținut și de design. Aceste criterii ar trebui avute în vedere în momentul dezvoltării aplicației și ele sunt disponibile la următoarea adresă:

https://developer.apple.com/app-store/review/guidelines/​.

Pe site-ul Apple este prezentată o listă de pași care ar trebui urmați pentru a dezvolta aplicații pentru iOS, OS X, watchOS, and tvOS (​https://developer.apple.com/app-store/submissions/​).

Aceștia sunt:

Dezvoltarea aplicației folosind Xcode 7 și ultima variantă de SDK

Actualizarea la ultima variantă a sistemului de operare

Dezvoltarea urmând ghidul de revizuire a aplicației

Optimizarea aplicației

Testare Beta

Trimitere spre verificare

Informațiile oferite de Apple sunt mult mai vaste, cuprinzând și strategii de alegere a unui model de business, de atragere a utilizatorilor, de marketing.

Aplicații ​open-source

Multă lume confundă programele / aplicațiile ​open-source (sau cu sursă deschisă) cu aplicațiile gratuite, dar diferența dintre ele este majoră. Este adevărat că amândouă îi oferă utilizatorului interesat posibilitatea de a utiliza aplicația fără a plăti, dar în cazul aplicațiilor gratuite, asta este tot ceea ce îi oferă, pe când în cazul aplicațiilor cu sursă deschisă, utilizatorului îi este oferită gratuit și sursa, pentru a o utiliza cum crede de cuviință.

Capitolul 2 – Studiu de caz: aplicații de tracking GPS pentru dispozitive Android

Prezentul studiu de caz vizează alegerea unei aplicații de tracking GPS pentru o afacere care iși doreste un mai bun control asupra vehiculelor și/sau contractorilor implicați în activitatea economică. Datorită avantajelor pe care le oferă platforma Android, avantaje prezentate în capitolul anterior, am optat pentru această platformă, considerând ca este soluția cea mai potrivită pentru oricare dintre cele două abordări: alegerea unui sistem existent sau dezvoltarea unui sistem nou. Sistemul implementat presupune ca fiecare vehicul să conțină un dispozitiv Android (telefon sau tabletă). Aceată abordare prezintă și un avantaj de cost, astfel, dacă un anume utilizator folosește deja un dispozitiv pe care rulează Android necesitatea investiției suplimentare în hardware odată cu folosirea noii tehnologii se anulează.

Printre criteriile pe care le-am urmarit sunt în primul rând facilitățile funcționale, ușurința în implementare, ușurința în utilizare și, în mod evident, prețul.

Aplicația ideală, ar oferi, la un cost cât mai competitiv, următoarele:

Locația dispozitivului în timp real, cu acuratețe geografică de 50 de metri, în eșantioane de timp de maxim 5 minute

Afișarea în timp real a poziției mai multor dispozitive din același grup; o facilitate utilă dar de importanță secundară ar consta în abilitatea supervizorului de a organiza dispozitivele în subgrupuri distincte, după criterii variabile în funcție de necesitățile caracteristice fiecărei situații, de la caz, la caz

Afișarea în timp real a vitezei de deplasare a fiecărui dispozitiv

Generarea rutei pe care un dispozitiv a parcurs-o intr-un interval de timp furnizat de către supervizor ca date de intrare

Posibilitatea dispozitivului de a transmite informația prin rețeaua celulară sau WIFI, în funcție de disponibilitate

Capacitatea dispozitivului de a detecta în timp real starea conexiunii la internet și a determina daca informațiile au fost transmise cu succes serverului care stocheaza istoricul deplasărilor; în cazul lipsei conexiunii la internet sau a lipsei unei confirmari de transfer, aplicația trebuie sa fie prevazută cu un algoritm de backup, care să salveze local activitatea din intervalul în care conexiunea la internet nu a fost disponibila, și apoi, de indata ce conexiunea este reluata, sa transmita serverului informațiile retroactiv

Studiul de caz reprezintă o evaluare în paralel a 3 aplicații deja existente în Google Play App Store. Am tinut cont în cazul fiecarei aplicații de urmatoarele:

Nota generală a utilizatorilor (Online User Rating)

Numărul de recenzii

Numărul de instalări (Play Store afișează în mod public numărul de instalări ale oricărei aplicații)

Ușurința de instalare

Ușurinta în utilizare

Funcționalitatea (aici am avut în vedere și flexibilitatea pe care aplicația o oferă utilizatorului de a modifica anumiți parametri de funcționare)

Calitatea interfeței grafice

Având în vedere că nu am găsit aplicații care să se plieze exact pe cerințele enumerate în paragraful anterior, am plecat de la aplicații care să îndeplinească în primul rând funcția de bază, și anume capacitatea de a-și transmite poziția GPS către un server care sa o stocheze intr-o bază de date.

Cele 3 aplicații alese sunt:

Find My Device

Cerberus

Glympse

2.1 Find My Device

Find My Device este o aplicație care la momentul realizării acestui studiu de caz are nota 4.3 din 5, din peste 430,000 de recenzii în Google Play. Este o aplicație foarte populara, care se bucură de un real succes printre utilizatorii acestei platforme. Faptul că este dezvoltată chiar de către Google constituie cu siguranță unul dintre motivele cărora li se datorează succesul enorm, purtand amprenta gigantului informatic în ceea ce priveste interfața grafică și funcționalitatea. Conform Google Play, aplicația Find My Device a fost instalată de peste 10 milioane de utilizatori.

Privind din poziția publicului țintă caruia i se adresează, această aplicație reprezintă cu succes ideea de bază care a catalizat popularizarea dispozitivelor inteligente din ultimii ani, în detrimentul dispozitivelor de tip desktop, și anume, simplitate pe toate planurile, funcții relativ reduse la număr dar puternice prin eficacitate, instalare ușoară, configurări aproape inexistente. La capitolul “User Friendliness” această aplicație ar putea obține lejer nota maximă.

Revenind la publicul țintă, Find My Device, este o aplicație care se dorește a fi un concurent direct la adresa aplicației omoloage dezvoltate de competitorul Apple, și anume ​Find my Iphone/Find my Ipad.

Panoul de control al aplicației este web-based și se poate accesa la urmatoarea adresă:

https://www.google.com/android/devicemanager?u=0

Odată conectat, utilizatorul are la dispozitie o hartă Google Maps pe care urmează a fi indicată locația propriului dispozitiv și un numar de exact 5 opțiuni posibile, care sunt

aflarea locației dispozitivului la un anumit moment dat

posibilitatea de a comanda dispozitivul să sune în cazul în care utilizatorul nu îl găsește

schimbarea de la distanță a codului de acces la dispozitiv, blocarea dispozitivului sau afisarea pe displayul dispozitivului a unui mesaj stabilit de administrator prin interfața web

ștergerea completă a conținutului în cazul în care dispozitivul este considerat pierdut sau furat

redenumirea dispozitivului

Având în vedere cele 5 facilități enumerate mai sus, este evident că acest dispozitiv nu întrunește aproape niciunul dintre criteriile care stau la baza prezentului demers și se poate considera că Find My Device este mai repede o aplicație de securitate decât una de tracking în adevăratul sens al cuvântului. De fiecare dată când utilizatorul dorește să obțină locația unui dispozitiv trebuie să solicite acest lucru manual, ceea ce constituie un mare minus în contextul studiului de față. De asemenea, nu se poate afla dacă dispozitivul este sau nu în mișcare, fapt care ne duce către concluzia inerentă că posibilitatea aflării vitezei de deplasare este exclusă.

Find My Device este, așadar, o aplicație limitată care nu a fost dezvoltată special pentru tracking. Nefiind o aplicație dedicată acestui scop, precum și faptul că prezintă neajunsurile enumerate mai sus, m-au determinat să notez faptul că această aplicație întrunește principala funcție dorită, aceea de a-și transmite propria locație GPS și cam atât, din ceea ce ne interesează.

2.2 Cerberus

Cerberus este o aplicație care din punct de vedere al funcționalității se aseamănă cu Find My Device, fiind dezvoltată ca o aplicație de găsire a dispozitivului în cazul în care este pierdut, dar include un set mai vast de opțiuni decât cea dezvoltata de Android. Aceste opțiuni, nu se incadrează neaparat printre criteriile studiului de caz, dar merită amintite pentru că pot fi utile în cazul utilizării acestei aplicații în tandem cu o aplicație de tracking dedicată. în continuare vom vedea în primul rând cât de tare Cerberus se apropie de un astfel de scop și anume, GPS tracking.

Instalarea și configurarea sunt relativ facile, dupa ce s-a instalat aplicația, se deschide o fereastra de LogIn, unde utilizatorul are opțiunea de a-și introduce numele și parola sau se poate opta pentru crearea unui cont nou, opțiune care durează mai puțin de un minut, fiind necesare doar numele utilizator ales, adresa de email și parola dorita. De menționat este faptul că odată creat acest cont în aplicația de pe dispozitivul mobil, se potate folosi același set nume/parola pentru conectarea la interfața web. Cu alte cuvinte, accountul se creează de pe tableta și se poate accesa ulterior și prin web. Acest aspect ușurează mult utilizarea aplicației și scurteaza mult timpul de la instalare până la prima funcționare a dispozitivului.

În momentul în care utilizatorul interfeței web se conectează, acesta are la dispoziție comenzile “Start tracking” și “Stop tracking”. ceea ce înseamnă că tracking-ul unui anume dispozitiv conectat la acel cont trebuie pornit manual, iar după un interval anume de timp, această funcție se dezactivează automat. Mai exact, dupa 5 minute de inactivitate, interfata web se închide automat, moment în care și funcția de tracking a dispozitivului este imediat dezactivată. Acest aspect aduce cu sine incapacitatea de a folosi funcția de tracking în fundal, pentru a păstra o istorie permanentă a rutei parcurse. În aceasta aplicație, spre deosebire de precedentă, avem totuși opțiunea de a genera un istoric al rutei parcurse într-un interval de timp selectat de utilizator.

Afișarea în timp real a vitezei de deplasare nu este însă o opțiune, la fel cum nu apare nici în rapoartele generate ulterior. Viteza de deplasare ar constitui un real plus, dar chiar și în absența acesteia, faptul că putem genera un istoric al rutei parcurse constituie un pas înainte față de Find My Device. Un alt minus, din perspectiva mea, îl constituie faptul că, deși se poate genera un istoric al rutei parcurse, acesta este unul în mod grafic, și nu oferă opțiunea translatării locațiilor în adrese reale prin Reverse Geocoding, astfel încât această colecție de informații să poată fi exportată mai apoi în format CSV sau orice alt format care poate fi manipulat în Excel sau importat într-o altă aplicație și care să conțină adrese reale, inteligibile. Consider că opțiunea de a putea genera un astfel de raport CSV ar constitui o facilitate foarte puternică. Pe de altă parte nu trebuie scăpat din vedere faptul ca această aplicație nu a fost concepută ca una de “fleet tracking”.

În figura de mai jos se poate vedea modul în care istoricul rutei este afisat.

Figura de mai sus afișează istoricul locațiilor pe o harta Google standard, putându-se opta și pentru Sattelite View dacă se dorește.

Printre funcționalitățile acestei aplicații care merită amintite se numără câteva chiar foarte utile, în ceea ce priveste securitatea dispozitivului, și anume:

posibilitatea de a bloca dispozitivul de la distanță cu un cod diferit de cel prestabilit

executarea de backup de la distanță

folosirea camerei tabletei/telefonului pentru a fotografia persoana care operează dispozitivul în acel moment

afișarea unui mesaj de alertă / urgență pe ecran

efectuarea de capturi ale dispaly-ului

ștergerea întregului conținut al tabletei / telefonului, inclusiv al cardului SD, pentru a asigura protecția informațiilor stocate pe acesta.

Backup-ul la distanță se poate realiza printr-una din cele două metode puse la dispoziție de dezvoltatorul aplicației și anume, există posibilitatea de conectare a dispozitivului cu un cont Google Drive sau Dropbox, astfel încât, în cazul pierderii sau furtului acestuia, utilizatorul poate comanda de la distanță un backup efectuat chiar într-unul dintre aceste medii de stocare cloud-based, iar apoi se poate proceda la ștergerea informațiilor de pe dispozitiv, pentru securitate. Dupa cum menționam mai sus, aceste facilități și opțiuni de funcționare nu sunt neapărat specifice unei aplicații dezvoltate în primul rand pentru tracking de vehicule sau subcontractori anagajați în activități care implică deplasarea pe teren, cazuri în care tracking-ul în timp real reprezintă o componentă esențială a motorului logistic al afacerii.

Figura de mai jos constituie un printscreen de pe dispozitivul mobil de această data, figură care afișează o parte din opțiunile disponibile, inclusiv cele menționate mai sus, referitoare la posibila conectare la Google Drive sau Dropbox. De asemenea se mai pot observa opțiuni oarecum neobișnuite, dar totodată nelipsite unei aplicații care se dorește a fi luată în considerare în ceea ce privește soluțiile pentru securitate, și anume “Block Power Menu” și “Block Status Bar”. Acestea permit blocarea opțiunilor de oprire / resetare a dispozitivului, precum și accesul la meniul de setări rapide. Aceste opțiuni se pot dovedi deosebit de utile în situația în care telefonul sau tableta pe care rulează aplicația ar cădea în mâini nedorite conferindu-i administratorului aflat în fața interfeței web posibilitatea de a-si minimiza / limita daunele în urma unui astfel de incident.

Toate aceste facilități amintite pe scurt mai sus nu ne duc neaparăt mai aproape de soluția ideală sau completă pentru problema pe care acest studiu de caz încearcă să o rezolve, dar pot produce un alt efect, și anume unul complementar. În contextul în care tableta sau telefonul pe care am avea instalată soluția de tracking aleasă ar fi folosite în scop comercial, probabil s-ar impune securizarea dispozitivului. Este bine știut că în era informațională, foarte multe firme decid să opteze pentru soluții software ultramobile în activitatea agentilor, subcontractorilor, etc. Aceste soluții pot include acceptarea comenzilor, înregistrarea de semnături digitale de la clienți în momentul livrării produselor, etc. În acest sens, putem considera Cerberus ca pe o soluție pentru asigurarea securității dispozitivului. Pe de altă parte, această aplicație mai detine o opțiune prin care prezenta aplicație pe dispozitiv poate fi ascunsă, ceea ce îi poate permite administratorului să porneasca o monitorizare silențioasă (​silent tracking​), dacă principala aplicație de tracking este dezactivată.

Din punct de vedere al funcționalității și al facilităților oferite, această aplicație este departe de ceea ce căutam dar, dupa cum precizam anterior, poate consitui o soluție complementară, și anume securizarea dispozitivului cu posibilitatea de tracking în regim de urgență (în cazul în care principala soluție de tracking este dezactivată).

Avantaje​:

Instalare facilă, extrem de ușor de creat un nou cont

Putem obține un istoric al locațiilor

Multiple opțiuni de securitate

Înregistrare audio

Posibilitatea de silent tracking

Dezavantaje​:

Nu afișeaza viteza de deplasare

Modul de tracking trebuie activat manual și funcționează doar pe perioada în care utilizatorul este logat la interfața web

Istoricul locațiilor nu poate fi exportat intr-un format care sa conțină adrese fizice în mod CSV

Necesită abonare separată

Reluând ideile expuse anterior, concluzionez că Cerberus poate fi mai degrabă o soluție de scuritate, decât una de tracking dar consider în continuare că poate constitui o alternativă în cazuri extreme, pentru perioade scurte de timp.

Aplicația Cerberus a fost descărcată de peste 1.000.000 de utilizatori de pe platforma Google Play și are nota 4.4 din peste 98.000 de recenzii, ceea ce dovedește faptul că aplicația se bucură de notorietate și este un produs a cărui funcționalitate nu lasa de dorit.

2.3 Glympse

Glympse ofera inclusiv o varianta pentru business, despre care nu exista, insa, foarte multe detalii pe site-ul companiei, în afara unui numar de telefon la care potentialii clienti pot apela departamentul de vanzari al companiei. Pentru scopul acestui studiu de caz, pe parcursul acestei lucrari, ne vom referi în continuare la varianta gratuita a acestei aplicatii.

Glympse este o aplicație extrem de usor de instalat de pe platforma Google Play și totodata extrem de usor de utilizat. Usurinta în instalare este observata imediat prin faptul ca nu necesita crearea unui cont online și nici autentificarea cu un cont creat în prealabil pe un dispozitiv desktop sau intr-un bowser web. aplicația se instaleaza usor, dupa ce este descarcata de din Google Play. Instalarea se face automat, iar cand aceasta este completa, utilizatorul trebuie doar s-o porneasca și din acel moment se poate utiliza fara niciun fel de configurare suplimentara, intrucat la instalare aceasta cere permisiunea sa acceseze aproximativ toate resursele tabletei, atat hardware cat și software necesare functionarii. Printre acestea se numara accesul la componenta GPS, la contacte și identitate, și la conturile la care utilizatorul este deja conectat, în vederea transmisiei locatiei, dupa cum se poate vedea în figura de mai jos.

Aplicația este relativ flexibila în ceea ce-l priveste pe utilizatorul dispozitivului pe care aceasta se instalează. Acesta are opțiunea de a opta pentru afișarea vitezei, pentru a folosi sistemul metric sau cel standard, pentru a introduce destinația înspre care se îndreaptă și, mai ales, de a permite aplicației să se conecteze la contul său de Facebook sau Twitter, printre altele. Aceste opțiuni aduc cu sine o ușurință și mai mare în utilizarea aplicației, având în vedere că transmiterea informației către recipienți urmează a se face prin intermediul contului de email, Facebook, Twitter sau altele la care utilizatorul este conectat. Meniul de opțiuni are o interfață simplă, curată, nu este încărcat cu informații sau opțiuni inutile sau care nu sunt necesare, este foarte intuitiv și ușor de folosit de către un utilizator amator, ceea ce nu putem spune neapărat și despre Cerberus. aplicația prezentată anterior care are câteva opțiuni puternice de altfel, dar care necesită cunoștinte relativ avansate de utilizare a dispozitivelor mobile pentru a putea fi utilizată pe deplin de către utilizatorul final. Meniul de opțiuni al aplicației Glympse poate fi observat în figura de mai jos.

Ușurința instalarii și faptul că nu necesită crearea unui cont, chiar aceste aspecte care, fără îndoiala, au participat la popularizarea aplicației sunt și cele care constituie neajunsuri din perspectiva mea, având în vedere soluția “de nișă” pe care o caut.

În varianta gratuită, aplicația este extrem de simplu de folosit, utlizatorul poate selecta opțiunea “Share Location” din Meniu, iar apoi este afișată o activitate care prezinta 4 opțiuni:

Destinatarii cărora urmează să le fie dezvăluita locația utilizatorului

Perioada de timp pentru care locația să fie disponibilă

Se poate atașa un mesaj către destinatari

Se poate selecta o destinație finală.

După ce se selecteaza aceste opțiuni, în momentul în care se apasă comanda Send din partea din dreapta-sus a displayului, se generează un link unic și dispozitivul începe să își transmită poziția și, după caz, viteza, sau alte informații selectate din meniul de opțiuni, către un server al dezvoltatorului aplicației. Insformațiile sunt transmise pe toată perioada de timp selectată de către utilizator sau până în momentul ajungerii la destinație, dacă această opțiune a fost selectată. Apoi, utilizatorul trimite acel link unic generat de aplicație către destinatarii care sunt invitați să urmarească poziția utilizatorului. De notat este faptul că acel link se poate transmite prin Facebook, Twitter, email, mesaj text, sau se poate copia în clipboard-ul dispozitivului și se poate trimite prin orice altă aplicație care suportă funcția de messaging. Un aspect important îl constituie faptul că oricine intra în posesia acelui link pe perioada în care acesta este activ și poate vedea toate informațiile făcute publice de către utilizatorul care a generat acel link. Figura de mai jos reprezintă un screenshot al activității cu cele 4 opțiuni și butonul de Send în dreapta, sus.

Glympse este o aplicație care prezintă mult mai multe opțiuni decât cele testate anterior, printre acestea fiind viteza de deplasare, posibilitatea de a transmite mesaje și opțiunea de a specifica destinația înspre care se indreaptă utilizatorul. Acestea reprezintă reale plusuri în raport cu celelalte aplicații, însă am constatat un mare minus în ceea ce privește modul în care aplicația este concepută.

Dupa cum reiese și din explicarea caracteristicilor asupra cărora am insistat mai sus, funcționalitatea acesteia este una oarecum inversă unei aplicații clasice de tracking, și anume, utilizatorul care urmărește dispozitivul prin interfața web sau prin intermediul unui alt dispozitiv mobil este, de fapt, clientul, și nu invers. Posesorul dispozitivului este cel care hotărăște momentul în care dorește să facă publică unuia sau mai multor clienți locația sa, hotărăște durata pe parcursul căreia aceste informații sunt publice, și le poate opri oricând prin intermediul opțiunilor din meniul aplicației.

Am constatat că aplicația este una robusta, simplă și extrem de funcțională, fapt pentru care se și explică atât cele peste 5 milioane de descărcări de pe platforma Google Play, cât și nota 4.5 din cele aproape 100,000 de recenzii ale utilizatorilor. Totodată am constatat că această aplicație nu oferă posibilitatea unui așa numit administrator de grup să urmarească permanent activitatea mai multor dispozitive în timp real. Acest lucru este posibil doar pentru o perioadă limitată, la inițiativa utilizatorului dispozitivului mobil. Cred că se poate afirma că în scenariul propus la începutul acestui studiu clientul ar trebui să fie utilizatorul mobil și nu invers, așa cum se întâmplă în cadrul aplicației Glympse.

Concluzii

Primele criterii – notă utilizatori (user rating, număr recenzii și număr de instalări) sunt informații preluate direct de pe platforma Google Play, iar pentru a evalua ultimele 4 caracteristici, am considerat un sistem de notare de la 1 la 5, unde 5 este cea mai mare notă, iar 1 cea mai mică. Spre exemplu, la ușurința de instalare, nota 1 ar însemna o instalare foarte dificilă, pe când nota 5 presupune o instalare rapidă și ușoară. în mod similar am evaluat și ușurința de utilizare, funcționalitatea și interfața grafică.

Am evaluat aplicațiile, după cum precizam mai sus, având în vedere 4 criterii care se pot dovedi subiective. În fond, această evaluare nu se dorește a fi una obiectivă, întrucât criteriile stabilite la începutul evaluării sunt ele însele subiective. O aplicație foarte bine construită poate avea sau nu o anumită funcționalitate cerută de utilizator. Absența unei astfel de funcții sau opțiuni aduce cu sine, implicit, o nota mai mică.

Find My Device este o aplicație extrem de simplă care face foarte bine un singur lucru din cele care ne interesează, și anume afișează în timp real locația dispozitivului. Nu există probleme de compatibilitate, aplicația fiind dezvoltată de Google și afisând rezultatele pe o hartă Google. Din cele 7 criterii de evaluare, primele 3 sunt implicite, valorile acestora în toate cazurile fiind luate direct de pe Google Play.

Ușurință Instalare: 5 – aplicația se instalează foarte ușor și recunoaște contul Google la care este conectată tableta, astfel încât utilizatorul trebuie doar să-l confime sau să aleagă altul, dacă dorește, după instalare.

Ușurință Utilizare: 5 – Utilizarea este extrem de facilă, dat fiind faptul că setările sunt practic inexistente, utilizatorul neavând acces la nicio opțiune. Tocmai absența opțiunilor îi conferă aplicației un grad de ușurinta extrem de ridicat în utilizare.

Funcționalitate: 2 – Principalul criteriu pe care l-am urmărit prin prisma cerințelor problemei; din cele cerute, această aplicație transmite locația curentă a dispozitivului și nimic altceva. Din acest motiv, am considerat că la acesta aspect aplicația merită nota 2 din 5.

Interfața Grafică: 5​ – Aici am notat practic interfața grafică a Google Maps.

Cerberus prezintă numeroase alte funcții pe lângă transmiterea locației GPS dar multe dintre ele sunt altele decât cele specificate în criteriile de la începutul studiului.

Ușurință Instalare: 4 – Utilizatorul are nevoie de un cont la instalare. Dacă nu are, își poate crea, dar acesta trebuie să existe.

Ușurință Utilizare: 3 – Prezintă setari și opțiuni care se pot dovedi problematice pentru utilizatorul final, dacă acesta nu este unul experimentat.

Funcționalitate: 3 – Funcția de tracking trebuie activată manual, transmite istoricul pozițiilor dar nu transmite viteza de deplasare, nu oferă opțiune de export al istoricului.

Interfața Grafică: 4 – aplicația folosește harta Google Maps dar dezactivează opțiunea de a mări sau micșora harta cu funcția de scroll a mouse-ului.

Glympse este o aplicație bună, special concepută pentru tracking. Nu prezintă totuși avantajele scontate întrucât permite utilizatorului să oprească funcția de transmitere a locației.

Ușurință Instalare: 5 – Instalare extrem de facilă, aplicația nu necesită niciun cont suplimentar.

Ușurință Utilizare: 5 – Foarte ușor de configurat, interfață intuitivă, aspect curat.

Functionalitate: 3 – Transmite poziția în timp real, viteza de deplasare și istoricul locațiilor, dar pune aceste funcționalități în totalitate sub controlul utilizatorului tabletei sau telefonului.

Interfața Grafică: 5 – Interfața este asigurată de către Google Maps, include opțiunea de afișare a traficului în timp real.

În concluzie, toate cele 3 aplicații testate în prezentul studiu folosesc funcțiile GPS furnizate de mediul Android. Însă nici una dintre acestea nu constituie o soluție de sine stătătăare la problema enunțată, dat fiind faptul că fiecare dintre ele prezintă deficiențe constructive. De exemplu, viteza de deplasare, care este un aspect absolut important pentru scopul unei asemena aplicații, lipsește la 2 din cele 3 aplicații testate, iar singura aplicație care prezintă această funcționalitate nu îndeplinește alte cerinte esențiale.

Există pe piață furnizori de soluții de tracking și fleet management, care dispun de infrastructura dedicată pentru astfel de soluții și au dezvoltat aplicații pentru astfel de scopuri, însă aceste soluții pot deveni extrem de costisitoare, iar obiectul acestui studiu presupunea găsirea unei soluții gratuite sau extrem de accesibile, pentru firme de dimensiuni mici, sau întreprinzători care sunt la început de drum și, implicit, dispun de un buget limitat. Având în vedere că toate dispozitivele Android conțin funcția de localizare prin GPS și că Google pune la dispoziție acces la sistemul lor de hărți în mod gratuit, pentru utilizatori cu un număr rezonabil de interogari pe zi, am considerat că pot găsi sau implementa o soluție care să reducă sau chiar să minimizeze costurile recurente ale unui astfel de utilizator, cu resurse limitate.

În continuare, am decis implementarea unui astfel de sistem, în care utilizatorul dispozitivului Android instalează aplicația, iar aceasta transmite poziția și viteza către o bază de date aflată pe un server web. Aplicatia nu se dorește a fi o soluție completă sau profesională, însă propune o soluție functională, în jurul căreia se pot dezvolta în continuare alte aspecte sau facilități. În continuare sunt elaborate câteva principii constructive si metode care au fost aplicate in dezvoltarea aplicației.

Capitolul 3 – Implementarea aplicației

În dezvoltarea aplicației m-am axat pe două mari componente:

aplicația mobilă

aplicația web

Aplicația mobilă are ca scop transmiterea locației unui utilizator mobil, pe când aplicația web are ca scop oferirea unei priviri de ansamblu asupra localizării tuturor utlizatorilor mobili(client) pe hartă.

Ambele aplicații vor utiliza aceeași bază de date, aplicația mobilă pentru a introduce coordonatele șoferilor în baza de date, iar aplicația web pentru a extrage aceste informații și a le afișa în browser. Ca urmare a acestui fapt, proiectarea bazei de date a fost primul pas în dezvoltarea aplicației. La rândul ei, extinderea și normalizarea bazei de date se va face pe parcurs, odată cu creșterea numărului de utilizatori. Într-o primă variantă, baza de date conține o singură tabelă, cu toate informațiile șoferilor, urmând ca în următoare iterație să creez o tabelă separată doar pentru datele șoferilor și să fac legătura cu tabela care conține informațiile legate de traseu. Câmpurile din tabela creată sunt cele din figura de mai jos:

3.1 Dezvoltarea aplicației mobile

Pentru dezvoltarea aplicatiei mobile am folosit mediul de dezvoltare Android Studio care la ora actuala este solutia standard pentru dezvoltarea de aplicatii Android. Proiectele Android sunt structurate intr-o anume ierarhie. Fisierul AndroidManifest.XML contine pe langa alti paramentri ai aplicatiei si punctul de pornire al acesteia, acesta indicand activitatea care urmeaza sa fie rulata in momentul in care aplicatia este lansata. Acest fisier este localizat in urmatoarea locatie: \app\src\main\AndroidManifest.XML​.

Resursele interfetei grafice sunt locatizate in folderul “​\src\main\res\layout​”, acestea fiind scrise in XML. Android Studio contine si un editor vizual pentru interfata grafica, avand optiunea de a comuta din mod vizual in mod text foarte rapid. Fiecarei activitati ii corespunde o schema (layout) care descrie elementele grafice si de interactiune cu utilizatorul, modul in care acestea sunt dispuse, cum sunt aliniate si functionalitatea lor. De asemenea fiecarei activitati ii corespunde o clasa Java care contine logica executiei activitatii respective. Fiecare activitate a aplicatiei are un layout XML si un fisier Java. Fisierele Java se afla intr-un pachet, in folderul

“​\app\src\main\java​”.

Aceste fisiere XML si Java sunt conectate in manifestul aplicatiei, AndroidManifest.XML, dupa cum se poate vedea mai jos.

Declaratia ​<​action ​android​:name=​"android.intent.action.MAIN" ​/> din cadrul primului tag de tip <activity/> semaleaza ca aceasta activitate este punctul de pornire a aplicatiei atunci cand este lansata in executie.

<​application

​android​:allowBackup=​"true"

​android​:icon=​"@drawable/ic_launcher"

​android​:label=​"@string/app_name"

​android​:theme=​"@android:style/Theme.Light.NoTitleBar"​>

<​activity

​android​:name=​"com.unitracer.Splash_activity"

​android​:label=​"@string/app_name" ​>

<​intent-filter​>

<​action ​android​:name=​"android.intent.action.MAIN" ​/>

<​category ​android​:name=​"android.intent.category.LAUNCHER" ​/>

</​intent-filter​>

</​activity​>

<​activity

​android​:name=​"com.unitracer.Create_account_activity"

​android​:label=​"@string/app_name"

​android​:windowSoftInputMode=​"stateHidden"

​android​:screenOrientation=​"portrait" ​/>

<​activity

​android​:name=​"com.unitracer.Track_location"

​android​:label=​"@string/app_name"

​android​:windowSoftInputMode=​"stateHidden"

​android​:screenOrientation=​"portrait"​>

</​activity​>

<​meta-data

​android​:name=​"com.google.android.maps.v2.API_KEY"

​android​:value=​"AIzaSyD6dLL0Z-BRJVNd5H0LzNSRzF4_DCmrI48"

​/>

<​meta-data

​android​:name=​"com.google.android.gms.version"

​android​:value=​"@integer/google_play_services_version" ​/>

Fiecare aplicatie Android contine in mod obligatoriu cel putin o activitate. In functie de ce functionalitati ofera aplicatia respectiva, poate avea mai multe activitati care sunt apelate in functie de ce selecteaza utilizatorul sau in functie de cum decurge executia. Numai o activitate poate fi activa la un moment dat, existand un asa numit Activity_Lifecyle, ilustrat foarte bine in imaginea de mai jos. In momentul in care o anume activitate este lansata, este automat apelata o secventa de metode in ordinea sugerata de schema Activity_Lifecycle. Si anume, mai intai este apelata metoda onCreate(), urmata de metoda onStart() si apoi onResume() urmand ca apoi aplicatia sa fie activa si in prim plan. Se poate observa in schema, ca daca sistemul afiseaza un mesaj de alerta sau o notificare cu prioritate mai mare apare in prim plan, activitatea curenta trece in fundal, chiar daca este inca vizibila, moment in care este automat apelata de catre sistem metoda onPause(). O observatie care merita notata aici este faptul ca odata ce activitatea intra in aceasta stare, daca sistemul decide ca trebuie sa elibereze memorie pentru alte procese cu prioritate mai ridicata, acesta poate decide oprirea completa a activitatii, caz in care orice date sau informatii obtinute in urma evolutiei activitatii vor fi pierdute daca acestea nu sunt salvate in prealabil. Acesta este motivul pentru care, de obicei, dezvoltatorii de aplicatii aleg sa implementeze la inceputul acestei metode instructiuni de salvare a informatiilor pe care activitatea le prelucreaza, pe suportul de stocare al dispozitivului. De retinut de asemenea ca daca este vorba de cantitati relativ mari de informatii, se recomanda salvarea acestora concomitent cu derularea aplicatiei pentru a se proteja integritatea lor si pentru a nu incetini dispozitivul in momentul in care sunt afisate alerte de catre sistem.

Metoda onStop() este apelata atunci cand activitatea nu mai este vizibila, de exemplu cand utilizatorul navigheaza catre o alta aplicatie sau atunci cand apasa pe butonul Home. Metoda onDestroy() este apelata cand activitatea este fie oprita prin comanda din interiorul aplicatiei, fie cand sistemul decide sa o termine pentru a elibera memorie.

Pentru reprezentarea locatiilor geografice sistemul Android pune la dispozitie clasa numita Location,​ din pachetul android.location​ .​ Obiectele generate de aceasta clasa pot contine atribute optionale cum ar fi directia, altitudinea, viteza, si altele, dar contin in mod obligatoriu latitudinea, longitudinea si un timestamp (data+ora). Clasa LocationManager​ din acelasi pachet furnizeaza accesul la servicii sistem prin care se poate actualiza automat locatia dispozitivului sau se pot emite comenzi de tip Intent pentru ca actualizarea pozitiei geografice sa fie posibila si daca activitatea a fost distrusa. Acest lucru se poate face printr-un serviciu sendBroadcast() care primeste ca argument un obiect de tip Intent.

Aceasta metoda a fost aleasa pentru monitorizarea modificarii locatiei in orice moment, prin clasa MyLocationListener care implementeaza interfata LocationListener prezenta in acelasi pachet android.location. Din cele 4 metode impuse de interfata, onLocationChanged()​ este cea care implementeaza solutia, in codul de mai jos:

public class ​MyLocationListener ​implements ​LocationListener

{

​public void ​onLocationChanged(​final ​Location loc)

{

Log.​i​(​"****************"​, ​"Location changed"​); ​if​(isBetterLocation(loc, ​previousBestLocation​)) { loc.getLatitude(); loc.getLongitude();

Log.​d​(​"lat////"​,​""​+loc.getLatitude());

Log.​d​(​"long////"​,​""​+loc.getLongitude());

​intent​.putExtra(​"Latitude"​, loc.getLatitude());

​intent​.putExtra(​"Longitude"​, loc.getLongitude()); ​intent​.putExtra(​"Provider"​, loc.getProvider()); sendBroadcast(​intent​);

}

}

​public void ​onProviderDisabled(String provider)

{

Toast.​makeText​( getApplicationContext(), ​"Gps Disabled"​, Toast.​LENGTH_SHORT

).show();

}

​public void ​onProviderEnabled(String provider)

{

Toast.​makeText​( getApplicationContext(), ​"Gps Enabled"​,

Toast.​LENGTH_SHORT​).show();

}

​public void ​onStatusChanged(String provider, ​int ​status, Bundle extras)

{

}

}

Se poate observa ca metoda onLocationChanged()​ apeleaza o metoda de tip boolean,​ isBetterLocation(Location, Location),​ care primeste doi parametri de tip Location, pe care apoi ii compara. Primul parametru care ii este adresat este locatia care tocmai a fost primita iar cel de-al doilea parametru contine ultima locatie care a fost salvata. Aceste doua sunt comparate, iar daca cea primita mai recent are un timestamp mai recent, sau o pozitie de o acuratete mai mare, locatia noua este salvata si este totodata considerata ultima locatie validata, urmatoarea urmand a fi comparata cu aceasta din urma. In aceasta situatie metoda returneaza valoarea True​ .​ Codul acestei metode este mai jos, aceasta idee fiind preluata de pe site-ul oficial al dezvoltatorilor Android, de la aceasta locatie:

https://developer.android.com/guide/topics/location/strategies.html

protected boolean ​isBetterLocation(Location location, Location currentBestLocation) {

​if ​(currentBestLocation == ​null​) {

​// A new location is always better than no location

​return true​;

}

​// Check whether the new location fix is newer or older

​long ​timeDelta = location.getTime() – currentBestLocation.getTime();

​boolean ​isSignificantlyNewer = timeDelta > ​TWO_MINUTES​;

​boolean ​isSignificantlyOlder = timeDelta < -​TWO_MINUTES​;

​boolean ​isNewer = timeDelta > ​0​;

​// If it's been more than two minutes since the current location, use the new location

// because the user has likely moved // PC:

​if ​(isSignificantlyNewer) {

​return true​;

​// If the new location is more than two minutes older, it must be worse

​} ​else if ​(isSignificantlyOlder) {

​return false​;

}

​// Check whether the new location fix is more or less accurate

​int ​accuracyDelta = (​int​) (location.getAccuracy() – currentBestLocation.getAccuracy());

​boolean ​isLessAccurate = accuracyDelta > ​0​;

​boolean ​isMoreAccurate = accuracyDelta < ​0​;

​boolean ​isSignificantlyLessAccurate = accuracyDelta > ​200​;

​// Check if the old and new location are from the same provider ​boolean ​isFromSameProvider = isSameProvider(location.getProvider(), currentBestLocation.getProvider());

​// Determine location quality using a combination of timeliness and accuracy

​if ​(isMoreAccurate) {

​return true​;

} ​else if ​(isNewer && !isLessAccurate) {

​return true​;

} ​else if ​(isNewer && !isSignificantlyLessAccurate && isFromSameProvider) {

​return true​;

}

​return false​;

}

Am considerat ca metoda de mai sus este una extrem de eficienta, aceasta ajutand la asigurarea integritatii datelor transmise. In primul rand se verifica daca coordonatele primite mai recent au fost obtinute mai recent decat precedentele, ceea ce este important, asigurandu-se astfel secventialitatea rutei reconstruite de catre aplicatia web. De asemenea, pozitia obtinuta prin reteaua celulara poate prezenta abateri de la pozitia exacta, desi se obtine o pozitie initiala mai rapida, iar daca urmatoarea pozitie este obtinuta prin satelit, aceasta poate fi mai exacta decat prima. De asemenea, pachetul ​android.location prezinta metode pentru verificarea metodei in care locatia a fost obtinuta si numele providerului, astfel incat, se poate opta intre diferiti provideri in functie de ce criterii doreste utilizatorul a fi implementate.

3.2 Utilizarea aplicatiei mobile

In momentul in care aplicatia este pornita, utilizatorul are optiunea de a-si crea un cont, informatiile care trebuiesc introduse rezumandu-se doar la nume, adresa de email si setarea unei parole. Interfata acestei activitati este foarte simpla, intuitiva si nu prezinta dificultati, este afisata in imaginea de mai jos. Dupa ce utilizatorul si-a introdus datele de conectare, aplicatia afiseaza pozitia dispozitivului pe harta GoogleMaps, optiunile fiind extrem de limitate, intrucat scopul aplicatiei, in aceasta forma prevede strict optiunea de tracking a locatiei intr-o aplicatie web.

3.3 Dezvoltarea aplicației web

Pentru dezvoltarea aplicației web am avut nevoie de un server web, de PHP și MySQL și am considerat XAMPP (​https://www.apachefriends.org/index.html​), un pachet de programe cu sursă deschisă, ca fiind cea mai rapidă și mai facilă soluție pentru a obține un server local, fără cunoștințe de instalare și configurare de servere. Pașii sunt simpli, descărcarea unei arhive, dezarhivarea ei și instalarea programelor. Prin căteva click-uri am obținut un server web cu PHP și un server de baze de date. Pentru construcția aplicației web am folosit Codeigniter (https://codeigniter.com/), un framework PHP care permite construirea de aplicații web dinamice, bazându-se pe modelul MVC (model-view-controller) care realizează separarea logicii de interfața grafică.

Alicația web presupune existența unei hărți pe care să fie vizibile toate caminoanele, cu posibilitatea de a da click pe marker și de a afla nume șoferului, viteza și locația în care se află. Figura de mai jos prezintă implementarea acestei interfețe.

Toate semnele de marcaj (​pin​-urile) de pe hartă reprezintă locațiile transmise de dispozitivele Android și salvate apriori în baza de date. Primul pas este introducerea hărții în pagina web, urmată de desenarea punctelor de marcaj și de redesenarea (reflesh) lor la un anumit interval de timp. Toate acestea sunt realizate prin intermediul funcției ​load()​, care conține următorul cod JavaScript:

Pentru a desena harta în pagină se folosește API-ul oferit gratuit de Google și apelat înainte de introducere codului de mai sus prin următoarea linie de cod:

Centrul hărții se poate stabili cu instrucțiunea ​new google.maps.LatLng(46, 24) care​ primește ca parametri latitudinea și longitudinea. De asemenea, se mai pot stabili nivelul de zoom al hărții (​zoom: 6​) și tipul ei (​mapTypeId: 'roadmap'​).

Odată desenată harta, se face o primă interogare a bazei de date și desenarea marcajelor care reprezintă locația dispozitivelor Android (funcția ​getxml(infoWindow​). Prin intermediul funcției

window.setInterval( function() { getxml(infoWindow,map); }, 5000 ) ​se reapelează funcția ​getxml(infoWindow​) la un interval de 5000 de ms, în acest caz, reapelare care determină o nouă interogare a bazei de date și o nouă redesenare a marcajelor, în funcție de ultimele înregistrări din baza de date.

În secvența de cod de mai jos se realizează:

interogarea bazei de date (comanda ​SELECT * FROM tbl_location este​ utilizată pentru a returna toate înregistrările din tabela tbl_location)

crearea și pregătirea marcajelor pentru poziționarea lor pe hartă se fac prin următoarea secvență de cod.

​ $result=$this->db->query("SELECT * FROM tbl_location")->result_array();

$output = "<markers>";

La un click pe oricare dintre marcajele de pe hartă obținem informații cu privire de șofer, viteză și localizare, după cum se poate vedea în cele două figuri de mai jos. în momentul în care cele 5000 de ms au trecut și se face o nouă interogare a bazei de date, deci o reactualizare a marcajelor pe hartă, caseta cu informațiile suplimentare va dispărea.

Concluzii Bibliografie

“Android History.” ​Android Central​, 21 Oct. 2015. Web. 19 June 2016.

“Global Smartphones Sales by Operating System 2009-2015 | Statistic.” ​Statista​, Web. 19 June 2016.

Guru, and Guru. “Top 10 Mobile Phones Operating Systems.” ​ShoutMeLoud 23 Aug. 2012. Web. 20 June 2016.

“History of Cell Phones -.” N.p., n.d. Web. 20 June 2016.

“History of the Web.” ​World Wide Web Foundation​. Web. 19 June 2016.

ICT Facts&Figures, The World în 2015​., Web. 23 June 2016.

Ingram, Mathew. “Gigaom | Mary Meeker: Mobile Internet Will Soon Overtake Fixed Internet.”, n.d. Web.

18 June 2016.

“Mobile Marketing Statistics 2016.” ​Smart Insights​., 27 Apr. 2016. Web. 19 June 2016.

Nair, Rajeesh. “Internet & Mobile Phone Users Worldwide 2015: 50% Population Is On Internet [REPORT].” ​Dazeinfo​, 27 May 2015. Web. 23 June 2016.

“Number of Internet Users (2016) – Internet Live Stats.” , Web. 19 June 2016.

“Smartphone OS Global Market Share 2009-2016 | Statistic.” ​Statista​, Web. 18 June 2016.

Srivastava, Anshul. “2 Billion Smartphone Users By 2015: 83% of Internet Usage From Mobiles [Study].” Dazeinfo​. N.p., 23 Jan. 2014. Web. 20 June 2016.

“The History of Mobile Phones From 1973 To 2008: The Handsets That Made It ALL Happen.” ​Know Your Mobile​., Web. 20 June 2016.

“The Mobile Economy 2015.” ​GSMA Intelligence​, Web. 20 June 2016.

Williams, Rhiannon. “Apple iOS: A Brief History.” ​Telegraph.co.uk​, 17 Sept. 2015. Web. 20 June 2016.

Similar Posts