FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [308830]

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” [anonimizat]

S.L.Dr.Ing Andreea BOZEȘAN

ABSOLVENT: [anonimizat]-Cristian COSMIC

TIMIȘOARA

– 2018 –

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” [anonimizat]

S.L.Dr.Ing Andreea BOZEȘAN

ABSOLVENT: [anonimizat]-Cristian COSMIC

TIMIȘOARA

– 2018 –

UNIVERSITATEA DIN ORADEA

FACULTATEA de Inginerie Electrică și Tehnologia Informației

DEPARTAMENTUL Calculatoare și tehnologia informației

TEMA _________________

Lucrare de Finalizare a studiilor a student: [anonimizat]

1). Tema lucrării de finalizare a studiilor: Sistem informatic pentru citirea presei pe telefonul mobil ____________________________________________

2). Termenul pentru predarea lucrării 1 Iunie 2018

3). Elemente inițiale pentru elaborarea lucrării de finalizare a studiilor: Documentatie aferenta (carti, [anonimizat], etc.), cunostinte de programare orientata pe obiecte și de programare a [anonimizat].

4). Conținutul lucrării de finalizare a studiilor:

Capitolul introductiv descrie amploarea pe care au luat-o aplicatiile web precum si cele pentru dispozitivele mobile care faciliteaza accesul rapid la informatii si propune o aplicatie care vine in sprijinul celor care doresc sa afle dintr-o singura privire cele mai noi stiri de actualitate. Lucrarea descrie designul aplicatiei precum si modul in care aceasta a fost realizata practic.

5). Material grafic: Materialul grafic prezentat urmarește să ofere ajutor cititorului în înțelegerea tehnologiilor utilizate in realizarea proiectului precum si pentru a vizualiza designul grafic al aplicatiei dezvoltate.

6). Locul de documentare pentru elaborarea lucrării:

Materialul de documentare este reprezentat de o [anonimizat], [anonimizat]. Soluțiile utilizate la implementare sunt de asemenea explicate.

7). Data emiterii temei: 1 Decembrie 2017

Coordonator științific

S.L. Dr. Ing. Andreea Bozeșan

REFERAT

PRIVIND LUCRAREA DE LICENȚĂ

A

ABSOLVENT: [anonimizat] / ABSOLVENT: [anonimizat] : Lucian-Cristian COSMIC

DOMENIUL Calculatoare și tehnologia informației

SPECIALIZAREA Calculatoare

PROMOȚIA 2018

1. Titlul lucrării …… Sistem informatic pentru citirea presei pe telefonul mobil…..

…..……………………………………………………………………………………………

2. Structura lucrării….…………………………………………………………………….

Lucrarea incepe prin a prezenta motivatia autorului pentru tema aleasa si expune domeniul in care se incadreaza tema aleasa. Apoi se prezinta tehnologiile utilizate pentru implementarea proiectului si dupa aceea proiectul in sine si anume o aplicatie de citire a presei pe telefonul mobil. Tema este abordată într-o [anonimizat], [anonimizat]. ……………………………………..…………………………………………………………………….

3. Aprecieri asupra conținutului lucrării de LICENȚĂ (finalizare a studiilor), mod de abordare, complexitate, actualitate, deficiențe……………………………………………… ……..Modul de abordare a tezei urmeaza linia inginereasca fireasca: identificarea unei nevoi, propunerea unei solutii, documentarea in vederea abordarii unei metode potrivite pentru a o construi, implementarea si testarea acesteia.

………………………………………………………………………………………………………………………………..

4. Aprecieri asupra lucrării (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate; modul în care absolventul a prelucrat informațiile din surse teoretice)

……Lucrarea prezinta referinte din domeniile care interferează în proiect. Sursele bibiografice au fost folosite atat la argumentarea problemei cât și la identificarea de soluții. Referintele mentionate reprezinta atat articole vizibile pe internet cat si reviste, carti si chiar cursuri din facultate. …………………………….

(se va menționa: opțional locul de documentare și modul în care absolventul a realizat cercetarea menționându-se contribuția autorului)

……………………………………………………………………………………………………………………………………

5. Concluzii (coordonatorul lucrării trebuie să aprecieze valoarea lucrării întocmite, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării lucrării, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)

…..Absolventul a dat dovada de seriozitate si interes pe tot parcursul elaborarii lucrarii si rigurozitate in redactarea lucrarii. Este de mentionat faptul ca aplicatia realizata doreste sa acopere o nevoie si a fost construita avand in vedere dorinta utilizatorului de a ajunge usor si rapid la informatiile de interes. Este de remarcat competenta absolventului de a imbina mai multe cunostinte acumulate in timpul facultatii si de a dobandi cunostinte noi pentru realizarea proiectului sau. Este de asemenea important de mentionat linia urmata in dezvoltarea acestui proiect: nevoie, solutie, implementare, testare. ……………………………………………………………………………………………………………………………..

6. Redactarea lucrării respectă ……..ca forma si continut si claritate………….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).

7. Consider că lucrarea îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din IULIE 2018 și propun acordarea notei ……10…………

Oradea,

Data

30.06.2018

Conducător științific

S.L. Dr. Ing. Andreea Bozesan

Cuprins

Cap 1. Introducere ………………………………………………………………………… 3

Cap 2. Fundamentare teoretică

2.1 iOS

2.2 Xcode

2.3 React Native

2.4 Java

2.5 MySQL

2.6 phpMyAdmin

Cap. 1. Introducere

„Primul deceniu din noul mileniu a fost marcat de ascensiunea unei tehnologii care se presupunea a fii cea mai importantă descoperire a omenirii de până acum: Internetul.” [http1]

Există o mare influență tehnologică asupra vieții noastre de zi cu zi. Dispozitivele electronice, multimedia și calculatoarele sunt lucruri cu care avem de a face în fiecare zi., mai ales Internetul devine din ce în ce mai important pentru aproape toată lumea., deoarece este unul dintre cele mai noi și mai anticipative mass-media și cu siguranță va influența viitorul a multe generații de acum încolo.

„De la întrebarea „Internetul este inovație sau distrugere?” s-a ajuns la concluzia că internetul poate avea două efecte total opuse asupra oamenilor. Pe de o parte, având acces oricând la informații, oferă un efect mixt, încurajează talentul și incintă curiozitatea și dorința de cunoaștere. Pe de altă parte, Internetul creează o dependență nesănătoasă și dezvoltă gândirea mecanică, în locul celei creatoare.” [http1]

Într-o lume dezvoltată, departe sunt zilele în care aplicațiile mobile erau considerate un lux inutil. În aceste timpuri moderne, aplicațiile afectează viața noastra nomală de zi cu zi , și îmi este greu să îmi imaginez cum ar fi fost experiențele noastre fără lumea care există în buzunarele noastre.

Eu, ca și orice alt dezvoltator de aplicații, suntem în centru acestei revoluții, și suntem mereu într-o misiune de a crea, ceva care oamenii vor găsi util în fiecare zi.

„Piața aplicațiilor mobile reprezintă un segment al pieței software ce cuprinde aplicațiile destinate telefoanelor , televizoarelor inteligente și tabletelor, aplicații distincte de cele destinate calculatoarelor personale. Deși a apărut abia acum câțiva ani, aceasta este unul dintre cele mai dinamice segmente ale pieței în prezent, înregistrând o creștere spectaculoasă în fiecare an. – Monica Dobrescu” [http2]

Aplicațiile mobile vor continua să joace un rol important în viețile noastre în viitorul apropiat, și cum accesul la telefoanele inteligente, la nivel global, este în deplină creștere, oamenii vor găsi utilizări mai inventive pentru acestea.

Tema propusă reprezintă dezvoltarea unei aplicații mobile, care sa automatizeze procesul prin care un utilizator poate să citească ziarul online. Această idee a pornit după un drum cu trenul prin țara.Pentru a face așteptarea mai plăcută m-am gândit că o aplicație mobilă care să conțină mai multe ziare de categorii diferite este cea mai bună idee.

Această aplicație vine în ajutorul tuturor oamenilor care doresc să citească presa și dețin un telefon inteligent cu sistem de operare iOS.

În urma unei căutări amănunțite, am reușit sa găsesc trei aplicații care includ articole de presă axate pe anumite categorii : Știri din Sport , Bănățenii , Știri Mondene.

Știri din Sport este o aplicație destinată tuturor cititorilor de presă sportivă din România. Prin intermediul aplicației utilizatorul are acces la cele mai bune ziare sportive. Astfel, poți citi tot ce te interesează în materie de sport într-un singur loc.

Această aplicație este disponibilă doar utilizatorilor care dețin un telefon cu sistem de operare Android.

Aplicația Bănățenii este o aplicație destinată persoanelor din Banat, ea este o aplicație care aduce cititorilor doar presa locala din Banat.

Cererea de aplicații mobile care facilitează viața oamenilor în domeniul presei, a devenit din ce în ce mai mare pe piața națională, cât și pe cea internațională. Printre cele mai utile aplicații mobile pentru presa, disponibile în magazinele virtuale Google Play, AppStore, Windows Phone sau BlackBerry World, se numără cele dedicate rețetelor culinare, acestea înregistrând de altfel și cel mai mare număr de descărcări.

“Aplicațiile pentru rețete culinare Petit Chef și Bucătăraș disponibile pe toate sistemele de operare, sunt printre cele mai populare aplicații din magazinele dedicate, deoarece rețetele sunt descrie foarte bine , conțin conținut video pentru pașii mai complicați, conțin o colecție de peste 60.000 de rețete testate în casa de utilizatori.

Aplicația Bucătăraș iți permite sa porți cu tine lista de cumpărături pentru rețeta dorita, iar o alta facilitate este posibilitatea de a seta prin alarma telefonului timpi de gătire. Alegerea rețetelor favorite și distribuirea prietenilor se face dintr-un singur click.

Consider că această aplicație este utilă, deoarece în acest fel fiecare utilizator poate citi diferite categorii ale presei din România respectiv să vizualizeze prognoza meteo dacă călătorește.

Funcționalitatea prin care un utilizator va putea adăuga un ziar la favorite îi va facilita accesul la conținutul ziarului dorit.

Prin opțiunea de prognoză meteo cititorului îi este ușor să afle direct în aplicație cate grade sunt în orașul care se află respectiv în alte orașe .

Pentru pasionații de horoscop aplicația oferă detalii zilnice în secțiunea de profil. Horoscopul este afișat în funcție de data nașterii fiecărui utilizator.

Trăim într-o lume a vitezei și a aglomerației, însă noi avem puterea de a ușura desfășurarea unor activități din viața de zi cu zi, motiv pentru care consider necesară o aplicație care să îmi permită citirea ziarului în format electronic, pentru a fi la curent cu ce se întâmplă în jurul meu.

Opțiunea de curs valutar oferă utilizatorului posibilitatea de a viziona în timp real cursul valutar zilnic oferit de Banca Națională a României. Pentru cele mai utilizate monede internaționale folosite de către români: EUR(Euro), USD(Dolar American), GBP(Lira sterlina), HUF(Forintul Unguresc).

Aplicația este gratuită iar varianta aleasa pentru monetizare este prin reclame de la Google (Admob) bannere situate în partea de jos a paginilor din aplicație.

Numărul de postări citite se construiește în funcție de câte articole a citit utilizator și este afișat în pagina de Profil a aplicației sub forma de numere respectiv steluțe care se colorează în funcție de activitate.

Cap. 2. Fundamentare teoretică

Pentru realizarea temei de proiect am apelat la resursele bibliografice ale unor discipline studiate pe parcursul facultății și în cea mai mare parte la documentația găsită online.

Bazele lucrării de față cât și bazele teoretice au fost puse de materia „Baze de date” a Prof. dr. ing. Ioan Groza și „Programare Java” a Prof. dr. ing. Carmen Holotescu.

În zilele noastre, dispozitivele devin tot mai mici și sunt mai disponibile pentru om în toate locurile posibile.

Datorită acestei evoluții rapide a tehnologiei și a nevoilor oamenilor de a avea cât mai aproape toate aplicațiile necesare, dezvoltarea acestor aplicații a luat o amploare foarte mare. Acestea, prin mărimea lor și necesarul realizării ca aplicație orientată spre cetățean reprezintă o nouă categorie de aplicații spre deosebire de cele obișnuite pentru calculatoare sau laptop-uri , sau aplicațiile web.

Aplicațiile mobile depind foarte mult de caracteristicile dispozitivului, de platforma dispozitivului și a sistemului de operare implementat pe dispozitivul mobil pe care rulează aceste aplicații. Astfel cum există o diversitate foarte mare de dispozitive mobile și aplicațiile pentru acestea trebuie sa prezinte această diversitate.

Aplicația dezvoltată de mine va necesita un telefon inteligent care sa folosească ca platformă iOS.

„În ultimul trimestru din 2017, cei de la Apple au atins un prag important – au vândut al 1.200.000.000 dispozitiv cu iOS! Deși realizarea este una importantă dupa 11 ani de la primul iPhone, în comparație cu telefoanele cu Android, iOS este mult în urmă. Asta pentru că s-au vândut peste 1.3 miliard de telefoane cu Android numai în anul 2017, conform raportului Statista.” [http3]

Un motiv în plus pentru care am ales ca aplicația mea să o dezvolt, în primă fază, ca aplicație pentru iOS a fost acela că numarul de utilizatori este în creștere și nu există la fel de multe aplicații ca și pe Android.

„Lupta dintre Android și iOS pare decisă, cel puțin în ceea ce privește cota de piață. Veniturile, situația ecosistemului și funcționalitatea celor două mari sisteme de operare rivale sunt încă subiecte ale disputelor. Dar situația cotelor de piață este atât de clară, încât nu lasă loc controverselor, indiferent de ce parte a baricadei ne aflăm: Android câștigă.

România nu face excepție de la această regulă. Conform StatCounter Android este lider detașat în țară noastră, ajungând la 80.3% cotă de piață în septembrie 2017. Numărul mare de terminale disponibile, diversitatea ofertei și, bineînțeles, plaja largă de prețuri sunt principalele motoare care pun Android-ul în mișcare și totodată principalele mijloace de diferențiere față de iOS.” [http5]

2.1 iOS

iOS-ul este un sistem de operare pentru tablete iPad , iPod, Apple TV și telefoane mobile iPhone, când a apărut inițial sistemul de operare se numea “iPhone OS” și a fost redenumit în iOS odată cu introducerea tabletelor iPad. Sistemul de operare iOS permite programatorilor să scrie cod Swift, Objective C, React Native și să controleze dispozitivul prin intermediul unor biblioteci dezvoltate de Apple. Sistemul de operare a fost lansat de Apple.

Avantaje și dezavantaje

Principalele avantaje ale sistemului de operare iOS sunt:

· Suportul pentru multitasking

· App Marketul de Apple este mult mai sigur decât cel oferit de Google

· iOS include integrarea cu Google și alte rețele de socializare.

· UI mai fluid și responsive

· Dezvoltarea aplicațiilor este mai ușoara din punct de vedere a modelelor de telefoane

· Ideal pentru business și jocuri

· Genereaza mai putină căldura ca și un Android

Dezavantajele platformei nefiind flexibil și este suportat doar de telefoanele creeate de Apple,

timpul de verificare a aplicațiilor până a ajunge pe store este de 1-7 zile care este mult mai mare decât la Android. Majoritatea aplicațiilor nu sunt gratuite și nu suporta widgeturi.

Un alt dezavantaj îl reprezintă utilizarea sistemului. Pentru un utilizator mai puțin inițiat accesarea tuturor facilităților pe care le oferă Android poate constitui o adevărată provocare uneori.

În figura 2.1 se poate observa arhitectura sistemului de operarea iOS și componentele principale.

2.1 Arhitectura sistemului de operare IOS

2.1.1. Core OS Layer:

Core OS layer conține cele mai de baza caracteristici peste care sunt construite majoritatea tehnologiilor

Core Bluetooth Framework.

Accelerate Framework.

External Accessory Framework.

Security Services framework.

Local Authentication framework.

2.1.2. Core Services Layer

Cele mai importante Frameworks:

Address book framework – Oferă acces programatic utilizatorului la baza de date care conține contactele.

Cloud Kit framework – Oferă o modalitate de transfer a datelor între aplicație și iCloud.

Core data Framework – Tehnologia de management al ” Model View Controller” .

Core Foundation framework – Interfețe care oferă management fundamental caracteristicilor pentru aplicații iOS.

Core Location framework –Oferă managementul locației în aplicație.

Core Motion Framework – Acces la toate mișcările dispozitivului.

Foundation Framework – Swiftul acoperă majoritatea caracteristicilor găsite în Core Foundation framework.

Healthkit framework – Framework nou pentru modificarea informațiilor legate de sanatatea utilizatorului.

Homekit framework – Framework pentru controlul dispozitivelor conectate.

Social framework – Interfața simplă pentru a obține conturile social media a utilizatorului .

StoreKit framework – Oferă suport pentru cumpărături în aplicație.

2.1.3. Media Layer: Grafică, Audio și Video.

Graphics Framework:

UIKit Graphics – Oferă suport la un nivel înalt pentru designul imaginilor și animații pentru ecrane.

Core Graphics framework – Motorul de desen 2d.

Core Animation – Optimizează animațile aplicației.

Core Images – Oferă suport pentru manipularea imaginilor nondestructive.

OpenGl ES and GLKit – Randează imagini 2D , 3D

Audio Framework:

Media Player Framework – Oferă suport utilizatorului de redare a fișierelor audio în media center , iTunes.

AV Foundation – O interfața pentru a reda, înregistra conținut audio și video.

OpenAL – Tehnologie standard de furnizare audio.

Video Framework

AV Kit – Oferă o colecție de interfețe simple folosite la prezentarea conținutului video.

AV Foundation – Oferă o colecție de interfețe avansate folosite la prezentarea, înregistrarea conținutului video.

Cocoa Touch Layer

EventKit framework – Oferă posibilitatea view controllerului de a afișa interfețe standard de sistem ale calendarului.

GameKit Framework – Suport pentru “Game Center” care oferă posibilitate de a distribuii informații despre jocuri.

iAd Framework – Permite afișarea de reclame de tip banner.

MapKit Framework – Hartă scrollabilă pentru utilizator

PushKitFramework – Notificări Push de sistem

Twitter Framework – UI pentru generare de Tweets nativ.

UIKit Framework – Oferă infrastructura vitală pentru aplicații cu multă grafică.

2.2 Formatul unui fișier .IPA

În figura 2.2 este prezentată consistența unui fișier IPA. Un fișier IPA este folosit pentru distribuirea unei aplicații pe un sistem iOS. Fiecare fișier .IPA include o arhitectura ARM. Formatul este similar cu cel al unui fișier .ZIP (arhiva ZIP cu meta-informatii)

2.2 Xcode

“IOS este un sistem de operare pentru toate dispozitivele create de către Apple. iOS este utilizat de iPhone, iPad, iPod Touch și Apple TV.

iOS este foarte bine cunoscut pentru folosirea gesturilor de glisare, parcurgere de liste și atingeri ale iPhonelui.“[Http4]

Xcode este un mediu de dezvoltare (IDE), pentru creare de aplicații iPad, iPod, iPhone și Mac.Este folosit și ca un text editor pentru diferite limbaje : Swift, Objective-C, C/C++.

Xcode dispune de instrumente de proiectare foarte puternice. Fiind capabil de a afișa instantaneu interfața creată în diferite limbi, orientări, dimensiuni. Mai mult, susține,de asemenea, atributele de timp de proiectare și vizualizarea UI nu se limitează la ecranul de proiectare, ci este de asemenea arătat în simulator, după cum se poate observa și în figura

2.2.1

Figura 2.2.1. Exemplu de simulator de iPhone

2.3 React Native

React Native este un framework pentru construirea aplicațiilor mobile folosind JavaScript și librăria de React.Se pot construi aplicații pentru ambele platforme ,IOS și Android, folosind limbajul.

Ideea limbajului de a scrie o singură dată codul și lansat pe ambele platforme pentru a nu lucra de doua ori.

Cu React Native avem aproape toate conceptele din biblioteca de React, inclusiv componente, stări, metode și cicluri de viață.

Avantajele limbajului :

Primul și poate unul dintre cele mai bune avantaje este capacitatea de dezvoltare pe platformă multiplă.

Se dezvolta aplicația o singură dată și se poate implementa în Android, IOS, WindowsPhone, Blackberry etc.

Unificarea codului reduce considerabil costurile de dezvoltare a dezvoltatoruli specializat pentru a dezvolta aplicația folosind diferite limbaje de programare.

Pentru React Native e nevoie de cunoștințe JavaScript pentru a începe dezvoltarea conceptelor de bază și a înțelege în totalitate cum se dezvoltă o aplicație mobilă.

Reduce considerabil numărul de dezvoltatori responsabili de aplicație.

Ușor de programat.

Rezultate vizibile foarte rapid, nu necesita recompilarea codului la fiecare modificare.

Open source , nu necesita plată pentru folosire.

2.4 MySQL

Puterea unui sistem de baze de date intră în acțiune atunci când informațiile care trebuie gestionate devin voluminoase sau complexe, astfel încât înregistrările devin prea dificil de manipulat manual. Bazele de date pot fi folosite, desigur, de către mari corporații, care prelucrează milioane de tranzacții zil­nic. Dar chiar și operațiile la scară mică, care necesită o singură persoană pentru a întreține informații de interes personal, pot necesita o bază de date.

Sistemele de gestiune a bazelor de date sunt frecvent utilizate pentru executarea unor ope­rații cum sunt cele pentru care se folosesc. O bază de date este un fișier de mari dimensiuni din anumite puncte de vedere, dar un fișier cu un sistem de afișare încorporat. Păstrarea prin metode electronice a înregistrărilor pre­zintă câteva avantaje importante față de păstrarea manuală a înregistrărilor: timp redus de afișare a înregistrării, timp redus de regăsire a înregistrării, ordine de regăsire flexibilă, format flexibil al datelor de ieșire, acces de la distanță la înregistrări și transmiterea electronică a acestora.

MySQL este clasificat ca sistem de gestiune a bazelor de date relaționale (SGBDR) adică :

· Baza de date constituie depozitul pentru infor­mațiile care doresc a fi stocate , structurate într-un mod simplu, obișnuit;

· Colecția de date dintr-o bază de date este organizată în tabele;

· Fiecare tabel este organizat în rânduri și coloane;

· Fiecare rând dintr-un tabel este considerat o înregistrare, înregistrările pot conține mai multe componente de informație; fiecare coloană dintr-un tabel corespunde uneia din aceste componente.

Pentru a comunica cu MySQL, se folosește un limbaj denumit SQL (Structured Query Language – limbaj de interogare structurat). SQL este în prezent limbajul standard pen­tru baze de date și este acceptat de toate sistemele importante de baze de date. SQL, include numeroase categorii diferite de instrucțiuni, toate fiind concepute pentru a vă permite să interacționați cu baza dumneavoastră de date în moduri interesante și utile.

„Când se foloseste MySQL, se utilizează două programe, deoarece MySQL operează folosind o arhitectură client/server:

· Serverul de baze de date este un program localizat în calculatorul unde sunt stocate datele dumneavoastră. Acesta ascultă cererile clienților care sosesc prin rețea și obțin acces la conținutul bazei de date în funcție de aceste cereri, pentru a furniza clienților informațiile pe care le solicită.

· Clienții sunt programe care se conectează la serverul de baze de date și emit interogări pentru a îi indica acestuia informațiile pe care le doresc.

Arhitectura client/server din MySQL are anumite avantaje:

· Serverul asigură controlul concurenței, pentru ca doi utilizatori să nu poată modifica aceeași înregistrare simultan. Toate cererile clienților trec prin server, deci serverul determină clientul care execută o oarecare operație și când o execută. Dacă mai mulți clienți doresc simultan accesul la același tabel, ei nu sunt obligați să se găsească și să negocieze unii cu alții. Ei își trimit cererile la server și îl lasă pe acesta să se ocupe de determinarea ordinii în care vor fi onorate cererile.

· Nu trebuie să se deschidă sesiunea de lucru la calculatorul unde este conectată baza de date. MySQL „știe" să lucreze prin Internet, deci puteți rula un program client de oriunde vă aflați, iar clientul se poate conecta la server prin rețea. Distanța nu contează; puteți obține acces la server din orice parte a lumii.”[http7]

MySQL include un sistem flexibil de securitate, deci se poate permite accesul numai anumitor persoanelor să beneficieze de el. De asemenea, se poate asigura că aceste persoane pot face numai ceea ce trebuie să facă. Se pot stabili privilegiile în con­secință. Dacă se dorește rularea unui sistem autonom, se stabilesc privilegiile de acces astfel încât clienții să se poată conecta numai de la gazda pe care rulează serverul.

2.5 phpMyAdmin

phpMyAdmin este un instrument software gratuit scris în PHP, destinat să se ocupe de administarea MySQL pe Web. phpMyAdmin suportă o gamă largă de operațiuni MySQL, MariaDB și Drizzle. Cele mai utilizate operațiuni precum gestionarea bazelor de dare, tabele, coloane, relații, indici, utilizatori, permisiuni, etc pot fi efectuate fie prin intermediul interfeței de utilizator, fie prin execuția directă a unei comenzi SQL.

Caracteristici principale:

· Interfață web intuitivă

· Suport pentru cele mai multe caracteristici MySQL: căutare și stergere de baze de date, tabele, vizualizări, câmpuri și indexuri; creare, copiere, ștergere, redenumire și modificarea bazelor de date; gestionarea utilizatorilor MySQL și preferințele acestora; gestionarea procedurilor și triggerelor stocate, etc

· Importă date din CSV și SQL

· Exportă date în diverse formate

· Căutarea la nivel global într-o bază de date

· Crearea de grafice PDF

· Și multe altele.

Cap. 3. Specificațiile aplicației

3.1 Descrierea aplicației

Interacțiunea cu utilizatorul va fi una simplă, acesta are nevoie de un cont Faceboook pentru logare . Utilizatorul va fi nevoit să se logheze în aplicație pentru a putea accesa functionalitățiile principale ale aplicației.

Acesta va fi primul contact al utilizatorului cu aplicația, urmând ca la o a doua interacțiune,acestuia ii este prezentată o listă cu ziarele disponibile dintr-o bază de date Pagina utilizatorului va conține următoarele funcționalități:

vizualizarea listei care conține ziare,

adăugarea unui sau mai multor ziare ca favorite,

căutare în lista de ziare,

listă cu articole de presă,

pagina profil,

număr de postări citite

curs valutar

horoscop

opțiune pentru prognoza meteo

monetizare prin reclame (Admob)

Pentru a putea accesa aplicația CosmicNews este necesar ca utilizatorul să dețină un telefon inteligent care sa aiba ca sistem de operare iOS. Majoritatea utilizatorilor dețin cont social Facebook, care este necesar pentru logare în aplicația CosmicNews ca utilizarea aplicației sa fie mai ușor de utilizat. Un plus adus de aplicația propusă este acela că datele oferite de către utilizator vor fi minime și confidențiale, acestea vor fi păstrate în bază de date a telefonului.

Securitatea datelor este un punct forte pentru orice aplicație, deoarece telefonul personal poate să conțină informații personale. Pentru asigurarea securității voi introduce opțiunea de logare a unui utilizator.

În figura 3.1 este reprezentat modul de funcționare al aplicației CosmicNews. Utilizatorul acestei aplicații trebuie să dețină un telefon cu sistem de operare iOS, iar instalarea se va face fie manual, folosind IPA-ul generat de IOS , fie automat de îndată ce aplicația va fi lansată în magazinul oficial pentru aplicații IOS, App Store.

Figura 3.1. Modul de funcționare al aplicației

3.2 Funcțiile sistemului

Administratorul

Interacționează cu baza de date

Acesta va avea acces la baza de date din spatele aplicației, va putea vizualiza tabelele cu ziarele. Administratorul va putea efectua modificări asupra tabelelor.

Utilizatorul

Logarea cu social media a utilizatorului

Utilizatorul va trebui să facă login cu Facebook, va trebui să introducă un nume de utilizator și parola acestea au fost stabilite în momentul când acesta s-a înregistrat și și-a creat cont de utilizator pe social media Facebook. Atunci când utilizatorul folosește aplicația pe telefonul personal, pentru ușurarea procesului de intrare în contul personal, la deschiderea aplicației, datele necesare pentru autentificare vor deja încărcate.

Vizualizarea listei de ziare

Prin intermediul unei liste , utilizatorul va putea vizualiza toate ziarele disponibile în aplicație.

Pentru găsirea mai ușoara a ziarului dorit , exista funcționalitatea de căutare și de adăugare la favorite.

Vizualizarea ziarului

Prin intermediul unei liste , utilizatorul va putea vizualiza ultimele 10 articolele publicate de către ziarul ales.Articolul conține o scurta descriere și se poate vizualiza în totalitate într-o pagină diferită.

Vizualizarea profilului

În secțiune de profil a aplicației utilizatorului îi este prezentat sub forma unor stele câte articole a citit. Un horoscop în funcție de data nașterii obținuta la logare cu Facebook.

3.3 Interfața cu utilizatorul

Interfața cu utilizatorul reprezintă modalitatea prin care un utilizator “comunică” cu programul. Cu ajutorul interfeței grafice utilizatorul nu numai că poate vedea ce este afișat pe ecran ci și mecanismele de comunicare.

Logare

Prima fereastră a aplicației are ca scop partea de login a userilor. Propunerea de implementare se poate observa în figura 3.3.1.

Pentru logare am folosit SDK’ul oferit de Facebook solicitând utilizatorilor permisiunea pentru folosirea numelui, data nașterii și poza de profil.

Figura 3.3.1 Pagina de logare utilizator

B. Lista de ziare

“NEWSPAPER” este ecranul principal al aplicației. Din acest ecran se pot realiza următoarele operații (figura 3.3.2)

· Vizualizarea tuturor ziarelor

· Vizualizarea barei de căutare

· Vizualizarea tuturor ziarelor adăugate la favorite

Printr-un singur click, efectuat pe oricare dintre opțiuni, se va deschide câte o pagină nouă sau o acțiune care conține informații specifice fiecărei funcționalități.

Ziarele, pozele și numele sunt obținute printr-o cerere Rest API care apelează un protocol HTTP de GET din baza de date.

Figura 3.3.2 Prima fereastră a utilizatorului

C. Lista de articole presă

Lista de articole presă este ecranul principal al ziarului selectat. Din acest ecran se pot realiza următoarele operațiuni (figura 3.3.3)

Buton în header pentru a vizualiza meteo

Opțiune de curs valutar

Vizualizarea articolelor ziarului

Reclama furnizata de AdMob pentru monetizare

Bara de navigare intre listă și profil

Figura 3.3.3 Lista articolelor văzută de utilizator

Butonul de vizualizare a ecranului “Meteo”

Butonul este amplasat în partea dreapta a headerului, acesta deschide ecranul de meteo în care se poate vizualiza prognoza meteo în orașele, satele din lume.

Am setat ca și oraș implicit Timișoara dar folosind opțiunea de căutare se afla temperatura oricărei locații.(figura 3.3.4)

Figura 3.3.4 ecran prognoză meteo

Aici putem afla starea vremii (cer fără nori, ceață , vânt. etc) , răsăritul și apusul soarelui în ore, temperatura.

Imaginea de fundal se schimbă în funcție de temperatură, dacă temperatura e negativă se afișează un fulg de nea, dacă e pozitivă se poate vedea în figura 3.3.4.

2. Opțiunea de curs valutar

Opțiunea de curs valutar oferă utilizatorului posibilitatea de a viziona în timp real cursul valutar zilnic oferit de Banca Națională a României. Pentru cele mai utilizate monede internaționale folosite de către români: EUR(Euro), USD(Dolar American), GBP(Lira sterlina), HUF(Forintul Unguresc).

Informația este obținuta prin apel HTTP către un RESTful API care oferă valoarea monedelor sub formă de JSON în raport cu Euro iar printr-o formula matematica aplicația afișează rezultatul în funcție de RON.

3. Vizualizarea articolelor ziarului

Articolele sunt afișate sub formă de lista. Fiecare articol conține o imagine, un titlu , o scurtă descriere a articolului și data realizării acestuia.

Fiecare articol din listă deschide postarea propriuzisă care este prezentată utilizatorului într-un web view care conține și o reclama în josul paginii. (figura 3.3.5)

Figura 3.3.5 ecran articol presă

4. Reclamă furnizată de AdMob pentru monetizare

AdMob este platforma de reclame de la Google pentru promovare , monetizarea aplicațiilor mobile.Platformă similară este MoPub, ambele dau șansa dezvoltatorilor să își promoveze aplicațiile folosind reclame.

Am ales platforma AdMob pentru faptul că interfața aplicației de creare de reclame este mai prietenoasă cu utilizatorul (figura 3.3.6) iar reclamele sunt plătite mai bine ca și Mopub.

Aplicația Cosmic News conține 4 locații pentru reclame de dimensiuni mici ,

Lista de articole , articolul deschis , meteo și profil.

Figura 3.3.6 interfața de creare a reclamelor în AdMob

5. Bara de navigare intre listă și profil.

O navigare simpla oferită de React Native care conține 2 butoane , unul pentru lista de articole iar celălalt pentru pagina de profil.

Ambele butoane conțin cate o poza și un nume pentru ai fi mai ușor utilizatorului să o folosească.Poza folosita pentru profil este luată de pe Facebook, fiecare utilizator va avea o poza diferita pentru bara de navigare.

D. Pagina de profil a utilizatorului.

Pagina de profil este compusa din (figura 3.3.7) :

Poza profil și nume

Număr de postări citite în aplicație

Rating cu steluțe în funcție de utilizare

Horoscop

Figura 3.3.7 ecran profil

Poza de profil și numele utilizatorului

Poza de profil și numele utilizatorului sunt preluate de pe Facebook în momentul în care utilizatorul face login și începe folosirea aplicației Cosmic News.Datele sunt preluate din SDK’ul oferit de Facebook pentru aplicații mobile.

Datele sunt stocate în memoria telefonului într-un obiect numit user care conține aceste date pe tot parcursul deținerii aplicației pe telefonul mobil. Am ales acestă metodă de stocare pe telefon deoarece este mai rapid sa citești datele de pe telefon decât sa apelezi API’ul și să iei datele de pe server. (figura 3.3.8)

Figura 3.3.8 Imaginea și numele utilizatorului

2. Număr de postări citite în aplicație

Este implementat un contor care înregistrează în memoria telefonului numărul de articole deschise de către utilizator. Contorul se resetează doar în momentul în care se dezinstalează aplicația și se pierd datele ținute în memorie.La fiecare postare deschisa contorul curent se incrementează cu unu .(figura 3.3.9)

Figura 3.3.9 Contor articole citite

3. Rating cu steluțe în funcție de utilizare

Ratingul este implementat folosind doua tipuri de imagini, imagine steluța goală respectiv imagine steluța plină. Steluțele se colorează în funcție de numărul de postări citite. Steluțele se colorează din zece în zece postări citite.Prin această parte grafică îi este utilizatorului mai ușor sa vadă activitatea postărilor citite.(figura 3.3.10)

Figura 3.3.10 Rating articole citite

4.Horoscop

Horoscopul este creat din data nașterii utilizatorului obținuta din SDK’ul oferit de Facebook în momentul în care utilizatorul face login și începe folosirea aplicației. La fel ca și numele respectiv poza de profil și data nașterii este stocată pe telefonul mobil. Icoanele zodiacului sunt incluse în build. În funcție de data de naștere a utilizatorului exista o logica care verifica perioada în care din cele doisprezece semne ale zodicalui se află acesta și aplicația încărca imaginea respectiva. Pentru previziunea astrologica este accesat un API extern folosind aceeași logica ca și la imagine. Rest API’ul folosit este oferit de “http://sandipbgt.com/” și se apelează zilnic. Previziunile sunt scrise de către astrologul “Kelli Fox, The

Astrologer”.

Din obiectul obținut după apelul la server se afișează următoarele trei câmpuri.

Numele zodiei , starea și reviziunea astrologica (figura 3.3.11)

Figura 3.3.11 Horoscopul

3.4 Structuri de baze de date și fișiere

Pentru o mai bună organizare a informațiilor din aplicație, am ales să folosesc baze de date.

Baza de date conține 1 tabelă cu toate informațiile necesare pentru alcătuirea listei de ziare din aplicație.

În tabelă sunt salvate:

– Id unic- int(11) și care se auto-incrementează, folosit pentru a identifica utilizatorul și pentru a realiza legăturile între tabele.

– Nume- precizeză numele ziarului.

– img_url- Url spre imaginea ziarului afișată în listă.

– rss_url- Url spre rss’ul ziarului de unde se iau articolele.

3.5 Comunicarea cu alte sisteme

Pentru gestionarea unor informații de dimensiuni mari, într-o manieră sigură și eficientă, aplicația Cosmic News folosește o bază de date MySQL.

„ MySQL este un sistem de gestiune a bazelor de date relațional, produs de compania suedeză MySQL AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD open – source (gratis) la ora actuală, fiind o componentă cheie a stivei LAMP (Linux, Apache, MySQL, PHP).”

Deși este folosit foarte des împreună cu limbajul de programare PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip specific API. ” [http7]

Cap 4. Proiectarea în detaliu

Întreaga aplicație este formată din ecrane. Ferestrele la rândul lor sunt formate din elemente de control „widgets” care permit interacțiunea cu utilizatorul. Interacțiunea se realizează prin intermediul tastaturii dispozitivului.

Ca și limbaj de programare pentru realizarea interfeței cu utilizatorul am folosit React Native.

Caracteristicile limbajului React native sunt :

Acest limbaj este cu sursă deschisă ( Open Source ) pentru toți dezvoltatorii, limbajul este oferit de Facebook.

Limbajul este o formă evoluată de React, adaptat pentru construcția aplicațiilor mobile.

Folosește JavaScript ca limbaj de programare, orientat pe obiecte. Conține o multitudine de clase complex îmbibliotecate în JavaScript.

Limbajul este mai simplificat în raport cu C++: nu permite moștenirea multiplă, nu operează cu pointeri, ci cu referințe, asupra cărora se pot efectua doar operații de atribuire.

Are UI nativ pentru fiecare platforma, componentele native sunt (iOS / Android) îmbibliotecate în React Native.

Ofera UI ca functie.

Conexiunea între API și Aplicație este bazata pe FLUX pattern. (figura 4.1.1)

Figura 4.1.1 FLUX pattern

UI este încapsulat în componente separate pentru a oferi stări de randare.

Este foarte important ca Fluxul de date să fie organizat în mod corect. Setările interacțiunilor între componente este necesară pentru a structura codul.

Este un limbaj rapid ,”după anumite teste făcute de cei de la medium.com între o aplicație nativă și aceeași aplicație în React Native reiese că acest limbaj este rapid” [http8]

4.1 Descrierea componentelor

În majoritatea limbajelor de programare orientate pe obiecte este prevăzut un mecanism de modularizare situat deasupra claselor, numit în JavaScript pachete (packages).

Un pachet conține, de regulă, un grup de clase înrudite, dar mai pot apărea ca membrii ai unui pachet interfețe, alte (sub) pachete, fișiere folosite de clasele pachetului ( de exemplu, fișiere cu imagini).

Pachetele pot fi distribuite independent și joacă un rol similar bibliotecilor de funcții din limbajele de non- obiectuale: membrii unui pachet se pot utiliza pentru a simplifica dezvoltarea de aplicații, punând la dispoziție funcționalitate specifică unui domeniu, de exemplu pentru realizarea de interfețe grafice.

Aplicația Cosmic News este compusă din pachetele principale și încă alte 4 pachete: Pachetul moment conține un fișier ajutător pentru traducerea timpului ”Time Stamp”, pe care l-am folosit la afișarea datei în articole.

Pachetul react-native-admob conține clasa ajutătoare pentru afișarea reclamelor din partea de jos a ecranelor.

Clasele ajutătoare folosite pentru realizarea loginului respectiv obținerea informațiilor despre utilizator sunt grupare în pachetul react-native-fbsdk. În acest pachet se va regăsi modulul de login oferit de Facebook.

Pachetul react-native-router-flux conține clasele ajutătoare pentru navigarea folosita în aplicație intre ecrane și module.

Toate clasele folosite pentru realizarea interfeței cu utilizatorului, clasele necesare pentru fiecare acțiune și fragmentele se afla în pachetele principale react, react-native, react-redux.

4.2 Structura bazei de date

În primul rând pentru a stoca toate datele despre ziare, cât și resursele grafice disponibile în aplicație am creat o baza de date cu o tabelă.

„O bază de date este practic o colecție (mulțime, set) structurată/ organizată de informații (date, și cod), stocată pe un sistem informatic, permițând gestionarea rapidă a unui volum mare de date. O bază de date relațională este o bază de date (colecție structurată – organizată de informații ) având informația structurată sub forma unui set/colecții de tabele relaționate (legate logic, respectiv și/sau fizic între ele)”. [curs1]

„Acest mod de structurare a datelor, bazat pe legături între date, permite eliminarea redundanței, astfel încât stocarea și, mai ales, modificarea unei informații se face într-un singur loc, iar, din punct de vedere funcțional, această structură permite regăsirea, filtrarea, ordonarea și agregarea datelor, în mod natural.” [http9]

În figura 4.2.1 se poate observa modul în care se realizează comunicare dintre baza de date, API și telefonul mobil.

Cheile reprezintă o cale de a identifica fiecare înregistrare în parte. Baza de date are mai multe tabele care folosesc o cheie primară sau o cheie externă (foreign key) pentru legătura între înregistrări.

Relațiile reprezintă asocierile dintre tabelele bazei de date relaționale. Deși fiecare tabel ralațional poate exista independent, esența bazei de date este tocmai stocarea informațiilor între care există legături. Există 3 astfel de tipuri de relatii intr-o bază de date relațională:

· Relație de tipul 1-1 (una-la-una) – care presupune că unei înregistrări din tabela A îi corespunde o singură înregistrare din tabela B

· Relație 1-n (una-la-mai-multe) – care presupune că unei înregistrări din tabela A îi corespund mai multe înregistrări din tabela B. Astfel de relații se mai numesc și relații ierarhice

· Relație n-n ( mai-multe-la-mai-multe ) – care presupune că unei înregistrări din tabela A îi corespund mai multe înregistrări din tabela B și unei înregistrări din tabela B îi corespund mai multe înregistrări din tabela A

Toate relațiile sunt obligatorii în partea „unu” și opționale în partea „mai mulți”, aceasta fiind cea mai frecvent folosită formă de relație.

Un tabel poate avea o singură cheie primară. Totuși, o cheie primară poate fi compusă din mai multe coloane, dacă aceasta este modul de formare a unei chei unice. Dacă o cheie primară este folosită într-un alt tabel pentru stabilirea unei relații, poartă numele de cheie externă (foreign key).

Pentru ca baza de date să funcționeze cât mai corect posibil, câmpurilor se adaugă restricții. O restricție este o regulă specificată , având rolul de a limita într-un mod oarecare domeniul de valori permise pentru obiectul respectiv.

Principalul avantaj al restricțiilor este aceea că odată specificate, ele sunt impuse automat de sistemul DBMS și nu pot fi ocolite decât dacă o persoană autorizată le dezactivează sau le elimină. Astfel de restricții folosite în crearea tabelelor bazei de date KangooJumps sunt:

· Restricția NOT NULL folosită pentru a împiedica folosirea valorilor nule

· Restricția cheie primară folosită pentru a garanta ca valorile din acest câmp sunt întotdeauna unice în întreg tabelul

· Restricția de unicitate (unique) definită pe o coloană sau un set de coloane care trebuie să conțină valori unice în cadrul tabelului

Codul SQL cu care am creat baza de date:

CREATE DATABASE resourcesDB;

Pentru crearea tabelei “resources”(figura 4.2.2) am folosit următorul cod:

CREATE TABLE resources(

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(255) NOT NULL,

`img_url` varchar(255) DEFAULT NULL,

`rss_url` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

Figura 4.2.2. Structura tabelei “resources”

Cap 5. Utilizarea sistemului

Obiectivul acestui ghid este de a furniza utilizatorului, instrucțiunile referitoare la modul de utilizare a aplicației Cosmic News și a modului de instalare.

5.1 Instalarea aplicației

Aplicația Cosmic News poate fi instalata pe un telefon iOS prin 2 metode:

· Manual, folosind IPA generat de Xcode

· Automat, accesând magazinul online de aplicații

5.2 Utilizarea aplicației

Secțiunea utilizatorului:

Pentru a porni aplicația, urmăriți pașii:

Pas 1:

După ce aplicația a fost instalată, prin una din cele două metode amintite mai sus, în meniul telefonului va apărea icoana corespunzătoare aplicației Cosmic News (Figura 5.2.1).

Figura 5.2.1

Prin apăsarea icoanei din figura 5.2.1 aplicația începe să ruleze pe telefonul mobil, după ce a pornit se încarcă o imagine numită “Splash” și se randează primul ecran al aplicației. Primul ecran al aplicației este cel de login figura 5.2.2

Figura 5.2.2

Acest ecran conține urmatoarea metod de interacțiune cu utilizatoru, un buton care deschide o pagina web de Facebook pentru logarea propriuzisă folosind credențialele pentru contul de social media. Figura 5.2.3

Figura 5.2.3

Dacă datele introduse nu sunt corecte sau dacă lipsesc date, pe ecranul telefonului vor apărea mesaje prin care se semnalează eroarea.

Figura 5.2.4

În figura 5.2.4 este reprezentată lista de ziare disponibile utilizatoruli pentru aplicația Cosmic News.

Acest ecran conține următoarele metode de interacținue cu utilizatorul:

“Search” – permite utilizatorului sa caute în lista de ziare.

“Favorites” – permite utilizatorului să adauge în lista de favorite care se randează în momentul care este adăugat primul element în listă.

“Cardul ziarului” – permite utilizatorului să acceseze postările și alte facilități oferite de aplicație.

Pasul 2:

Odată cu apăsarea unui card aplicația navighează spre prima pagină a unui ziar. (figura 5.2.5)

Următoarele elemente se regăsesc în figura 5.2.6

În partea stângă a ecranului veți găsi un buton de “Back” pentru a te întoarce la lista de ziare.

În partea dreaptă a ecranului veți găsi un buton de “Weather” care deschide ecranul de prognoză meteo.

Sub headerul aplicației se afla un widget de curs valutar.

Lista de articole postate de ziarul ales.

Reclama admob.

Bara pentru navigare între listă de articole și profil.

Figura 5.2.6

Pasul 3:

La apăsarea butonului de “Weather” trecem în ecranul de prognoză meteo care conține o bară de căutare a localității dorite.

În partea de sus este afișat numele orașului căutat, țara afișată sub formă de cod ISO și o imagine care se schimbă în funcție de gradele celsius.

În partea de jos a ecranului sunt prezentate starea cerului , răsăritul respectiv apusul soarelui, temperatura în grade celsius.

Reclamă pentru monetizare.

Figura 5.2.7

Pasul 4:

Apăsând pe unul din cardurile de articol care conține imaginea, descrierea și data de publicare a articolului (figura 5.2.6), aplicația deschide un ecran nou cu articolul complet oferit de ziarul selectat. În partea de jos a aplicației o reclamă pentru monetizare.(figura 5.2.8)

Figura 5.2.8

Pasul 6:

Din bara de navigare se ajunge la profilul utilizatorului care conține date despre contul cu care s-a făcut login în aplicație. Contorul care înregistrează câte articole au fost deschide , ratingul cu steluțe pentru un impact vizual , un horoscop pentru zodia utilizatorului și o reclama pentru monetizare.(figura 5.2.9)

Figura 5.2.9

5.3 Instrucțiuni speciale

Aceasta este prima versiune beta a aplicației. Vă recomandăm ca orice eroare întâlnită să o fotografiați și să o trimiteți la adresele de email: cristian.cosmic@gmail.com și cosmicnews@gmail.com iar noi vom încerca să remediem situația. De asemenea dacă aveți idei pentru îmbunătățirea aplicației, va rugăm să le comunicați la emailurile de mai sus.

Cap 6. Realizarea, punerea în funcțiune și rezultate experimentale

6.1 Realizarea programului

„Ca orice produs fabricat complex, palicația a fost realizată urmând un proces. Un proces de dezvoltare a programelor se bazează pe o formalizare a activităților specifice, la care ne-am referit. Scopul formalizării este obținerea unui ansamblu de mecanisme care, în cazul în care sunt aplicate sistematic permit obținerea într-un mod repetitiv și fiabil de produse software de calitate constantă.” [http10]

Procesul de dezvoltarea ales pentru dezvoltarea acestui proiect a fost „modelul V”. „Procesul se desfășoară pe etape, în cadrul fiecăreia fiind definite faze și activități specifice. „Modelul V” (figura 6.1.1) reprezintă o variantă a modelului „Cascadă”, prin care se introduc concepte de sistem și componente, aplicându-se teste explicite la un sistem ierarhic pentru sporirea controlului asupra modului în care se desfășoară etapele. Anume această înlesnire constituie o latură a literei V. Prima este latura din stânga, parcursă descendent și conține etapele propriu-zise, iar cea dea doua latură, din dreapta, se parcurge ascendent, pe ea realizându-se verificările și validările elementelor create anterior.” [http11]

Figura 6.1.1 Modelul V

Din figura 6.1.1 se poate observa cu claritate separările dintre ceea ce implică participarea utilizatorului, modelul arhitectural și pe cel al implementării. Astfel, utilizatorul este implicat doar în fazele din partea superioară a V-ului. În partea din mijloc al literei V este surprinsă arhitectura sistemului. Faza de implementare se referă la partea inferioară a literei și poate reprezenta fie asamblarea componentelor soft, fie codificarea unor componente. Modelul presupune abordarea și dezvoltarea pe componente a sistemului adică abordarea pe părți și integrarea lejeră a lor. De asemenea modelul face distincție evidentă între verificare și validare. Prima se referă la testarea sistemului, în diverse stadii ale lui, dacă s-a construit corect din punct de vedere logic, în timp ce validarea va scoate în evidență faptul că sistemul, în forma lui finală, răspunde sau nu cerințelor inițiale. Acest aspect este considerat un dezavantaj al modelului pentru că validarea se realizează prea târziu.

Analiza cerințelor reprezintă faza de colaborare a beneficiarilor cu echipa de elaborare pentru a stabili definiția exactă a problemei (cerințe și restricții) rezultând o temă de proiectare. S-a stabilit astfel faptul că se dorește o aplicație care să poată fi folosită toți cei care doresc să citească presa pe telefonul mobil.

Elaborarea specificațiilor este faza în care se elaborează un set de specificații formale pentru programe cuprinzând descrierea detaliată pentru toate componentele funcționale. Principalele specificații se refereau la funcționalitățiile principale ale aplicației Cosmic News, design-ul interfeței cu utilizatorul.

Această etapă este foarte importantă și nu trebuie neglijată deoarece stă la baza dezvoltării proiectului. O neînțelegere a specificațiilor duce la proiectarea, respective implementarea greșită a proiectului, prin urmare și dezvoltarea unui produs care nu corespunde cerințelor utilizatorului.

Proiectarea programelor. În această etapă s-au stabilit parametrii de intrare și ieșire, a structurii pe module precum și relaționarea dintre acestea. Toate aceste informații vor fi păstrate într-o bază de date pentru a putea fi folosite ulterior.

Parametrii de ieșire va fi interfața cu utilizatorului.Implementarea programului constă în codarea efectivă a programului.

Instalarea și verificarea. Reprezintă etapa de verificare a modului de funcționare, a modului de îndeplinire a cerințelor și a fiabilității sistemului.

Întreținerea programului. Din momentul livrării primei versiuni a aplicației, se merge în paralel cu procesul de mentenanța a programului și dezvoltarea de noi sarcini.

6.2 Probleme întâmpinate și modul de rezolvare

Prima prolemă întâmpinată a fost conectarea la baza de date. În prima etapă am lucrat cu baza de date locală și am folosit aplicația Xampp pentru aceasta (Figura 6.2.1). Datorită faptului ca la fiecare rulare a aplicației trebuie setat IP-ul, am decis să folosesc un web host.

A doua problemă întâmpinată a fost alegerea unui design potrivit pentru interfața cu utilizatorul. Atunci când aplicația urmează să fie folosită de un număr relativ mare de utilizatori, cu siguranță aceștia vor avea nivele de utilizare a aplicațiilor diferite, prin urmare aplicația Cosmic News trebuie să aibă o interfață prietenoasă și intuitivă. Pentru a rezolva această problemă am studiat materialele oferite de iOS, pentru a ajuta dezvoltatorii să creeze aplicații cu un design pe placul utilizatorilor. [http12]

O altă problemă întâmpinată a fost parsarea datelor cu ajutorul obiectelor de tip json. Folosirea JSON-ului este cea mai bună alternativă a XML-ului, atunci când o aplicație iOS este nevoită să schimbe date cu un server. Pentru a genera un JSON a fost nevoie să folosesc un HTTP call. Pentru o viitoare îmbunătățire a aplicației și a modului de parsare a datelor voi încerca să lucrez cu libraria „open-source” Alamofire.pod care vine cu o serie de beneficii în plus.

6.3 Rezultate experimentale

Deși faza de testare s-a efectuat și în stadiile anterioare, la finalizarea proiectului am efectuat o serie completă de teste pentru a verifica toate funcționalitățile programului. În momentul actual au fost îndepărtate toate erorile întâlnite, iar aplicația Cosmic News este gata pentru livrare clientului.

Direcții de dezvoltare

Aplicația va fi dezvoltată în continuare în următoarele direcții:

· Adăugarea posibilității ca utilizatorii să fie notificați când unul din ziarele favorite publică un articol nou.

· Posibilitatea de logout a utilizatorului

· Posibilitatea de a încărca poze și a trimite mesaje ziarului dacă ai fost martorul unui eveniment.

· Integrarea unui chat pentru grupul de utilizatori

· Localizarea limbilor în care aplicația poate fi utilizată.

Cap 7. Concluzii

Bibliografie

[http1] http://www.ziare.com/internet-si-tehnologie/internet/internetul-intre-distrugere-si-inovatie-948856

[http2] http://www.financiarul.ro/2013/01/14/cat-de-profitabila-este-piata-aplicatiilor-mobile/

[http3] https://www.lifewire.com/how-many-iphones-have-been-sold-1999500

[http4] https://www.techopedia.com/definition/25206/ios

[http5] http://gs.statcounter.com/os-market-share/mobile/romania

[http6] Michael Kofler, The Definitive Guide to MySQL, Apress, 2009

[http7] http://ro.wikipedia.org/wiki/MySQL

[http8] https://medium.com/the-react-native-log/comparing-the-performance-between-native-ios-swift-and-react-native-7b5490d363e2

[http9] http://www.techit.ro/baza-de-date-relationala.php

[http10] http://www.scribd.com/doc/93891858/V-Cycle-Modele-de-Deyvoltare

[http11] http://ti.wmtop.info/psi/PSI%20Last%20Release/3.3%29Modelul%20V/3.3%29

Modelul%20V.html

[http12]https://material.io/develop/ios/

[curs1] Baze de date , Prof. dr. ing. Ioan FILIP

Similar Posts