Aplicatii Hibride

Cuprins

INTRODUCERE

Pe măsură ce tehnologia avansează, metodele prin care se crează aplicații mobile se schimbă de asemenea. Pe măsură ce modalități noi și mai bune de a construi aplicații mobile devin disponibile, sunt încă utilizate metode mai vechi, în funcție de scopul și funcționalitatea aplicației.

În acest moment, există trei metode de a construi o aplicație mobilă:

aplicații native

aplicații web

aplicații hibride

Aplicații web

Aplicațiile web sau site-uri web mobile au cel mai larg public din cele trei tipuri principale de aplicații. Orice smartphone poate să afișeze conținutul unei pagini web și permite utilizatorului să interacționeze cu aceasta, deși unele fac acest lucru mai bine decât altele.

Două lucruri ce trebuie făcute pentru a crea un website mobil sunt: integrarea unui design adaptabil (responsive design) și restructurarea conținutului incat să funcționeze pe dispozitive cu ecran mic.

Pentru a realiza un design adaptabil se folosesc interogările media CSS (CSS media queries). Interogările media CSS sunt o modalitate de a coda CSS(Cascading Style Sheets) pentru a defini reguli care vizează diferite tipuri de dispozitive (telefoane, tablete, laptopuri si ecrane mari).

Exemplu de interogări media CSS:

Telefoane

Portret și peisaj

@media only screen and (min-device-width : 320px) and

(max-device-width : 480px) { … }

Peisaj

@media only screen and (min-width : 321px) { … }

Portret

@media only screen and (max-width : 320px) { … }

Tablete

Portret

@media only screen and (min-device-width : 768px) and

(max-device-width : 1024px) { … }

Peisaj

@media only screen and (min-device-width : 768px) and

(max-device-width : 1024px) and (orientation : landscape) { … }

Portret

@media only screen and (min-device-width : 768px) and

(max-device-width : 1024px) and (orientation : portrait) { … }}

Desktop, laptop, ecrane mari

@media only screen and (min-width : 1224px) { … }

@media only screen and (min-width : 1824px) { … }

Un dezavantaj al site-urilor web mobile este faptul că multe caracteristici disponibile pentru aplicații native, nu sunt disponibile in cazul website-urilor.

Accesul la sistemul de fișiere și resursele locale nu este disponibil în site-uri web, indiferent dacă sunt sau nu sunt mobile. Site-ul nu poate accesa camera web, senzorii sau alte componente hardware.

Pentru a putea folosi capabilitățile offline, trebuie utilizate tehnologii web, cum ar fi WebStorage, IndexedDB și AppCache. Website-urile mobile nu pot accesa resursele de sistem de fișiere, dar modelul lor sandbox permite totuși stocarea anumitor date pe dispozitiv. Multe site-uri web existente nu pot funcționa offline, facându-le inutile atunci când acestea sunt deconectate.

Aplicații native

Aplicațiile native sunt aplicații scrise în limbajul de programare specific platformei pentru care se dezvoltă. În tabelul 1 se observă câteva din sistemele de operare mobile împreună cu limbajul de programare specific, platformele pentru dezvoltare precum și cu medii de dezvoltare folosite de către programatorii de aplicații mobile.

O aplicație nativă care respectă regulile de dezvoltare specifice platformei pentru care este destinată, nu va folosi niciodată aceleași resurse grafice: butoane, icoane, fundaluri pentru liste, etc. pentru mai mult de o platformă. Aceasta din cauză că aplicațiile native trebuie să păstreze din comportamentul și designul sistemului de operare pe care rulează. Acestea trebuie să se integreze în platforma aleasă de utilizatorul final.

Dezvoltarea aplicațiilor native poate aduce următoarele beneficii celor care le dezvoltă:

Posibilitatea de a accesa diferite componente hardware (bluetooth, senzori de mișcare, leduri de notificare, camera și altele);

Timp mai scurt de răspuns pentru unele operații;

Programatorul are acces la ultimile API-uri apărute pe platformă încă de la versiunile beta;

Aplicația are o vizibilitate mai mare pe platforma unde este lansată datorită faptului că este distribuită prin piețele de aplicații folosite de majoritatea utilizatoriilor de dispozitive mobile;

Oferă utilizatorului o experiență de utilizare superioară fapt ce poate duce la creșterea utilizării aplicației;

Unelte de dezvoltare gratuite;

Mediile de dezvoltare vin de obicei cu unelte bune de testare a codului dar si de analiză a aplicației din punct de vedere a consumului de memorie si timpilor de răspuns.

Aplicațiile native pot aduce utilizatori noi în timp ce-i păstrează pe cei care deja le folosesc. Majoritatea brand-urilor mari din lumea aplicațiilor sociale (facebook, twitter, linkedin, etc.) și-au dat seama de puterea aplicațiilor native de a atrage utilizatori și au ales să meargă pe această nișă.

Ca orice lucru, aplicațiile native au și părți negative care pot pune pe gânduri un starter. Părțile negative sunt următoarele:

Spre deosebire de aplicațiile web, distribuția aplicațiilor native este adesea limitată de forțarea acestora de a putea fi distribuite doar prin piețele de aplicații care pot impune diferite bariere (ex. Prin unele piețe de aplicații nu se pot vinde aplicații din anumite țări),

Dacă se urmărește lansarea produsului pe mai multe platforme, costurile cresc semnificativ, fiind nevoie de rescrierea codului pentru fiecare platformă în parte,

De regulă, specializarea programatorului pe o platformă poate dura ani de zile fapt ce duce și la o limitare a resurselor umane.

Aplicații hibride

Aplicațiile mobile hibride sunt aplicații care de regulă sunt dezvoltate folosind tehnologii WEB (JavaScript, HTML, CSS) dar au access la componentele hardware si la sistemul de fișiere. La ora actuală aplicațiile hibride încep să prindă rădăcini tot mai puternice datorită faptului că multe medii de dezvoltare devin tot mai stabile și oferă acces la tot mai multe funcționalități hardware ale dispozitivelor. În tabelul 2 sunt câteva dintre cele mai folosite medii de dezvoltare ale aplicațiilor hibrid:

Părțile pozitive:

Timp de dezvoltare mic pentru o acoperire largă de sisteme de operare;

Învățarea mai rapidă a tehnologiilor de dezvoltare, fiind vorba în principiu de tehnologi web;

Aplicația are o vizibilitate mai mare pe platforma unde este lansată datorită faptului că este distribuită prin piețele de aplicații folosite de majoritatea utilizatoriilor de dispozitive mobile;

Unelte de dezvoltare gratuite.

Părțile negative:

Dependență față de dezvoltatorii uneltelor de lucru, fapt ce poate întârzia lansarea aplicației care să funcționeze pe o versiune nouă a unui sistem de operare sau întârzieri în repararea problemelor tehnice ce pot apărea mai ales la versiuni noi ale sistemelor de operare pentru mediile mobile;

Performanță mai scăzută în unele locuri

Reputație scăzută în rândul utilizatorilor fideli a unei anumite platforme mobile;

Pierdere de timp pe repararea problemelor găsite în urma faptului că nu pe toate platformele aplicația o să ruleze la fel de bine.

Capitolul I

Sencha Touch

Sencha Touch este cea mai performantă platformă MVC(Model View Controller) pentru crearea de aplicatii mobile pentru diferite platforme. Sencha Touch foloseste tehnici de accelerare pentru a crea componenete foarte performante pentru interfețele grafice din aplicațiile mobile.

Având peste 50 de componente si teme asemănătoare cu cele native pentru majoritatea platformelor mobile, Sencha Touch poate crea aplicații foarte performante pentru iOS, Android, BlackBerry, Windows Phone și alte platforme.

Secțiunea 1

Prezentare generală

Componente performante, asemănătoare cu cele native

Sencha Touch are o cuprinzătoare colecție de componente performante cum ar fi: liste, meniuri, formulare, grile, grafice construite in mod special pentru platformele mobile.

Layout adaptabil, animații si scroll fluid

Sencha Touch are un motor de redare ce foloseste HTML5 și permite dezvoltatorilor să creeze aplicații foarte rapide pentru platformele mobile. Schimbarea din modul peisaj in portet și invers, se face aproape instantaneu, motorul de redare asigurând o experientă similară pe toate platformele mobile. Sencha Touch alege automat cele mai performante animații si metode de scroll în funcție de fiecare platformă.

Sistem de date agnostic

Sistemul de date inclus in Sencha Touch deconectează componentele interfeței grafice de stratul de date. Sistemul permite utilizarea colecțiilor de date la client folosind modele ce oferă funcții ca sortare si filtrare. Sistemul de date nu depinde de protocol și poate folosi informati de la orice sursă.

Sistemul de grafice

Sistemul de grafice permite vizualizarea datelor folosing diferite tipuri de grafice ca linie, bară sau circular. Graficele din Sencha Touch folosesc elementul canvas din HTML5 pentru a obțtine o experiența apropiată de cea nativă. Animațiile și interacțiunea cu graficele sunt bazate pe gesturi:pinch, zoom, swipe.

Accesarea dispozitivelor

Aplicațiile create cu Sencha Touch pot rula pe orice browser mobil, dar accesul la dispozitiv si compilarea nativă este de multe ori esentială pentru aplicațiile mobile. Sencha Touch se integrează perfect cu Phonegap/Cordova pentru a avea access la API-urile native cum ar fi camera si accelerometrul.

Secțiunea 2
Structura unei aplicații Sencha Touch

O aplicație Sencha Touch este o colectie de modele, view-uri, controlere, magazine și profiluri, plus metadate adiționale pentru componente ale aplicației cum ar fi pictograme sau imaging pentru ecranul de pornire.

Model : un tip de date din aplicație – o aplicație de comerț electronic ar avea modele pentru Utilizator, Produs și Comenzi.

View: este responzabil pentru afișarea datelor si componentelor din Sencha Touch

Controler: asigura interacțiunea cu aplicația in funcție de acțiunile utilizatorului

Magazin: incarcă datele in aplicatie și in componente de genul listă sau grilă

Profil: permite adaptarea interfeței aplicației pentru telefon sau tabletă

Modele

Cel mai simplu model este un set de câmpuri ce conțin date.

Un exemplu de model:

Modelele pot fi legate intre ele folosind API-ul de asociere. Majoritatea aplicațiilor folosesc diferite modele, iar de cele mai multe ori acestea sunt legate. De exemplu o aplicație pentru un blog ar putea avea modele pentru Utilizator, Articol și Comentariu. Relația dintre ele este afișată mai jos:

Modelele au metode de validare a datelor. Următoarele metode de validare sunt definite implicit:

presence – câmpul trebuie sa aibă o valoare. 0(zero) este valid, dar un șir gol nu este valid

length – valoarea câmpului trebuie să aiba o lungime între un minim și un maxim. Ambele limite sunt opșionale

format – valoarea câmpului trebuie să fie de un anumit format cum ar fi număr

inclusion – valoarea câmpului trebuie să facă parte din un set specific de valori

exclusion – valoarea câmpului trebuie sa nu faca parte din un set specific de valori

View-uri

Deși marea parte a unei aplicații este formata din modele și controlere, din punct de vedere al utilizatorului o aplicație este o colecție de view-uri.

Controlere

Controlerele “ascultă” evenimente declanșate de interfața grafică si executa anumite acțiuni in funcție de eveniment. Folosind controlerele, codul este curat și usor de citit și păstram separat logica de afișare.

Controlerele au două proprietăți de configurare importante: refs și control.

refs – folosit pentru a gasi diferite componente

control – folosit pentru a atașa o metodă a controlerului la o componentă selectată cu refs

Un exemplu de controller:

Magazine

Magazinele sunt o parte importantă din Sencha Touch și sunt folosite pentru componentele ce afișează date. Cel mai simplu magazin este o colectie de instanțe ale unui model. Componentele ca liste si grile afișează câte o elementpentru fiecare instanță a modelului din magazin. Pe măasură ce instanțele unui model sunt adăugate sau scoase din magazin, se declanșează evenimente ce sunt folosite de componente pentru a se actualiza.

Profiluri

Sencha Touch functionează pe o gamă largă de dispozitive cu diferite capabilități și ecrane de diferite dimensiuni. O interfață ce functionează bine pe tablete nu o să functioneze la fel de bine pe telefoane și invers, așa ca are sens folosirea view-urilor diferite pentru diferite tipuri de dispozitive.

Profilurile sunt clase simple ce permit definirea diferitelor tipuri de dispozitive și comportamentul aplicației pe aceste dispozitive. Fiecare profil definește o functio isActive care returnează adevarat(true) dacă profilul trebuie să fie active pe dispozitivul curent, plus un ser de modele, view-uri și controlere ce sunt folosite daca profilul este detectat.

Un exemplu de profil:

Capitolul II

Apache Cordova

Apache Cordova este o platformă pentru dezvoltarea aplicațiilor de mobil. Permite folosirea tehnologiilor web standard ca HTML5, CSS si JavaScript pentru a crea aplicații pentru diferite platforme, evitând limbajul de dezvoltare nativ al fiecarei platforme. Aplicațiile se bazează pe API-uri standard pentru a accesa senzorii, datele si rețeaua dispozitivului.

Aplicațiile Apache Cordova se bazează pe un fisier numit config.xml ce specifică informații despre aplicație și cum ar trebui să funcționeze aceasta, de exemplu daca raspunde la schimbarea orientării dispozitivului.

Aplicația este implementată ca o pagina web, implicit numită index.html, care apelează fișiere CSS, JavaScript, imagini, fișiere media sau orice alte resurse necesare pentru a funcționa. Aplicația se execută ca un WebView in mediul nativ.

Cordova are o interfață pentru module prin care comunica cu componentele native. Acest lucru permite apelarea funcțiilor native din JavaScript.

MODURI DE DEZVOLTARE

Independent de platformă (CLI)

Folosind această abordare, aplicația va funcționa pe cât mai multe platforme, fară a fi nevoie de cod specific pentru fiecare platformă. Acest mod de lucru foloseste un program utilitar numit Cordova CLI(Comand Line Interface). Cordova CLI este un program de nivel înalt ce permite crearea unei aplicații pentru mai multe platforme odată, abstractizând mult din funcționalitatea scripturilor de nivel scăzut. Cordova CLI copiază un set de resurse web comune in directoare separate pentru fiecare platformă, configurează fiecare platformă și generează aplicația.

Dependent de platformă

Această abordare este folositoare cand se crează aplicația pentru o singură platformă si este nevoie de modificări la nivel scăzut, de exemplu folosirea componentelor native cu componente web Cordova, folosind Embedded WebViews.

PLATFORME

În Anexa 1 sunt afișate modulele suportate și pe ce platforme funcționează acestea.

MODULE APACHE CORDOVA

Apache Cordova are un set minim de API-uri ce poate fi extins prin module. Modulele Cordova sunt următoarele:

Baterie – monitorizează starea bateriei

Cameră – Poate face poze folosind camera foto a dispozitivului

Consolă – Adaugă funcționalitate suplimentară metodei console.log();

Contacte – Poate interacționa cu baza de date de contacte

Dispozitiv – Poate accesa informații despre disozitiv

Accelerometru – Poate accesa senzorule de miscare al dispozitivului

Busolă – Poate accesa senzorule de orientare al dispozitivului

Notificări – Afișează notificari pe dizpozitiv

Sistem de fișiere – Se poate conecta la sistemul de fișiere folosind JavaScript

Transfer de fișiere – Poate realiza transfer de fișiere folosind JavaScript

Geolocație – Poate accesa GPS-ul

Globalizare – Permite traducerea elementelor din interfața grafică

Browser – Poate acces URL-uri în on instanță de browser din aplicație

Media – Poate înregistra și reda fișiere audio

magazinele de aplicații – Poate crea fișiere media folosind aplicațiile de captură media ale dispozitivului

Rețea – Poate accesa informații despre rețeaua mobilă

Ecran de start – Afișează o imagine pâna la inițializarea aplicației

Bară de stare – Permite configurarea bării de stare

FIȘIERUL CONFIG.XML

Multe aspecte din comportamentul aplicației pot fi controlate cu un fișier de configurare global numit config.xml. Acest fișier independent de platformă este bazat pe specificațiile W3C pentru aplicații web și extins pentru Cordova pentru a specifica funcționalități, module și setări specific pentru fiecare platformă.

Elemente de configurare de bază:

Următoarele elemente apar in fișierul config.xml și sunt suportate de toate platformele:

Atributul id al elementului <widget>crează identificatorul de domeniu invers, iar version este versiunea aplicației sub forma versiune majoră/minoră/patch. Elementul widget poate avea atribute ce specifica versiuni alternative, versionCode pentru Android și CFBundleVersion pentru iOS.

Elementul <name>specifică numele aplicației așa cum apare pe dispozitiv și in magazinele de aplicații

Elementele <description> și <author> specifică metadata si date de contact ce pot apărea in magazinele de aplicații

Elementul opțional <content> definește pagina de start a aplicației. Valoarea implicită este index.html din directorul www.

Elementele <access> specifică ce domenii externe pot fi accesade de aplicație.

MEDII DE STOCARE

Apache Cordova are mai multe API-uri pentru stocarea de date:

LocalStorage – Cunoscut și sub numele de stocare web, stocare simplă sau stocare de sesiune, acest API folosește perechi cheie/valoare pentru stocare de date și este present in implementarile WebView-urilor.

WebSQL – Acest API oferă tabele de date mai complexe accesate prin interogări SQL. Sunt suportate următoarele platforme:

Android

Blackberry10

iOS

Tizen

IndexedDB – Acest API oferă mai multă funcționalitate decât LocalStorage dar mai puțină decat WebSQL. Sunt suportate următoarele platforme:

BlackBerry 10

Firefox OS

Windows Phone 8

Windows 8

Pe lângă API-urile de stocare, mai exista si API-ul de fișiere ce permite salvarea de date in sistemul de operare al dispozitivului.

BIBLIOGRAFIE

http://www.sencha.com/

https://cordova.apache.org/

http://phonegap.com/

http://ionicframework.com/

http://www.smashingmagazine.com/2014/10/21/providing-a-native-experience-with-web-technologies/

https://www.ng.bluemix.net/docs/

https://crosswalk-project.org/

http://training.figleaf.com/Courses/sencha.cfm

Similar Posts

  • Arhitectura Sistemelor de Calcul

    Cuprins: Tema proiectului…………………………………………pag 3 Microprograme pentru instructiuni………………………pag 4 Descrierea semnalelor de comanda si microoperatiile…. pag 9 4. Codificarea instructiunilor……………………………….pag 10 5. Codificarea dupa functie…………………………………pag 19 6. Bibliografie………………………………………………pag 25 === proiect === Cuprins: Tema proiectului…………………………………………pag 3 Microprograme pentru instructiuni………………………pag 4 Descrierea semnalelor de comanda si microoperatiile…. pag 9 4. Codificarea instructiunilor……………………………….pag 10 5. Codificarea dupa functie…………………………………pag…

  • Biblioteca Virtuala

    CUPRINS Capitolul 1 – Introducere Tema proiectului Notiune general Ce este o aplicație enterprise Evoluția aplicațiilor de tip enterprise Capitolul 2 – Tehnologii utilizate Despre PHP O scurtă istorie a PHP-ului Instalarea PHP Baze de date in PHP Utilizarea PHP pentru a accesa o baza de date Conectarea la baza de date PHP Superglobals Introducere…

  • Tehnici de Compresie a Imaginilor

    Capitolul 1. Prezentarea problemei compresiei de imagini 1.1 Fundamente 1.1.1 Reprezentarea imaginii 1.1.2 Cuantificarea imaginii 1.1.3 Modelarea matematică a imaginii 1.1.4 Introducere în problema compresiei de date Tipuri de redundanță 1.1.5.1 Redundanța în codificare 1.1.5.2 Redundanța spatială . 1.1.5.3 Redundanța psihovizuală 1.1.6 Criterii de fidelitate 1.2. Modelarea procesului de compresie de imagini 1.3. Elemente de…

  • E Learning. Aplicatie Pentru Invatare Asistata pe Calculator

    CAPITOLUL 1. Despre E-learning E-learning (sau eLearning) reprezintă utilizarea de media electronică și tehnologii informaționale și de comunicație (ICT) în educație. E-learning la general include toate formele de tehnologie educațională în educatie și învățare. E-learning este sinonim cu multimedia learning, technology-enhanced learning (TEL), computer-based instruction(CBI), computer-based training (CBT), computer-assisted instruction or computer-aided instruction (CAI), internet-based training (IBT), web-based training (WBT), online education, virtual education, virtual learning environments (VLE), m-learning. 1. În sens larg, prin elearning (sau e-learning) se înțelege…

  • Securitate Si Criptografie

    INTRODUCERE Criptografia protejează informația vehiculată prin rețelele moderne de calculatoare. De-a lungul istoriei omenirii, dorința și necesitatea comunicării confidențiale au dus la perfecționarea științei scrierilor secrete, numite azi criptografie. Cunoștințele actuale referitoare la începuturile criptografiei sunt furnizate de diferite lucrări despre științele, religiile, războaiele de pe vremea unor civilizații de mult apuse. Este de apreciat…

  • Aplicatie Bazata pe Tehnologia Java

    Capitolul I. Arhitectura rețelelor de calculatoare. Modelul ISO/OSI. Protocolul TCP/IP 1.1 Arhitectura rețelelor de calculatoare În rețelele moderne de calculatoare, comunicația între utilizatori se realizează printr-o succesiune de activități organizate de o manieră ierarhizată. În cadrul fiecărui dispozitiv ce face parte din sistemul rețelei de calculatoare se delimitează un număr de n diviziuni ierarhice –…