În Inspirație

Aplicație nativă vs. aplicație hibrid. Ce variantă să alegi pentru a dezvolta o aplicație mobilă?

aplicatii mobile

În ultimii ani, smartphone-ul ocupă un loc important în viața noastră. Statisticile susțin importanța smartphone-urilor, iar cifrele sunt concludente. Numărul de utilizatori de mobile a crescut foarte mult și a depășit numărul persoanelor care accesează un calculator.

Această creștere este evidentă în toate regiunile lumii și tendința de creștere este clară.

snap1

Luând în calcul aceste cifre, un lucru este sigur: dacă vrei să fii cunoscut trebuie să mizezi pe mobile, iar cererea de aplicații mobile evident că a explodat.


Potrivit unui studiu realizat de
Opinion Matters, 85% din companii au în dezvoltare între una și 20 de aplicații mobile, iar jumătate dintre ele chiar peste 10 aplicații. Iar conform MGI Research, marea majoritate a aplicațiilor experimentează într-o perioadă de 2 ani cel puțin 4 cicluri de modificări datorate schimbărilor de sistem sau device.

 

Acum apare însă întrebarea de un milion de dolari ”Ce variantă să alegi pentru a dezvolta o aplicație mobilă?”. Principalele opțiuni sunt în număr de 3:

  1. Aplicație nativă
  2. Website responsive
  3. Aplicație hibrid

 

Răspunsul este după cum probabil intuiești: ”Depinde!”.

Iar acest ”depinde” se referă la o multitudine de factori care pot influența alegerea cea mai potrivită pentru a exista în mediul online pe mobile: user experience, performanță, fragmentare, monetizare, securitate, disponibilitatea programatorilor cu expertiză, costurile implicate pentru dezvoltare cross-platform, suportul oferit la update-uri de OS, metode de distribuire, etc.

 

snap4

 

Aplicații native

O aplicație nativă este o aplicație dezvoltată pentru un anumit sistem: iOS, Android, Windows Mobile. Sunt realizate folosind SDK-ul și tool-ul oferit de compania producătoare.


Android

  • Tool: Android Studio
  • Limbaj de programare: Java

iOS

  • Tool: XCode
  • Limbaj de programare: Objective C sau Swift

Windows Mobile

  • Tool: Visual Studio
  • Limbaj de programare: C#

 

Avantaje:

  • Acces facil la toate funcțiile device-ului: cameră, telefon, contacte, GPS, push notification etc.
  • Experiența utilizatorului este foarte bună, tranzițiile între ecrane sunt rapide, la fel și procesarea datelor.
  • Aplicația poate fi distribuită folosind market-urile puse la dispoziție precum Google Play, App Store, Microsoft Store.
  • Monetizare: aplicațiile pot fi puse la dispoziția utilizatorilor contra cost sau pot include produse care pot fi vândute folosind in-app purchasing și nu numai.
  • Suport offline: datele pot fi stocate local folosind diverse mecanisme (SQLite, caching) și astfel chiar dacă nu există conexiune la internet utilizatorul va avea acces la datele din aplicație.
  • Problemele de securitate sunt abordate mult mai ușor și mai simplu având access direct la API-ul sistemului.
  • Platformele native sunt foarte bine documentate și există o multitudine de resurse și comunități unde poți învăța lucruri noi sau poți expune problemele pe care le ai în a dezvolta o anumită funcționalitate.

 

Dezavantaje:

  • Costurile sunt mai mari pentru că presupune scrierea de cod pentru fiecare platformă în parte, deci tot acest proces durează ceva timp.
  • Codul trebuie menținut pe toate platformele în care a fost scris și trebuie updatat în funcție de noile modificări aduse fiecărui sistem de operare.
  • Pentru a dezvolta o aplicație nativă pentru mai multe platforme va fi nevoie și de developeri pentru fiecare limbaj în parte.
  • Uneori timpul de acceptare al unei aplicații pe market este destul de mare. Apple are un astfel de proces, mai anevoios. După ce aplicația este implementată și încărcată pe iTunes aceasta va trece printr-un proces de testare și aprobare realizat de Apple și se poate ajunge și la o așteptare de 10 zile lucrătoare.

snap2

Website responsive

Un website responsive poate fi accesat de pe orice device care are un browser. Website-urile responsive sunt dezvoltate folosind tehnologii web standard: HTML5, JavaScript și CSS3, iar partea de server side poate fi realizată folosind: .NET, PHP, Node JS sau orice altceva compatibil.

 

Avantaje:

  • Trebuie menținut un singur cod care rulează pe mai multe platforme.
  • Aplicația este distribuită rapid, utilizatorul trebuie doar să acceseze un URL în browser, la fel și update-urile sunt primite instant.
  • Dezvoltatorii care au cunoștințe de web pot dezvolta cu succes website-uri responsive.
  • Optimizare pentru motoarele de căutare care pot indexa site-ul și în felul acesta online marketing-ul este folosit cu succes.

 

Dezavantaje:

  • Acces limitat la funcțiile sistemului și device-ului.
  • Performanță scăzută: procesarea datelor este lentă.
  • Experiența utilizatorului nu este una prea fericită: tranzițiile între ecrane sunt lente, design-ul este o copie a design-ului nativ.
  • Necesită conexiune la internet.

snap3

Aplicații hibrid

Aplicațiile hibrid, după cum și numele o spune, sunt o combinație între website-uri și aplicații native. Așadar funcționalitatea centrală este scrisă ca la oricare alt website, după care sunt utilizate diferite framework-uri care pun la dispoziție plugin-uri capabile să ofere acces la funcțiile native ale sistemului.

 

Avantaje:

  • Codul este unic pentru toate platformele și este dezvoltat folosind standardele web, după care este ”împachetat” în aplicații care pot fi urcate pe market.
  • Are acces la API-urile sistemului, dar integrarea este mai dificilă față de aplicațiile native (se dezvoltă pluginuri) și codul trebuie separat pentru fiecare platformă în parte.
  • Poate fi monetizată prin aceleași mecanisme ca și o aplicație nativă.

 

Dezavantaje:

  • Implică utilizarea unor framework-uri care permit accesul la funcțiile sistemului, iar în felul acesta nu poți controla tot codul, ești dependent de cât de bine a fost implementat acel framework.
  • Resursele nu sunt foarte numeroase, deoarece există o multitudine de posibilități, unele mai bine documentate, altele mai puțin.
  • Experiența utilizatorului nu este extraordinară: procesarea datelor este lentă, tranzițiile între ecrane la fel.

Concluzie

Înainte de a decide ce variantă să alegi mai rămâne să răspunzi la un set de întrebări:

  1. Cine sunt utilizatorii aplicației tale? În funcție de pretențiile lor poți alege ce fel de user experience dorești să le oferi.
  2. Aplicația o să conțină un număr mic de ecrane cu texte și liste simple sau va avea o funcționalitate complexă și ai nevoie de acces la api-urile sistemului, dar și de o securitate robustă?
  3. Dorești să distribui aplicația în marketplace?
  4. Dorești ca aplicația să fie dezvoltată pe mai multe platforme?
  5. Aplicația o să fie monetizată?

Având în minte avantajele, dezavantajele, dar și răspunsurile la întrebările de mai sus cu siguranță o să iei o decizie potrivită și informată pentru ideea ta. Spor la codat!