ABONAMENTE VIDEO TESTE REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 15
Abonament PDF

Dezvoltarea aplicațiilor mobile: Între nativ și hibrid

Cătălin Prata
Mobile Software Developer
@Fortech
DIVERSE

În ziua de astăzi utilizarea dispozitivelor mobile inteligente din categoria tabletelor și telefoanelor este într-o creștere permanentă. Din această cauză producătorii de dispozitive mobile sunt forțați să își îmbunătățească produsele hardware și să vină cu tehnologii îmbunătățite sau parcă rupte din filmele SF. Nu este o noutate nici faptul că volumul vânzărilor de produse hardware de la companii gigant precum Apple, Samsung, BlackBerry sau Nokia este dat în bună parte, de numărul și calitatea aplicațiilor software pe care fiecare platformă îl pune la dispoziție utilizatorilor ei.

Platforme mobile precum iOS, Android, BlackBerry și Windows Phone luptă acum și pentru câștigarea atenției din partea dezvoltatorilor software care până la urmă au potențialul de a atrage sau chiar respinge utilizatori.

Dezvoltatorii de aplicații software la rândul lor caută să își facă loc în piețele de aplicații software mobile, un loc care să le asigure stabilitate pe termen lung. Pentru aceasta, dezvoltatorii sun puși la încercarea de a alege între dezvoltarea aplicațiilor mobile utilizând cod nativ sau opțiunea de a dezvolta aplicații hibride.

Aplicații native

Aplicațiile native sunt aplicații scrise în limbajul de programare specific platformei pentru care se dezvoltă. În tabelul 1.0 puteți observa 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.

Sistem de operare Limbaj de programare Platformă IDE
Android Java, C++< Android SDK/NDK Android Studio
iOS Objective-C Cocoa Touch Xcode
Windows Phone C#, Visual Basic .NET (Windows Phone 8), C++ .NET, Windows Phone Runtime API Windows Phone Software Development Kit
BlackBerry OS Java BlackBerry Java SDK BlackBerry JDE / Eclipse folosind BlackBerry Plug-in
Firefox OS JavaScript WebAPI Orice IDE HTML, JavaScript și CSS  (NetBeans, Eclipse, etc.)
Symbian C++ Qt Qt Creator

Caracteristici

Un utilizator de dispozitive mobile fidel poate face diferența foarte ușor între aplicațiile mobile native sau cele hibrid. Datorită timpului de răspuns superior și faptului că acesta are acces la diferite componente hardware ale dispozitivului (bluetooth, camera foto sau cea frontală, ledurile de notificare (Android) și altele), aplicațiile native pot fi destul de atractive pentru oricine .

Giganții piețelor de aplicații mobile sunt tot mai puși pe îmbunătățirea mediilor de dezvoltare și a șabloanelor de lucru, totul pentru a atrage de partea lor cât mai mulți dezvoltatori de aplicații mobile. Acesta este un lucru cât se poate de bun pentru un dezvoltator care poate profita de unelte gratuite menite să facă implementarea aplicației cât mai rapidă, câștigând mai mult timp pentru investirea în idei noi sau finisarea produsului.

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.

Aplicațiile native sunt foarte pretențioase când vine vorba de cunoștiințele de dezvoltare a programatorului. Aceasta deoarece fiecare platformă cere cunoașterea a cel puțin unui limbaj de programare diferit față de alta platformă iar la rândul lui și limbajul de programare vine cu un șablon de lucru care de obicei este destul de stufos. Pentru ca un produs "nativ" să poată fi rulat pe mai multe sisteme de operare, de obicei este nevoie de câte un programator pentru fiecare platformă în funcție de volumul de muncă, termene limită și alți factori.

Din punct de vedere al creativității, dezvoltatorul are frâu liber fiind limitat doar de resursele dispozitivului pe care aplicația va ruleze.

Mai jos puteți observa câteva elemente ale aplicațiilor native găsite pe cele mai folosite sisteme de operare mobile.

Figura - 1.0 Android Action Bar cu listă de selecție activă
Figura - 1.1 iOS 7 Selector pentru dată

Părți pozitive

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șă.

Părți negative

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). 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 puteți urmări câteva dintre cele mai folosite medii de dezvoltare ale aplicațiilor hibrid:

Caracteristici

Aplicațiile hibrid de regulă sunt formate dintr-o componentă nativă de tip webbrowser care poate accesa diferite funcționalități ale platformei pe care rulează (ex. camera video, lista de contacte, etc.). De regulă aplicațiile hibrid au același design grafic pe toate platformele pe care au fost publicate fără să țină cont de ghidul de implementare a interfeței cu utilizatorul a fiecărei platforme pe care rulează aplicația.

Denumire Tehnologii de lucru Platforme suportate Suport pentru limbaj nativ
PhoneGap HTML, JavaScript și CSS iOS
Android
BlackBerry
Windows Phone
Symbian
WebOS
Nu
Appcelerator Titanium HTML, JavaScript iOS
Android
BlackBerry
Windows Phone
Da
Adobe AIR ActionScript, HTML, JavaScript iOS
Android
BlackBerry
Nu
Sencha Touch HTML, JavaScript și CSS iOS
Android
BlackBerry
Windows Phone
Nu

Este de ajuns să scri codul de bază pentru o aplicație, pentru ca ulterior, ca prin magie aplicația să funcționeze pe mai multe platforme. Din această cauză dezvoltatorii de aplicații hibrid au mai mult timp pentru idei noi sau dezvoltarea unei noi aplicații.

Datorită faptului că majoritatea uneltelor de dezvoltare folosesc tehnologiile WEB pentru implementarea aplicației, găsirea unui programator pentru a duce la bun sfârșit o aplicație hibridă pentru dispozitive mobile, este un lucru mai puțin stresant. Volumul de lucru pe WEB a făcut ca tot mai mulți programatori să învețe tehnologii precum JavaScript, HTML și CSS. Acest lucru duce la o tranziție relativ ușoară către lumea programării de aplicații hibrid pentru dispozitive mobile.

Părți 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ți 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.
Categorie Nativ Hibrid
Cunoștințe necesare dezvoltării aplicațiilor Objective-C
Cocoa Touch
Java
Android SDK
C
C++
Android NDK
WindowsPhone Runtime
C# / VB.NET
.NET
HTML
CSS
Javascript
Mediul și șablonul de dezvoltare (Phonegap, Titanium, etc.)
Stocare date Da Da
Acces API platformă Da Da prin intermediul șablonului de dezvoltare
Acces componente hardware Da Da prin intermediul șablonului de dezvoltare
Timp de răspuns la animații Foarte bun în funcție de platformă Bun spre slab în funcție de platformă
Potrivit pentru dezvoltarea jocurilor Da Nu
Timp de dezvoltare Foarte mult Mediu
Exemplu în imagini
Linkedin iOS
Linkedin Android

Comparație

În primul rând aș dori să evidențiez faptul că ambele modalități de dezvoltare a aplicațiilor mobile se distribuie prin piețele de aplicații existente pe platformele mobile (AppStore, GooglePlay, Windows Phone Store, etc.). Din această cauză, ambele vor participa și la verificarea de dinaintea lansării propriu zise în magazinul virtual.

După cum am menționat la părțile pozitive a metodei de dezvoltare nativă, branduri puternice care au publicat aplicații mobile, au trecut la dezvoltarea aplicațiilor native în pași grăbiți și aceasta se întâmplă și în ziua de astăzi (vezi aplicația YouTube de pe Windows Phone Store). Această trecere se datorează faptului că prin dezvoltarea nativă pot scoate tot ce se poate din platforma pe care rulează aplicația și totul la performanțe ridicate. Pe de altă parte trebuie să nu uităm că tot acești giganți au făcut primii pași către lumea mobilă cu aplicații web, urmate de aplicații hibride și abia mai la urmă au trecut la metoda nativă.

În Tabelul 3 puteți observa comparația între cele două metode de dezvoltare pe mai multe categorii, am luat în considerare dezvoltarea pentru iOS, Android și Windows Phone doar.

Concluzie

Ambele modalități de dezvoltare sunt importante și trebuie luate în calcul în momentul în care se vrea să se dezvolte o aplicație pentru dispozitivele mobile. Important este să se decidă dacă aplicația trebuie să fie bogată din punct de vedere al animațiilor, dacă se dorește publicarea aplicației pe mai multe platforme sau cât de mare este bugetul alocat dezvoltării aplicației respective.

Alegeți dezvoltarea nativă a aplicației dacă timpul de dezvoltare și implicit bugetul nu este mic. Această opțiune poate aduce utilizatori fideli pe termen lung și review-uri pozitive. În același timp vă ajută să distribuiți clienților versiuni ale aplicației care poate rula pe cele mai noi versiuni ale sistemelor de operare pe care rulează încă de la lansarea acestora.

Alegeți dezvoltarea hibridă a aplicației dacă timpul de dezvoltare a aplicației si bugetul sunt mici. Această opțiune de dezvoltare se potrivește foarte bine și dacă doriți să experimentați o idee nouă de aplicație. Aplicațiile hibrid sunt foarte bune pentru un startup, acestea vă ajută să acaparați atenție pe mai multe platforme cu un minim de efort și la o calitate corectă.

LANSAREA NUMĂRULUI 75 -
Cluj-Napoca, Iași și București

Prezentări articole &
Panel: Project management

Înregistrează-te

Cluj-Napoca

restaurant Hugo, The Office

Joi, 20 Septembrie, ora 18:00

Facebook Meetup

Iași

sediul NTT DATA

Miercuri, 26 Septembrie, ora 18:00

Facebook Meetup

București

galeria EliteArt

Joi, 27 Septembrie, ora 18:30

Facebook Meetup

Reclame

Sponsori

  • kronsoft
  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • Crossover
  • MHP
  • BCR
  • Itiviti
  • Connatix
  • MicroFocus
  • Colors in projects