Lucrare de licență [305242]

Lucrare de licență

Titlu

lucrării

Cadru didactic îndrumător: Absolvent: [anonimizat].dr.ing.inf. [anonimizat], [anonimizat], oamenii, îl folosim. [anonimizat] a ne face viața mai ușoară încercând să ne satisfacem nevoile pe mai multe ramuri. Putem să luăm legătura cu colegii de serviciu pentru a [anonimizat], [anonimizat]. Dar, [anonimizat] a făcut ca acest smartphone să fie o necesitate pentru fiecare dintre noi. [anonimizat], [anonimizat], să fim suprinsi de minunăția naturi pe care o putem fotografia fără a [anonimizat]. Așadar, [anonimizat], deoarece orice idee care ne trece prin minte poate fi transformată într-o aplicație mobilă și dată în folosință oricărui deținător de astfel de gadgeturi.

Utilizarea dispozitivelor mobile inteligente din categoria tabletelor și telefoanelor este într-o creștere permanentă. [anonimizat], [anonimizat], consumul de apă sau aplicații care îți permit plata facturilor fără a te deplasa la ghișee. Astfel, noi, [anonimizat], [anonimizat], sunt gratuite sau contracost.

[anonimizat] o mentenanță mai bună. [anonimizat], [anonimizat], [anonimizat], costă.

[anonimizat], [anonimizat] (Android, iOS, [anonimizat].). [anonimizat], [anonimizat] (public Domain). Designul, [anonimizat], sunetul, videoclipurile, [anonimizat].

Dreptul de autor se extinde asupra formei de exprimare și nu se aplică asupra ideilor. [anonimizat]/[anonimizat] (trademark).

Aplicația mobilă nu este o invenție, [anonimizat], să implice o activitate inventivă și să fie susceptibilă de aplicare industrială. Brevetul nu protejează aplicația mobilă, ci soluția tehnică, cum ar fi, de exemplu: efectul aplicației mobile prin care utilizatorul acesteia poate accesa la distanță sistemul electronic de protecție al mijlocului de transport și datele despre acesta.[1]

După cum am spus, orice idee se poate transforma într-o aplicație mobilă și de aici am ajuns la faptul că ceea ce mi-am propus să fac este o aplicație mobilă turistică de promovare a orașului și județului în care trăiesc. Majoritate orașelor din țară și din afară granițelor posedă o astfel de aplicație mobilă, prin care fiecare zona își scoate în față tot ce are mai bun, zone atractive, turism cultural, atracții pentru copii, transport în comun și așa mai departe.
Iașul este județul pentru care eu am ales să fac acesta aplicație turistică. Acesta este un județ aflat în regiunea istorică numită Moldova, în nord-estul României, cu reședința în municipiul Iași. Iașul își trage numele de la vechiul trib șarmat al Iașilor.
În urma datelor recensământului din 2011, județul Iași avea o populație de 772.348 locuitori, fiind, după București, al doilea județ ca număr de locuitori din România, cu o densitate a populației de 140,5 loc./km². Populația aproape s-a dublat în ultimii șaizeci de ani. Peste 98% dintre locuitori sunt români; există de asemenea comunități de romi. Majoritatea populației este formată din ortodocși, însă există și o comunitate semnificativă de catolici (cca. 5%, în Iași și în partea de vest a județului), precum și mici grupuri de protestanți.[2]

Aplicații similare

Câteva exemple de astfel de aplicații turistice sunt prezentate în cele ce urmează, aplicații ale orașelor importante din românia cu un număr mare de descărcări și un raiting ridicat. Acestea sunt gratuite pentru toți deținătorii de telefone mobile cu sistem de operare Android.

Ghid București

Ghid București este o aplicație care furnizează rezultatele unei căutări într-o anumită zonă geografică sau în vecinătatea punctului în care se află utilizatorul la momentul oportun de exemplu: cel mai apropiat hotel, restaurant, spital sau magazin în funcție de categoria aleasă.

Facilitățile disponibile în această aplicație sunt următoarele:

9 categorii de locații principale care cuprind cele mai atractive 100 de locații din orașul București.

listarea celor mai apropiate locații din zonă în funcție de distanța până la acestea.

hărțile interactive se pot afișa în modul preferat: normal, satelitar, hibrid sau teren.

fiecare locație conține imaginea reprezentativă, descrierea, datele de contact și posibilitatea de explorare sau navigare până la aceasta.

aplicația se poate rula fără a fi nevoie de o conexiune permanentă la Internet.

distanța din punctul curent până la punctul de interes este calculată în mod automat.

posibilitatea adăugării locațiilor favorite într-o listă personală, pentru orice utilizator.

navigarea până la locația aleasă cu indicații precise, în modul preferat de navigare: mașina personală, mijloc de transport în comun sau pe jos. [3]

Figura I.1 Meniu principal Figura I.2 Informații despre un punct touristic

Timișoara City App

'Timișoara City App' este o aplicație dedicată Timișoarei care vă aduce toate evenimentele importante ale orașului, împreună cu ghidul locațiilor unde vă puteți petrece timpul liber. Un 'smart city app' care nu uită nici de cele mai bune oferte de produse și servicii, direct publicate chiar de către cei care vi le oferă.

Timișoara are de acuma un sistem informațional auto-sustenabil pentru publicarea și informarea localnicilor și turiștilor. Puteți găsi simplu și de oriunde v-ați afla tot ce aveți nevoie pentru a ieși în oraș, pentru a vă petrece timpul liber sau pentru a găsi rapid serviciile de care aveți nevoie.

Ce puteți găsi în aplicația 'Timișoara City App'

agenda evenimentelor importante ale orașului: concerte, petreceri, filme, teatre, workshopuri, sport etc

liste și detalii atractive despre locații de timp liber: restaurante, puburi, cafenele, locuri de joacă, divertisment

oferte și servicii de tot felul: săli de sport, frumusețe & sănătate, pentru mașină, servicii administrative și multe altele. [4]

Figura I.3 Pagină cu evenimente Figura I.4 Harta orașului Timișoara

Ghid virtual – Sibiu Zoo

Ghid Virtual – aplicația oficială a Grădinii Zoologice Sibiu oferă utilizatorilor o experiența unică pe parcursul vizitei, fiind disponibilă în limbile Română, Engleză și Germană.

Vizitatorii vor avea acces la informații de tipul audio, text sau imagini despre regulamentul de vizitare și animalele prezente în grădină.

Aplicația folosește tehnologie de proximitate bazată pe soluție Beacon pentru a furniza utilizatorului conținut media relevant în funcție de locație.

Notificările despre conținutul media disponibil în funcție de zonă se vor transmite atât în timpul utilizării aplicației Ghid Virtual cât și în momentul în care aplicația rulează în background.[5]

Figura I.5 Ghid virtual – meniu Figura I.6 Buton începere vizită virtuală

Baia Mare City App

Baia Mare City App este aplicația care îți pune la dispoziție cele mai

interesante locuri și evenimente din oraș!

Evenimente vibrante, restaurante elegante pub-uri relaxante sau cazare ieftină sunt doar câteva din informațiile pe care le găsești în aplicație. Chiar dacă ești doar în trecere prin Baia Mare, aplicația te ghidează înspre locurile de interes, îți oferă acces la informații și telefoane utile și îți pune la dispoziție un ghid ca să găsești repede ceea ce te interesează.[6]

Figura I.7 SplashScreen Figura I.8 Lista evenimentelor

Arad City

Arad City App este o aplicație dedicată Aradului care aduce toate evenimentele importante ale orașului, împreună cu ghidul locațiilor unde se puteți petrece timpul liber. Un smart city app care nu uită nici de cele mai bune oferte de produse și servicii, direct publicate chiar de către cei care le oferă.

Ce se poate găsi în aplicația Arad City App:

agenda evenimentelor importante ale orașului: concerte, petreceri, filme, teatre, workshopuri, sport, etc

liste și detalii atractive despre locații de timp liber: restaurante, puburi, cafenele, locuri de joacă, divertisment

oferte și servicii de tot felul: săli de sport, frumusețe & sănătate, pentru mașină, servicii administrative și multe altele.

După cum se poate vedea meniul este unul foarte simplu, bine conceput încât să o poată folosi majotitatea celor ce o vor instala.
Opțiunile oferite de aplicație sunt: Places, Știri Arad, Atracții turistice, Notificări, Tramvai,Informații utile, Distribuie și Voteza-ne. Dezvoltatorul aplicației este Air Sfotware Developer, iar aplicația a fost instalată de mai vine de 1000 de utilizatori.

Figura I.9 Interfata cu Utilizatorul a aplicatiei Arad City

Prezentarea pe scurt a ceea ce se propune

Aplicația mobilă pe care o voi dezvolta este o aplicație turistică ce va purta numele de “TurIS” (Turist Iași). Aceasta va fi disponibilă pentru toți deținătorii de smartphone cu sistem de operare Android și va putea fi accesată de către orice persoană pentru toate versiunile ale sistemului de operare.

Dezvoltarea se face cu ajutorul mediului de programare Android Studiu. Programul este unu open source și se poate descărca de pe pagina oficială Andoid. Varianta disponibilă în momentul de față este Android Studio 3.1.3 pentru Windows 64-bit (758 MB).

Informațiile ce vor fi introduse în această aplicație și care vor fi la dispoziția celor ce o vor folosi, sunt informații pe care le-am găsit într-un ghid turistic al zonei moldovei de EDITURA MUNICIPAL IAȘI, ce are nu număr de 193 de pagini, informații ce se găsesc în 2 limbi, Romană și Engleză. Acest ghid conține și ilustrații de unde a fost foarte ușor să indentific obiectivele turistice ce vor fi introduse in aplicație.

Figura I.10 Ghid turistic zona Moldovei

Aplicația TurIS aduce la un loc toate obiectivele turistice din zona județului Iași, pune la un loc clădirile, parcurile, zonele de agrement etc. Mai bine zis construiește un tur virtual al locațiilor pe care le poți viziat apoi, împreună cu familia, prietenii sau colegii. O aplicația accesibilă tuturor consumătorilor, care presupune a intra într-un meniu principal, iar de acolo putând accesa obiective turistice structurate pe categorii de vizitare.
Meniul constă într-o pagină principală în care sunt un număr de 10 secțiuni din care poți alege pentru a afla informații cu privire la obiectivele turistice și anume:

Prezentare generală: prezentare pe scurt a județului cu câteva informații de bază.

Top 10 atracții: aici sunt prezentate atracțiile de top, în numare de 10, adică cele mai cunoscute obiective turistice ale zonei.

Alte atracții: prezentarea pe scurt a altor obictive turistice cunoscute.

Turism cultural: enumerarea obiectivelor culturale ale zonei.

Biserici și mănăstiri: enumerarea lacaselor de cult a zonei.

Atracții pentru copii: aici se gasec: locația, numărul de telefon, paginile web și adresele de email a locurilor de joacă pentru copii.

Facultăți: este prezentată partea universitară unde se găsește lista facultăților cu detalii referitoare la locația, numărul de telefon, adresa de email etc.

Transport în comun: detalii despre transportul în comun din zonă orașului Iași, cu trasele specifice fiecărei zone unde se găsesc autobuze și tramvaie.

Informații utile: este secțiunea unde de pot găsi informații referitoare la diverse locații ce nu intră în cele enumerate de până acum, evenimente, parcări, etc.

Locația ta: îți va arăta locația în care te aflii în momentul folosirii aplicației pentru a estima distanța până la unul din obictivele turistice enumerate în secțiunile prezentate de mai sus.

Descrierea capitolelor

Capitolul 1: Acest capitol reprezintă o scurtă prezentare a contextului general. Am descris de ce am ales să construiesc această aplicație și metodele prin care am realizat-o. Am dat câteva exemple de aplicații similare pe care le găsim la noi în țară și le-am descris în câteva cuvine după care am adăugat și câteva imagini reprezentative.

Capitolul 2: Sunt prezentate resursele software utilizate. Am făcut o scurtă prezentare a ceea ce înseamnă limbaje de programare, iar apoi am descris limbajul Java, cel pe care îl folosește mediul de programare în care am lucrat. După ce am vorbit de limbajele de programare am făcut cunoștință cu Android Studio, desvoltatorul aplicației TurIS. Aici am intrat în amănunte și am arătat cum funcționează programul prin analizarea elementelor care îi stau la bază.

Capitolul 3: Se prezintă aplicația dezvoltată. Am comentat câteva linii de cod pe care le-am folosit în diferitele fișiere, după care am pus la dispoziție câteva imagini pentru a face cunoștință cu partea grafică și anume designe-ul rezultat în urma muncii. Tot aici am vorbit și despre emulatorul Genymotion, ce fără de care nu aș fi putut să realizez testele de pe parcursul construcției aplicației.

Capitolul 4: Prezintă concluziile rezultate în urma lucrării la acest proiect de licență. Am dat exemple de avantaje și dezavantaje pe care le constituie o aplicație mobilă.

Resurse software

Limbaje de programare

Limbajul de programare este un limbaj artificial, folosit pentru a scrie secvența de instrucțiuni care poate fi rulată de un computer.

Limbajele de programare au apărut o dată cu invenția computerului digital în anii 40. Primul limbaj de asamblare a apărut în ultima perioadă a anilor 50 ca răspuns la introducerea computerelor comerciale iar primele limbaje procedurale au fost dezvoltate la sfârșitul anilor 50 și începutul anilor 60 prin apariția limbajelor: FORTRAN (FORmula TRANslation) creat de Jhon Backus și COBOL (Common Business Oriented language) creat de Grace Hopper. Primul limbaj funcțional LISP (List Processing) a fost creat de Jhon McCarthy.

Spre sfârșitul anilor 60 a apărut primul limbaj orientat pe obiecte, precum SIMULA. Limbajele logice au devenit bine cunoscute la mijlocul anilor 70 prin apariția PROLOG, limbaj folosit în domeniul inteligenței artificiale.

De-alungul anilor 70, limbajele procedurale au continuat să se dezvolte o dată cu apariția: ALGOL, BASIC, PASCAL, C, și ADA. SMALLTALK a avut o mare influență în programarea pe obiect ducând la combinarea limbajelor procedurale cu cele orientate pe obiect în C++ și mai recent în JAVA.

Similar limbajelor naturale, limbajele de programare au vocabularul și gramatica proprie. Limbajele naturale nu sunt potrivite pentru programarea computerelor deoarece acestea sunt ambigue, interesul lor putând fi interpretat în diferite moduri. Limbajele folosite pentru programarea computerelor trebuie să aibă o structură logică, simplă și regulile pentru gramatică, ortografie și punctuație să fie precise.

Limbajele de programare pot varia de la un nivel specific la unul general.

Unele limbaje de programare sunt scrise pentru a rezolva un tip particular de probleme sau pot fi folosite numai pe anumite sisteme de calcul. Astfel limbaje precum FORTRAN și COBOL au fost scrise pentru a rezolva anumite tipuri particulare de probleme (FORTRAN – pentru aplicații în domeniul științelor, COBOL – pentru aplicații de birou), însă sunt compatibile cu numeroase clase de computere.

Alte limbaje precum codul mașina sunt destinate utilizării pe un anumit tip de sisteme de calcul sau chiar numai pe un singur computer în anumite domenii de cercetare.

Cele mai răspândite limbaje de programare sunt portabile (pot fi folosite pentru a programa diverse tipuri de computer) și pot fi folosite pentru a rezolva cele mai diverse probleme. Astfel de programe sunt: C, PASCAL, BASIC. [7]

Limbajul de programare folosit – JAVA

Java este un limbaj de programare orientat-obiect, puternic tipizat, conceput de către James Gosling la Sun Microsystems (acum filială Oracle) la începutul anilor ʼ90, fiind lansat în 1995. Cele mai multe aplicații distribuite sunt scrise în Java, iar noile evoluții tehnologice permit utilizarea sa și pe dispozitive mobile gen telefon, agendă electronică, palmtop etc. În felul acesta se creează o platformă unică, la nivelul programatorului, deasupra unui mediu eterogen extrem de diversificat. Acesta este utilizat în prezent cu succes și pentru programarea aplicațiilor destinate intranet-urilor.[8]

Limbajul împrumută o mare parte din sintaxă de la C și C++, dar are un model al obiectelor mai simplu și prezintă mai puține facilități de nivel jos. Un program Java compilat, corect scris, poate fi rulat fără modificări pe orice platformă care e instalată o mașină virtuală Java (în engleză Java Virtual Machine, prescurtat JVM). Acest nivel de portabilitate (inexistent pentru limbaje mai vechi cum ar fi C) este posibil deoarece sursele Java sunt compilate într-un format standard numit cod de octeți (în engleză byte-code) care este intermediar între codul mașină (dependent de tipul calculatorului) și codul sursă.

Mașina virtuală Java este mediul în care se execută progrămele Java. În prezent, există mai mulți furnizori de JVM, printre care Oracle, IBM, Bea, FSF. În 2006, Sun a anunțat că face disponibilă varianta sa de JVM ca open-source.

Există 4 platforme Java furnizate de Oracle:

Java Card – pentru smartcard-uri (carduri cu cip);

Java Platform, Micro Edition (Java ME) — pentru hardware cu resurse limitate, gen PDA sau telefoane mobile;

Java Platform, Standard Edition (Java SE) — pentru sisteme gen workstation, este ceea ce se găsește pe PC-uri;

Java Platform, Enterprise Edition (Java EE) — pentru sisteme de calcul mari, eventual distribuite.[9]

JAVA: un limbaj compilat și interpretat

În funcție de modul de execuție al programelor, limbajele de programare se împart în două categorii:

Interpretare: instrucțiunile sunt citite linie cu linie de un program numit interpretor și traduse în instrucțiuni mașină; avantaj: simplitate; dezavantaj: viteza de execuție redusă;

Compilate: codul sursă al programelor este transformat de compilator într-un cod ce poate fi executat direct de procesor; avantaj: execuție rapidă; dezavantaj: lipsa portabilității, codul compilat într-un format de nivel scăzut nu poate fi rulat doar pe platforma pe care a fost compilat.

Programele Java sunt atât interpretate cât și compilate.

Codul de octeți este diferit de codul mașină. Codul mașină este reprezentat de o succesiune de 0 și 1; codurile de octeți sunt seturi de instrucțiuni care seamănă cu codul scris în limbaj de asamblare. Codul mașină este executat direct de către procesor și poate fi folosit numai pe platforma pe care a fost creat; codul de octeți este interpretat de mediul Java și de aceea poate fi rulat pe orice platformă care folosește mediul de execuție Java.

Realizarea unui program Java constă în următorii pași:

Editarea programului într-un editor de texte;

Salvarea programului sub numele: NumeClasa.java unde NumeClasa este numele clasei care conține metoda: main(). Într-un program Java trebuie să existe o singură clasă care să conțină o metodă: main(). Cu alte cuvinte, numele clasei trebuie să coincidă cu numele fișierului. Extensia fișierului este .java

Compilarea programului se face cu ajutorul comenzii: javac NumeClasa.java

Executarea programului se face cu ajutorul comenzii: java NumeClasa

Medii de programare/compilare

Mediul de programare folosit pentru dezvoltarea aplicației „TurIS” este Android Studio. Până în luna mai a anului 2013, aplicațiile Android se puteau realiza prin intermediul mediului de dezvoltare Eclipse, împreună cu plugin-ul ADT (Android Development Tools) – dezvoltat de Google.

Mai apoi, Google a propus un nou IDE – Android Studio, care are același scop(de a permite dezvoltarea de aplicații mobile), dar oferă mai multe facilități în ceea ce privește instalarea mediului de lucru, performanța, “code completion and refactoring” la nivel avansat, etc.

Figura III.1 Interfața Android Studio

Platforma Hardware

Android a fost proiectat pentru a fi compatibil cu o gamă largă de componente hardware. Aceasta constituie o caracteristică importantă, întrucât permite producătorilor să conceapă și să integreze elementele necesare dispozitivului Android, făcându-l atractiv atât în rândul programatorilor cât și al consumatorilor.

Fiind o platformă destinată dezvoltării de aplicații pentru telefoane mobile, în realizarea ei s-a avut în vedere conservarea energiei acumulatorului precum și gestionarea în mod eficient a resurselor de memorie existente.

După cum apare în [10], majoritatea dispozitivelor Android au utilizat încă de la început procesoare ARM, cunoscute a fi destul de puternice, raportat la consumul mic de energie. Cu toate acestea, unele corporațiile care au portat Android pe alte platforme au ales să folosească propriile lor CPU-uri (ex: Intel a utilizat propriul lor procesor Atom).

Pentru a nu suprasolicita procesorul, designerii de celulare au realizat o componentă separată care să gestioneze complexitatea comunicării mobile. Modem-ul baseband și radioul sunt sisteme hardware și software care furnizează dispozitivelor Android o conexiune la telefonia mobilă, lucru ce permite atât transfer de voce, cât și de date.

Văzând figura 1.1, la telefoanele inteligente întâlnim două tipuri de memorie: memorie cu acces aleator (RAM) și memorie nevolatilă flash NAND. Coform [10], memoria RAM este folosită de sistem pentru încărcarea, executarea și manipularea diferitelor părți ale sistemului de operare, iar cea flash pentru stocarea sistemului de operare precum și a datelor dorite de utilizator. Datorită limitării impuse de spațiul restrâns, cele două tipuri de memorie sunt combinate într-o singură componentă, cunoscută sub numele de pachet multicip (MCP).

Figura III.2 Arhitectura MCP

Una dintre cele mai interesante componente hardware este sistemul de poziționare globală (GPS) care este oferit gratis în pachetul de bază. Acesta nu identifică doar locația telefonului, folosindu-se de sateliții GPS, dar oferă și aplicațiilor posibilitatea de a accesa și de a se folosi de aceste informații.

Pe lângă rețeaua de telefonie mobilă existentă, Android permite conectarea la internet prin activarea opțiunii Wireless, cât și conectarea la alte telefoane sau dispozitive externe, prin activarea opțiunii Bluetooth.

Majoritatea telefoanelor prezintă un card de memorie detașabil care este cunoscut prin numele de card SD (Secure Digital). La fel ca memoria flash, cardurile SD sunt tipuri de memorie nevolatilă ce utilizează tehnologia flash NAND. Fiind concepute ca elemente portabile, acestea aderă la anumite specificații fizice, făcând posibil interoperabilitatea cu celelalte dispozitive. Acest aspect constituie una dintre notele distinctive vis-a-vis de telefoanele Apple, care nu prezintă card SD, ci doar memorie flash cu o capacitate de la 4 GB la 32 GB, după cum este relatat în [10]. Această alegere făcută de producătorii Android nu este doar o soluție mai ieftină ci și practică, acest card putând fi utilizat și de către alte telefoane.

Ecranul este interfața sistemului de operare pentru interacțiunea cu utilizatorul, fiind important nu doar pentru impactul pe care îl produce din punct de vedere vizual, cât și pentru răspunsul pe care îl oferă la atingere. Acesta este într-o continuă dezvoltare urmărindu-se creșterea rezoluției, a luminozității, precum și capacității de răspuns la stimulii externi.

Camera telefonului și-a depășit atribuțiile cunoscute de a face poze sau de a filma, utilizând celelalte componente hardware pentru a-și lărgi aria de utilitate. Majoritatea dispozitivelor combină funcționalitatea acesteia pentru a înregistra pe lângă data și timpul la care s-a realizat o poză sau un video și coordonatele GPS la momentul utilizării acesteia. Datele multimedia pot fi cu ușurință încărcate pe web și partajate cu alte persoane. Interesantă este utilizarea acestei comoponente în domeniul realității augmentate, camera putând fi folosită pentru a identifica un produs pe baza codului de bare sau a unei clădiri pe baza coordonatelor geografice sau a unor etichete.

Tastatura a fost și ea înlocuită cu una ce încorporează tehnologia touch screen. Aceasta se poate adapta după poziția telefonului și poate suporta mai multe limbi, existând și posibilitatea utilizării unor sisteme ce au rolul de a prezice cuvintele ce urmează a fi scrise.

Durata de viață a bateriei constituie încă o problemă datorită aplicațiilor existente ce sunt mari consumatoare de energie. Se dorește depășirea acestui neajuns, existând cercetări în acest sens, după cum apare în [10], ce urmăresc realizarea unor baterii din ce în ce mai puternice sau încărcarea bateriei fără utilizarea vreunui cablu, un exemplu fiind încărcarea în timpul mișcării.

Majoritatea dispozitivelor Android oferă suport pentru USB (Universal Serial Bus) cu ajutorul căruia telefoanele pot fi conectate la un calculator. Prin cablu se poate realiza atât încărcarea bateriei, cât și accesarea memoriei SD sau a consolei Linux de pe dispozitiv.

Android poate detecta și schimba poziția ecranului, în funcție de felul în care telefonul este ținut sau rotit, acest lucru fiind posibil datorită existenței unui accelerometru care detectează aceste schimbări. Noile versiuni suportă și un giroscop, care este mult mai senzitiv decât un accelerometru, aspect ce a dus la dezvoltarea jocurilor pe această platformă.

Ultimele componente hardware sunt constituite de difuzorul și microfonul telefonului, care la fel ca și celelalte părți sunt perfecționate de la o versiune la alta. Unele dispozitive prezintă două sau trei microfoane, care combinate cu software-ul Android au abilitatea de a detecta și elimina zgomotul de fundal pentru a oferi o calitate mai bună a sunetului.

Arhitectura sistemului Android

Sistemul Android dispune de o arhitectură alcatuită din 5 niveluri ce comunică între ele:

Nucleul Linux (Linux Kernel)

Librarii de bază

Addroid Runtime

Aplicații Framework

Aplicații

Figura III.3 Arhitectura sistemului Android

Nucleul Linux (Linux Kernel)

Primul nivel al arhitecturii sistemului Android îl constituie Nucleul Linux. Acesta se află la baza arhitecturii și asigură funcționalitățile de bază ale sistemului precum gestionarea memoriei, gestionarea proceselor, rețelelor, a sistemului de fișiere și a driverelor (driver pentru afișaj, cameră, memorie Flash, etc).[11]

Figura III.4 Nucleul Linux

Librăriile de bază
Al doilea nivel reprezintă bibliotecile de bază (native) Android și constă dintr-un set de librării C/C++ ce stau la baza funcționării sistemului. Printre acestea se numără bibliotecile responsabile de stocarea și gestionarea bazelor de date (SQLite), biblioteci ce oferă suport pentru formate audio și video (Media Framework), etc.

Figura III.5 Librăriile de bază

Android Runtime

Android Runtime conține mașina virtuală Dalvik și bibliotecile Java. Mașina Virtuală Dalvik este o componentă principală a acestui nivel ce permite rularea fiecărei aplicații într-un proces propriu.

Figura III.6 Android Runtime

Aplicații Framework

Nivelul de aplicații Framework este cel cu care lucrează direct programatorul, oferind dezvoltatorilor toate funcționalitățile și resursele oferite de sistem. Acest nivel este preinstalat în Android și este organizat pe componente pentru a putea extinde și crea noi componente.

Cele mai importante componente sunt:

Gestiunea activității (Activity Manager): coordonează și controlează ciclul de viață al aplicațiilor.

Providerul de conținut (Content Provider): este întâlnit doar la arhitectura Android și oferă posibilitatea de a accesa date din alte aplicații.

Figura III.7 Aplicații Framework

Nivel Aplicații

Nivelul Aplicații reprezintă ultimul nivel din arhitectura sistemului Android și cuprinde toate aplicațiile ce folosesc interfața cu utilizatorul precum contacte, telefon, Browser, etc.

Fiecare aplicație rulează într-un proces propriu, oferind astfel securitate maximă și protecție între aplicații în cazul în care o aplicație se blochează.

Figura III.8 Nivel Aplicații

Aplicațiile sistemului android

Compinentele importante ale unei aplicații Android sunt:

Activity(Activitate)

Reprezintă o interfață cu utilizatorul,fereastră sau formular. O aplicație Android poate avea una sau mai multe activități:de exemplu o aplicație de tip Agendă poate avea o activitate pentru a gestiona contactele, o activitate pentru a gestiona întâlniri și una pentru a edita o intrare în agendă.

Fiecare Activitate are propriul sau ciclu de viață, independent de ciclul de viață al procesului asociat aplicației.

Fiecare activitate are propria stare și datele acesteia pot fi salvate sau restaurate.Activitățile pot fi pornite de aplicații diferite (dacă e permis).Are un ciclu de viata complex deoarece aplicațiile pot avea activități multiple și doar una este în prim-plan;utilizând managerul de activități, sistemul Android gestionează o stivă de activități care se găsesc în diferite stări(pornire,în execuție, întreruptă,oprită, distrusă);
În SDK, activitatea este implementată folosind o subclasă a clasei Activity care extinde clasa Context.

Ciclul de viață al unei activități descrie starea în care o activitate poate fi la un moment dat:

Running – Activitatea a fost creata (onCreate()), pornită (onStart()) și este afișată pe ecranul aparatului;în cazul în care activitatea a mai fost utilizată și aplicația a salvat starea accesteia (onSaveInstanceState()), activitatea este reluată din acel punct (onRestoreInstanceState() și on Resume()); în acceasta stare utilizatorul interacționează cu activitatea prin intermediul interfeței dispozitivului (tastatură,touchscreen, display).

Paused – Activitatea pierde prim-planul (onPause()),deoarece o altă activitate este executată, cum ar fi o fereastră de dialog, de asemenea,în cazul, în care aparatul intră în modul sleep, activitatea este oprită temporar;activitatea își poate relua execuția(onResume()) și este plasată înapoi în prim-plan.

Stopped – Activitatea nu mai este în uz și pentru că este oprită(onStop()) nu este vizibilă;pentru a fi reactivată (ea déjà există),activitatea trebuie să fie repornită(onRestart() și onStart()) și reluată(onResume());

Destroved – Activitatea este distrusă (onDestroy()) și memoria s-a eliberat,deoarece nu mai este necesară sau sistemul are nevoie de memorie suplimentară pentru rutinele proprii sau pentru alte activități;deoarece managementul memoriei este un aspect important pentru sistemul de operare Linuxal dispozitivului mobil,procesul care găzduiește o activitate întreruptă, prita sau distrusă, poate fi terminat pentru a elibera memorie pentru noi activități;doar procesele ce gestionează activități sunt protejate.

Activitatea are mai multe stări între care există tranziții clare. În ciuda faptului că lucrurile pot arăta complicat , în realitate ele sunt mult mai simple dacă ne concentrăm pe următoarele elemente.

O singură activitate poate fi în prim-plan la un moment dat. Doar sistemul gestionează stările și tranzițiile unei activități și nu programatorul (nu în mod direct, deoarece atunci când se lansează o activitate nouă se modifică implicit starea activității curente) Sistemul vă anunță atunci când activitatea își schimbă starea prin intermediul handler-elor (metode de formă onXXX()) pentru evanimentele de tip tranziție;programatorul poate adăugă propriul cod pentru supradefinirea acestor metode.

onCreate(Bundle) – este apelată când activitatea este creată folosind argumentul metodei de tip Bundle există posibilitatea să restabiliți starea activității, care a fost salvată într-o sesiune anterioară după ce activitatea a fost create, va fi pornită (onStart());

Figura III.9 Ciclul de viață al unei activitați

onStart() – apelată în cazul în care activitatea urmează să fie afișată;din acest punct, activitatea poate veni în prim plan (onResume()) sau rămâne ascunsă în fundal (onStop());

onRestoreInstanceState(Bundle) – apeleta în cazul în care activitatea este inițializată cu datele dintr-o stare anterioară, ce a fost salvată; în mod implicit, sistemul restaurează starea interfeței cu utilizatorul (starea controalelor vizuale, poziția cursorului,etc); [12]

onResume() – este apelată când activitatea este vizibilă iar utilizatorul poate interacționa cu aceasta;din această stare ,activitatea poate fi plasată în fundal, devenind întreruptă (onPause);

onRestart () – este apelată în cazul în care activitatea revine în prim-plan dintr-o stare oprită(stopped); după această activitatea este pornită (onStart()) din nou.

onPaused() – este apelată atunci când sistemul aduce în prim-plan o altă activitate; activitatea curentă este mutate în fundal și mai târziu poate fi oprită (onStop()) sau repornită și afișată (onResume()); acesta este un moment bun pentru a salva datele aplicației într-un mediu de stocare persistent (fișiere, baze de date) deoarece după această fază de activitate poate fi terminată și distrusă fără a se anunța acest lucru. [12]

onSaveInstanceState(Bundle) – este apelată pentru a salva starea curentă a activității;în mod implicit, sistemul salvează starea interfeței cu utilizatorul.

onStop() – este apelată în cazul în care activitatea nu mai este utilizată și nu mai este vizibilă deoarece o altă activitate ineractioneaza cu utilizatorul; din acest punct, activitatea poate fi repornită (onRestart()) sau distrusă (onDestroy()).

onDestroy() – este apelată în cazul în care activitatea este distrusă , iar memoria sa eliberată. Acest lucru se poate întâmpla în cazul în care sistemul necesită mai multă memorie sau dacă programatorul termină explicit activitatea apelând metoda finish() din clasa Activity.

Deoarece tranzițiile dintre straturi sunt descrise prin apeluri către diferite metode de tipul onXXX(), ciclul de viață al unei activități poate fi descris de succesiunea posibilă a acestor apeluri.

Intent(Intenție)

Reprezintă o entitate folosită pentru a descrie o operație care urmează să fie executată; Oarecum similar cu conceptual de event-handler din NET sau Java. Un mesaj asincron utilizat pentru a activa activități sau servicii. Gestionată de o instant a clasei Intent.

Service(Serviciu):

Un task care se execută în fundal, fără interacțiunea directă cu utilizatorul.

Gestionată de o instant a clasei Service.

Content provider(Furnizor sau manager de conținut).

Un API folosit pentru a gestiona datele private ale aplicației.

Un sistem de management de date ce descrie o alternativă la sistemul de fișiere, baze de date SQLite sau orice altă soluție de stocare persistentă.

Implementată de o subclasă a clasei ContentProvider.

Soluție pentru a partaja și controla (pe baza de pemisiuni) transferul de date intre aplicații( de exemplu , sistemul Android oferă un furnizor de conținut pentru datele de contact).

Broadcast receiver.

Component care răspunde la anunțuri difuzate(propagate )la nivel de sistem.

Oarecum similar cu conceptual de handler global (sau evenimente de sistem).

Implementată de o subclasă a clasei BroadcastReceiver. [12]

Descrierea aplicației

Module componente

După cum s-a prezentată și în capitolul I aplicația mobilă pe care am devoltat-o este o aplicație turistică ce am denumit-o TurIS (Turist Iași). Acesta aplicație oferă turiștilor și persoanelor din această zonă ce nu sunt familiarizate cu orașul/județul, informații utile pentru o ședere plăcută. O aplicație ideală pentru o zi în care te plictisești acasă, unde îți poți alege câteva obiective din lista celor prezentate și numai bune de vizitat.

Structura unui proiect Android în mediul de programare Android Studio poate fi observată în fereastra 1: Project, iar aici avem :

Figura IV. 1 Structura ferestrei 1.Project

Fișierul app

Acest director este compus din 2 fișiere, manifest și java.

Manifest

Acesta conține informații detaliate despre aplicație. Înainte de a putea rula aplicația, trebuie să completăm câteva informații în fișierul AndroidManifest.xml. Acest fișier, extrem de important, conține toate detaliile aplicației. Orice fel de Activity pe care îl folosim în aplicație trebuie declarat aici. Același lucru este valabil și pentru servicii și/sau receivere, dar în momentul de față ne vom concentra asupra Activity-urilor.

Fișierul e important și pentru că poate conține listă de permisii cerute de aplicație, fără de care anumite feature-uri ale telefonului, cum ar fi accesul la internet, contacte sau GPS, nu ar fi posibile. De observat este elementul de intent-filter de la Activity-ul unde avem meniul aplicației, care este Activity-ul nostru principal. Prin specificarea acelui filtru, predefinit în SDK, înștiințăm sistemul că respectivă activitate este cea care trebuie pornită atunci când utilizatorul folosește iconița din meniul de aplicații și reprezintă practic punctul de intrare în aplicația noastră.

Tabel IV.1. Cod sursă fișierul AndroidManifest.xml

Java

Conține fișierele de cod sursă Java, inclusiv codul de test. Aici găsim toate activitatiile pe care noi le folosim. În sistemul Android ferestrele se numesc activități, iar din punct de vedere al programării, acestea sunt clase care extind clasa MainActivity. Spre deosebire de alte sisteme în care un program conține mai multe ferestre simultan, în Android ecranul este mereu ocupat cu o singură fereastră. Mai mult, ferestrele sunt conectate prin simpul fapt ca o fereastră dă naștere mai multor ferestre, în cazul de față fereastra principală este MainActivity, iar restul sunt ferestrele secundare ale aplicației.

În secvența de cod ce urmează a activității MainActivity, este prezentată legarea de la meniul principal a activităților secundare, de exemplu atunci când apăsăm pe butonul cu Prezentare generală, aplicația ne va duce exact în fereastra unde găsim informații generale despre județul Iași. Tot în această secvență sunt prezentate liniile de cod care vor face ca dimensiunea background-ului să fie întinsă pe toată suprafața display-ului.

Pentru a crea o activitate, vom crea o clasă ce extinde clasa Activity. La pornire, programul o va genera, iar noi putem interacționa cu fereastra prin evenimente. Unele dintre cele mai importante evenimente sunt: onCreate și onPause.

Tabel IV.2 Cod sursă fișierul MainActivity.java

Fișierul res (resurse)

Este un director care conține resursele aplicației precum: elemente grafice, designul aplicației sau descrierea unor elemente din aplicație. Acesta este împărțit la rândul său în mai multe directoare. Aici găsim următoare fișiere: drawble, layout, mipmap, values.

Drawble

În acest fișier se găsesc resursele grafice. Aici stocăm fișiere bitmap (.png, .jpeg, .gif) sau fișiere ce definesc resurse ce pot fi destinate (drawble resource).

În cazul aplicației de față, în acest fiser se află în mare parte fișiere .jpg pe care le-am folosit la grilă zonelor turistice unde am adăugat câte o imagine a fiecărui obiectiv turistic.

Tot în acest fișier avem iconițele și anume cele cu .xml pe care le-am folosit pentru designe-ul din meniul principal, fiecare activitate în care dorim să intrăm se află câte o iconiță specifică domeniului pe care îl accesăm, dar și pentru iconița care va apărea atunci când pornim aplicația din meniul telefonului.

Layout

În layout sunt fișierele XML ce definesc desingn-ul interfeței. Layout-urile au rolul de a descrie cum sunt așezate pe ecran, componentele interfeței grafice. În cadrul acestui articol, nu vom intra în prea multe detalii. În layout-ul principal, activity_main.xml, al activității ce definește meniul principal vom folosi <LinearLayout>, care așază toate componentele din interior în ordine liniară, pe verticală sau pe orizontală. Fiecare componentă, fie că este vorba de layout-uri sau de butoane și text, poate să primească un identificator care o face accesibilă în cadrul codului Java. În plus, fiecare componentă are un set de atribute care pot modifica modul în care ele sunt afișate.

Tabel IV.3 Cod sursă activity_main.xml

De remarcat aici atributul onClick al textului, care specifică numele metodei care va fi executată atunci când utilizatorul îl atinge. De exemplu atunci când din meniul principal vom atinge imaginea pentru prezentare generală, imediat ne va trimite în activitatea cu informații ce cuprind prezentarea genearala a județului Iași.

Mipmap
În acest director avem fișierele specifice pentru a putea schimba imaginea iconiței pe care noi o găsim în meniul telefonului mobil. Pentru a scimba această imagine va trebui să folosim un convertor de dimensiune .png pentru a avea mărimile exacte a iconiței în cazul în care telefonul mobil are un display diferit, asta înseamnă mai mare sau mai mic. Această conversie se face automat de la un telefon la altul. Formatele necesare sunt urmaroarele: (hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi).

Values

În directorul Values găsim fișiere XML care conțin valori simple, cum ar fi șiruri de caractere, numere întregi și culori. Este recomandat să utilizăm convențiile de nume de fișiere pentru anumite ripuri de resurse.

Tabel IV.4 Codul sursă a culorilor din aplicație

Toate resursele din subdirectoarele directorului res/ sunt incluse în pachetul aplicației de către compilator. Pentru a facilita accesul și controlul resurselor din codul aplicației, compilatorul generează o clasă, numită R, care conține identificatori statici utilizați pentru referirea fiecărei resurse.

Mod de lucru

În acest subcapitol voi vorbi despre modul de funcționare a aplicației mobile TurIS, mai exact ceea ce trebuie să facă un utilizator al acestei aplicații pentru a o putea folosi cu succes.

După cum am spus în această aplicație găsim informații despre obiectivele turistice din zona județului Iași, sortimentate pe anumite categorii, de exemplu: Prezentare generală, Top 10 atracții, Alte atracții, Turism cultural, etc.

Primul pas ca o persoană să poate folosi aplicația TurIS, este ca acesta trebuie să deschidă fișierul APK, iar acesta să fie instalat. Un fișier APK este de fapt o arhivă ce conține toate fișierele(imagini, sunet, detalii despre aplicație, codul sursă etc.) care sunt necesare unei aplicații ca aceasta să ruleze optim în Android.

Figura IV. 2 Iconița care deschide aplicația Figura IV. 3 Prima activitate SPLASHSCHREEN

Pentru a vedea ce este în interiorul unei arhive .apk puteți dezarhiva respectivul fișier schimbându-i terminația din apk în zip.

Aplicația se poate instala doar pe sistemul de operare Android, deci această nu funcționează pe iOS, Windos sau alte sisteme. După ce această a fost instalată cu succes în telefonul utilizatorului aplicația va începe procesul de încărcare și deșchidere activități.

Prima activitate pe care o deschide aplicația este un așa numit splashscreen, ce conține logo-ul aplicației TurIS, acest splashscreen are o durată de 4 secunde după care se va trece automat la meniul principal al aplicației care este și activitatea principală aplicației.

În fereastra principală a aplicației se găsește meniul principal. Meniul principal este alcătuit dintr-o imagine de funadal de culoare albastră cu alb. În partea de sus a ferestrei se găsește o imagine reprezentativă a orașului Iași. În suprapunere se mai află și un text care conține numele aplicației și anume “TurIS”.

Aplicația este una viu colorată, sunt doar cu nuanțe deschise care fac ca meniul să fie unul atractiv și care este bine structurat. Imaginile/butoanele totodată conțin câte icon diferit specific temelor alese.

Meniul face legatura către următoarele activități:

Prezentare generală

Top 10 atracții

Alte atracții

Turism cultural

Biserici și mănăstiri

Atracții pentru copii

Facultați

Transport în comun

Informați utile

Componentele pe care le-am folosit pentru construcția meniului principal sunt: LinearLayout(vertical), ScrollView, LinearLayout(horizontal), ImageView, TextView.

Figura IV. 4 Activitate principala – Meniul aplicatiei

Tranziția dintr-o activitate în altă se face prin apăsarea uneia dintre căsuțe. Deoarece aceste căsuțe sunt defapt niște imagini trebuie făcute în așa fel încât atunci când la atingem să ne ducă exact în fereastră pe care vrem să o afișăm, de aceea vom tranforma această simplă imagine într-un buton prin linia de cod pe care o avem în activity_main.xml și anume ex: android:onClick="AlteA", iar în fișierul java va trebui să facem legătura între aceste două activități după cum se vede în următorul ex:

Tabel IV.5. Tranziția din activitatea principală în activitatea secundară

Prima activitate secundară “Prezentare generală” este o simplă fereastră unde am adăugat o imagine .jpg de fundal și un text unde avem prezentarea generală a județului Iași.

Întoarcerea la activitatea principală se face prin butonul “back” a telefonului. acesta se aplică automat de la sistemul de operare Android pe care îl deținem. Acesta se poate modifica, dar în cazul de față nu este nevoie. În oricare din ferestrele secundare întoarcere se face prin acest buton.

La activitățile: Prezentare generală, Top 10 atracții, Alte atracții, Turism cultural, Biserici și mănăstiri și Atracții pentru copii s-a folosit o altă metodă de afișare. În partea de .xml ale activităților ca și layout s-a folosit RelativLayout, iar ca mod de afișare a prezentării obiectivelor în ordine s-a folosit componenta listview, iar restul de instrucțiuni s-au scris în directoarele Java..

Figura IV. 5 Tranziția activităților

Figura IV. 6 Diagrama activitaților

Emulator GENYMOTION

Pentru testarea aplicației am folosit un alt emulator față de cel pe care îl pune la dispoziție platforma Android Studio și anume Genymotion.

Genymotion are o interfață simplă și intuitivă de pe care orice persoană poate folosi programul fără nici un fel de problemă. Acesta este una dintre cele mai bune din categoria Andorid. E un program ușor de instalat și de folosit, programul Genymotion nu consumă multe resurse de sistem și nu ocupă mult spațiu pe hard disk.

Am folosit acest emulator, iar după fiecare schimbare de cod al aplicației TurIS verificăm dacă această este corectă și desing-ul este unul potrivit. Andoid Studio găsește automat acest emulator iar după ce liniile de cod sunt compilate și nu există nicio eroare, aplicația este transformată automat într-un fișier APK și trimis în emulator după care acesta îl instalează și îl deschide cu succes.

Acest program a fost descărcat de pe situl oficial Genymotin. Versiunea descărcată este 2.12.1. Pentru a o putea folosi trebuie să te înregistrezi pe site și se va selecta opțiunea personale use.

Ce se poate face cu acest program și care sunt principalele caracteristici ale programului Genymotion:

Emularea sistemului Android pe PC

Acces din Windows la aplicațiile Android

Rulare de aplicații Android pe desktop

Diferite opțiuni de personalizare

Diferite opțiuni de configurare

Interfață simplă și intuitivă

Este o aplicație ușor de folosit

Suport în diferite limbi

Actualizare manuală

Suport instalare / dezinstalare, etc

Figura IV. 7 Genymotion emulator

Exemple de emulatatoare Android pentru PC:

Andy Android Emulator

Emulator Oficial de la Android

BlueStacks Android Emulator

Droid4X

Windroy mobile

YouWave

Xamarin Android Player

Duos-M Android Emulator

Observații, Probleme de funcționare

Pentru realizarea acestei aplicații s-a folosit laptopul personal.

Până la instalarea mediului de programare și a emulatorului Genymotion totul a decurs bine. Nu am luat în considerare cerințele pe care trebuie să le aibă laptopul pentru ca acestea să funcționeze optim. După scrierea liniilor de cod, în momentul în care se compila programul, timpul de execuție era foarte mare, asta pentru că hardul laptopului era unul de dimensiuni foarte mici, iar pentru fiecare compilare și instalare a aplicației pe emulator se pierdea foarte mult timp. În urma acestor probleme de timpi am decis să schimb hard-disk-ul laptopului și am trecut de a unul de 150 gb la un ssd(Solid-State Drive) de la Samsung 120 gb. Desigur, capacitate mică de stocare a datelor dar o viteză mult mai mare. După ce acesta a fost înlocuit compilarea și instalarea apliatiei pe emulator se petreceau la nivel de maxim 1 minut.

În directorul drawble nu am reușit să grupez fișierele .jpg pentru identificarea lor mai ușor. În momentul de față pentru a selecta o parte din fiserele pe care vreau să le folosesc într-o singură activitate, trebue să caut ceea ce am nevoie și să le selectez din toate cele existente pentru aplicație.

O problemă pe care am întâlnit-o la început de aplicație este că nu am salvat în fiecare zi pe un hard-disk extern fișierul în care lucram. Asta a făcut ca la un moment dat dintr-o eroare a sistemului de operare a laptopului sau a mediului de programare să îmi dezordoneze liniile de cod, iar la compilarea acestora interveneau foarte multe erori. Erau într-un număr așa de mare încât că și timp era mai bine să reconstruiesc aplicația de la 0 și a nu pierde timp pentru a rearanja și verifica dacă totul decurge perfect.

Pentru a ajunge la designe-ul dorit al aplicației am încercat foarte multe variante și acestea după ideei luate de pe internet de la alți dezvoltatori de aplicații mobile, atât în engleză cât și în romană. Am lucrat în paralel de pe două proiecte diferite: un proiect pentru aplicația în sine, iar al doilea pentru testele sau încercările pe care le făceam, asta ca să nu deranjez cu ceva și a nu strica proiectul care deja era unul foarte

mare, iar refacerea acestuia ar fi durat foarte mult.

Icon-ul folosit pentru pentru butonul care accesează aplicația din meniul telefonului mobil a fost încărcat pe pun site (Android Asset Studio – Launcher icon generator) unde acesta convertește automat exact la mărimile cerute de Android Studio.

Datorită faptului că timpul a fost insuficient iar managemant-ul lui nu a fost unul foarte reușit ultimile 3 activități ale aplicației nu sunt terminate, urmând ca acestea să fie reluat în viitorul aproiapt și aduse la ceea ce s-a propus. Aceste activități sunt: Faculati, Transport în comun și Informații utile. Aceste activități se deschide, deci a fost creată legatura cu activitatea principală.

“Facultăți” este activitatea care trebuie să prezinte în detaliu facultatiile orașului unde vom găsi imagini, informații despre program, adresa și metoda de înscriere în mediul universitar.

Pentru dezvoltarea acesteia se folosește aceiași metodă care s-a folosit și la aplicațiile anterioare.

“Transport” în comun este activitatea care pune la dispoziție harta traseelor autobuzelor și tramvaielor din incinta orașului Iași, se vor enumera traseele și se vor pune la dispoziție informații despre fiecare în parte cum ar fi: numărul de linie, locurile de unde acestea își încep traseele, stațiile prin care vor trece. Metoda prin care trebuie să se facă aceste modificări este una mai complicată, iar timpul necesar unei astfel de metode necesită o durată mai lungă de timp.

“Informații utile” este activitatea o activitate asemănătoare cu cea de la “Prezentare generală”. Metoda este aceiași unde doar informațiile care se vor găsi în ea sunt diferite.

În momentul în care se deschid aceste 3 ferestre vă porni un fundal de culoare albastră, care să arate ca această aplicație funcționează în parametrii normali.

Concluzii

Lucrarea de față are ca scop prezentare unei aplicații care să ilustreze nevoia de cunoaștere și de interacțiune.

Această aplicație pune utilizatorului la dispoziție informații atent selectate care sunt pentru toate categoriile de vârstă. TurIS, aplicația județului Iași, aduce turiștilor și locuitorilor acestei zone oportunitatea de a-și face trasee cu obicetive turistice pe care să le viziteze într-un timp destul de scurt și de a avea informații despre fiecare obiectiv turistic în parte. Toate acestea sunt puse la dispoziție prin sistemul de operare Android..

Aflându-ne în epoca tehnologiei unde unul dintre cele mai importante gadget-uri este telefonul mobil ce face ca majoritate din noi să utilizăm un astfel de dispozitiv. Aceste așa numite smartphone-uri le folosim pentru a ne face viața mai ușoară încercând să ne satisfacem nevoile pe mai multe ramuri. Putem să luăm legătura cu colegii de serviciu pentru a ne transmite informații utile și într-un timp destul de mic, putem lua legătura mai ușor cu membrii familiei, prietenii sau persoane cu care credem că putem face schimbul unor informații.

Limbajele de programare sunte limbaje artificiale. Acestea sunt folostie pentru a scrie secvențe de instrucțiuni care să poată fi rulate pe computer. Sunt apărute odată cu invenția computerului digital în anii 40. Primul limbaj de asamblare a apărut în ultima perioadă a anilor 50 ca răspuns la întroducerea computerelor comerciale iar primele limbaje procedurale au fost dezvoltate la sfârșitul anilor 50 și începutul anilor 60.

Java este un limbaj de programare orientat-obiect, puternic tipizat, conceput de către James Gosling la Sun Microsystems (acum filială Oracle) la începutul anilor ʼ90, fiind lansat în 1995.

Mediul de programare folosit pentru dezvoltarea aplicației „TurIS” este Android Studio. Până în luna mai a anului 2013, aplicațiile Android se puteau realiza prin intermediul mediului de dezvoltare Eclipse, împreună cu plugin-ul ADT (Android Development Tools) – dezvoltat de Google.

Android a fost proiectat pentru a fi compatibil cu o gamă largă de componente hardware. Aceasta constituie o caracteristică importantă, întrucât permite producătorilor să conceapă și să integreze elementele necesare dispozitivului Android, făcându-l atractiv atât în rândul programatorilor cât și al consumatorilor.

Sistemul Android dispune de o arhitectură alcătuită din 5 niveluri ce comunică între ele și anume: Nucleul Linux (Linux Kernel), Librării de bază, Addroid Runtime, Aplicații Framework și Aplicații.

Aplicația dezvoltată prin mediul de programare Android Studio se numește TurIS care vine de la Truist Iași. Acesta aplicație oferă turiștilor și persoanelor din această zonă ce nu sunt familiarizate cu orașul/județul, informații utile pentru o ședere plăcută. O aplicație ideeala pentru o zi în care te plictisești acasă, unde îți poți alege câteva obiective din lista celor prezentate și numai bune de vizitat.

Primul pas ca o persoană să poate folosi aplicația TurIS, este ca acesta trebuie să deschidă fișierul APK, iar acesta să fie instalat. Un fișier APK este de fapt o arhivă ce conține toate fișierele(imagini, sunet, detalii despre aplicație, codul sursă etc.) care sunt necesare unei aplicații ca aceasta să ruleze optim în Android.

Pentru testarea aplicației am folosit un alt emulator față de cel pe care îl pune la dispoziție platformă Android Studio și anume Genymotion care are o interfață simplă și intuitivă de pe care orice persoană poate folosi programul fără nici un fel de problemă.

Pe viitor îmi doresc ca această aplicație să se regăsească pe “Magazin Play”, aplicația oficială Andoid unde aceștia oferă posibilitatea să îți faci vizibilă aplicația mobilă dezvoltată de tine. Această metodă care din punct de vedere al vizibilității este cea mai bună însă nu este gratuită. Pentru ca utilizatorii care dezvoltă aplicații Andorid și vor să o facă publică costul este de 25 de $. Însă, dacă tu crezi că aplicația ta mertia a fi descărcată de către alte persoane o poți încărca, iar cei care sunt interesați o pot cumpăra online cu prețul pe care tu îl stabilești.

În concluzie, consider că platforma Android Studio pune la dispoziție instrumentele necesare pentru crearea unor aplicații care să ajute la o mai bună promovare a turismului, oferind elementele necesare pentru realizarea unui interfețe care să atragă utilizatorii și cu care aceștia să poată ușor interacționa. Ceea ce va face diferența între aplicații va fi modul cum aceste componente vor fi îmbinate și utilizate pentru îndeplinirea scopului propus.

Avantajele aplicației

Avantajele aplicației mobile pe care am construit-o sunt:

Oferă o bună promovare a zonei pentru care este constuită aplicația.

Oferă informații utile a obiectivelor turistice ajutând consumatorul sa-și facă o idee despre oraș și comunitate.

Ofera posibilitatea de a alege câteva obiective turistice și a le vizita fară a căuta foarte mult.

Interfața este una simplă și orice utilizator o poate folosi.

Adună într-un singur loc toate obicetivele turistice.

Poate fi accesată în modul offline.

Dezavantaje

Dezavantajele aplicației mobile sunt:

Update-urile nu intra pe dispozitivul utilizatorului decât dacă acesta încarca o noua versiune a acesteia.

Calitatea imaginilor este una scazută și nu poate fi accesată cu zoom in, zoom out.

Nu poate fi accesată și de catre sisteme de operare cum ar fi: iOS, Windows, etc.

Bibliografie

Aplicațiile mobile – obiecte ale proprietății intelectuale – https://www.bizlaw.md/2017/07/15/aplicatiile-mobile-obiecte-ale-proprietatii-intelectuale

Iași Wikipedia – https://ro.wikipedia.org/wiki/Ia%C8%99i

Ghid București – https://play.google.com/store/apps/details?id=com.ghid.bucuresti

Timișoara City App – https://play.google.com/store/apps/details?id=com.vecthordigital.timisoaracityapp

Ghid virtual – Sibiu Zoo – https://play.google.com/store/apps/details?id=com.ionicframework.zoo999740

Baia Mare City App – https://play.google.com/store/apps/details?id=com.tna.baiamare

LIMBAJE DE PROGRAMARE – PREZENTARE GENERALA – https://biblioteca.regielive.ro/referate/limbaje-de-programare/limbaje-de-programare-prezentare-generala-51447.html

Ștefan Tanasa, Cristian Olaru, Stefan Andrei, "Java de la 0 la expert", Polirom, 2003.

Java (limbaj de programare) – https://ro.wikipedia.org/wiki/Java_(limbaj_de_programare)#cite_note-10

Hoog, A., 2011, Android Forensics Investigation, Analysis and Mobile Security for Google Android, Elsevier, Inc., Capitolele 2-3

http://ocw.cs.pub.ro/courses/pdsd/labs/00

Android Tutorial (2) – Concepte, activitati si resurse ale unei aplicatii Android – http://www.itcsolutions.eu/2011/09/08/android-tutorial-concepte-activitati-si-resurse-ale-unei-aplicatii-android

Anexe

MainActivity

activity_main.xml

Similar Posts