Î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ț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 |
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.
Dezvoltarea aplicațiilor native poate aduce următoarele beneficii celor care le dezvoltă:
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:
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:
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.
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 |
Î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.
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ă.