¿Es React Native la solución definitiva?

És React Native la solució definitiva?

Des de fa un temps en mobilitat ha sorgit la necessitat de resoldre la problemàtica d’intentar unificar el desenvolupament duplicat de codis natius.

Durant anys diverses companyies han desenvolupat productes per a intentar minimitzar d’alguna manera aquest treball laboriós de desenvolupament en els diferents llenguatges mòbils i amb el temps el mercat ha anat canviant; des de Phonegap o Cordova, fins a les actuals Progressive Wep Apps (PWAs), aplicacions desenvolupades amb tecnologies web i proporcionades des de la mateixa web que poden funcionar com a aplicacions natives, el mercat ha anat evolucionant per a donar una resposta útil i òptima a aquesta necessitat.

Avui dia podem dir que només hi ha dos grans sistemes operatius en el món mòbil, Android i IOS, però la necessitat d’unificar aquests codis continua sent aquí.

És en aquest punt on entra en joc React Native.

React Native

React Native va néixer a Facebook i va ser llançat en el 2015. Es tracta d’un Framework dissenyat per a desenvolupar en Javascript o en Typescript i que genera com a resultat final aplicacions natives que poden córrer sobre Android i IOS. Una part important a destacar és que React Native interactua a nivell intern amb codi natiu IOS o Android, el que fa es distingeixi de solucions passades que acabaven executant-se en una espècie de navegador embegut.

La part més tediosa de treballar amb React Native és la de generar les compilacions per a distribució, encara que per a facilitar aquest treball posseïm eines de codi obert com Expo.io.

Expo.io  és una plataforma de codi obert que funciona com una capa per sobre de React Native i ens permet agilitar els processos de muntar i distribuir una aplicació d’aquesta mena.

React Native treballa principalment amb llenguatge web, també posseeix una part interna que interactua amb codi Java o Swift.

Moltes de les funcionalitats mòbils (com les interaccions amb la cambra, les notificacions push, etc.) ja estaran implementades per Facebook, que desenvolupa i dóna suport a aquest framework que es troba actualment en la versió 0.63, però alguns casos especials, errors singulars o noves funcionalitats, poden requerir baixar a nivell intern on es necessita saber de Java i/o Swift.

Hem d’anar amb compte ja que per a seguir l’abast del nostre aplicatiu requerirem no sols de coneixements sobre React i Typescript, sinó també de codis natius.

Abans de decidir, haurem de sospesar almenys els següents avantatges i desavantatges:

Aventatges:

  • Rapidesa de desenvolupament
  • Codi Typescript o JavaScript, que possibilita reciclar a programadors web
  • Fàcil d’entendre per nous programadors
  • Mes fàcil de mantenir i modificar que el codi natiu
  • Millor rendiment en dispositiu que PWA (Progressive Wep Apps)

Desavantatges:

  • Compilació tediosa i difícil (tret que es facin servir eines comExpo.io o altres utilitats)
  • Aplicacions més pesades que les de codi natiu.
  • Problemes per accedir a funcions natives (GPS, Notificacions Push…)
  • Errors i logs poc descriptius
  • Documentació de React Native poc clara i ambigua a vegades.
  • En dependre de Facebook i els seus desenvolupaments pot ser que funcions o utilitats noves dels dispositius no estiguin implementades en un temps.

Després de plantejar pros i contres queda la pregunta clau: és React Native la solució actual a tots els nostres problemes en mobilitat?

No, o almenys no ho és actualment, però sí que pot ser un gran aliat si sabem en quins projectes aplicar-lo.

Cada tecnologia té un lloc i un ús i React Native no és una excepció, pot ser el nostre millor aliat o un bloqueig per al nostre projecte.

Si una organització o un equip pot permetre’s tenir dos grups per a desenvolupament en nadiu, aquesta serà l’opció més optima, però quan aquest no sigui el cas, com per exemple en equips reduïts, s’ha de valorar el coneixement i el perfil dels components de l’equip abans de triar React Native, ja que, encara que la seva corba d’aprenentatge és ràpida, existeixen altres alternatives viables que potser s’emmotllen millor als coneixements de l’equip.

Finalment, i potser el més important, cal valorar també quin tipus d’aplicació vol fer-se; si l’objectiu és una aplicació per a consultar i guardar dades, React Native és una bona opció, però si requereix interaccions més complexes, com per exemple seguiment de GPS mitjançant mapes, això serà molt més complicat d’implementar i ens requerirà coneixements de codi natiu.

A Trentia apostem per utilitzar diverses tecnologies i innovar en la manera de desenvolupar els nostres projectes. Som Camaleons Digitals.

De fet tenim gran experiència treballant per exemple amb Xamarin, però sempre mirant al futur i veient cap a on van les Noves Tecnologies, provant-les abans internament. A l’avantguarda amb solidesa.

Sempre avançant, creixent i innovant.

Som Trentia Digital Working.

Abraham Boj y David González
Abraham Boj i David González
IT Consultant