Porqué he elegido React Native para mi próxima app

Porqué he elegido React Native para mi próxima app

Hace unas semanas que consumé mi traición a Objective C: para mi próximo proyecto he elegido React Native.
Y he escrito este artículo para contarte porqué.

Objective C

Desde que nació la App Store y todo el ecosistema de apps para el iPhone me ha interesado mucho el diseño y el desarrollo de apps para móvil.

De hecho para mí la aparición del iPhone supuso una revolución en el mundo del desarrollo. De repente era asequible crear y vender aplicaciones en una store, donde el usuario podía comprar tu producto desde su móvil simplemente con pulsar un botón.

Esto que ahora parece algo cotidiano, supuso en aquella época una revolución que hizo de efecto llamada para que diseñadores y desarrolladores eligieran esta plataforma para crear y distribuir sus productos.

Y yo fui uno de ellos.

Recuerdo que una de las cosas que más me costó qué el lenguaje. Objective C al principio asusta, con esos nombre de métodos kilométricos, con esas sintaxis tan especial.
Comencé leyendo libros sobre el lenguaje como los del Big Nerd Ranch,  y otros libros más prácticos, pero cuando realmente aprendí tanto el lenguaje como a desarrollar apps fue en los diferentes cursos de Fernando Rodriguez en Agbo Training.

En aquella época comencé a desarrollar aplicaciones para iOS propias y para terceros, y más tarde formando parte de otros equipos en empresas.

Pero poco a poco mi camino profesional fue abandonando el desarrollo móvil para enfocarme en diseño de producto, diseño orientado a la conversión, WordPress, métricas y estrategia.

Swift

Cuando Swift fue anunciado por Apple, me pilló a medio camino entre la indiferencia y la falta de tiempo.
Hice algún amago por aprenderlo, pero el cambio tan profundo que supuso la versión 1.2 del lenguaje me mostró cual era mi realidad: no tenía tiempo para Swift.

Sin embargo, hace unos meses le di una nueva oportunidad, ya en su versión 3 y lo hice gracias al fantástico y totalmente recomendable curso de Miguel Díaz Rubio y Erik Sebastián de Erice, que puedes conseguir aquí.

Gracias a este curso aprendí las bases de Swift, refresqué la memoria sobre los conceptos de Cocoa Touch y aprendí alguna de la ingente cantidad de novedades de iOS 10.
El curso es una pasada y me permitía afrontar dos aplicaciones que traigo entre manos, pero decidí apostar por React Native.

React y React Native

Llevo meses trabajando con ReactJs, una librería de Javascript de la que ya te he hablado en algún post.
React es una herramienta que me gusta y con la que me siento cómodo, y gracias al conocimiento de React y de Cocoa Touch me animé a adentrarme en el mundo de React Native.

React Native es un framework que usa Javascript y React que permite crear aplicaciones nativas utilizando Javascript y ReactJS.
Tiene además una serie de ventajas que te enumero a continuación y que me han hecho abrazarlo para mis próximos proyectos de apps.

1.- El entorno de desarrollo:

Si has usado Xcode esta escena te resultará familiar: detienes el simulador, haces una pequeña modificación del interfaz, vuelves a lanzar el simulador para ver el cambios, compila, compila, sigue compilando, y 1 minutos después arranca el simulador con el pequeño cambio realizado.

Esto es una pesadilla.
Trabajar con React Native te permite compilar una vez, pero el resto de cambios se actualizan en tiempo real al salvar el archivo. Esto es una auténtica gozada, y hacen que el desarrollo sea mucho más continuo y fluido.

Además, si como a mi, no te gusta Xcode o Android Studio, lo puedes cambiar por el IDE o el editor de textos que prefieras. En mi caso en la actualidad es Atom, y lo tengo totalmente preparado y optimizado para trabajar con React Native, snippets, autocompletado, etc.

Hoy día, me resultaría imposible volver a desarrollar con Xcode.

2.- Código nativo:

Los proyectos de React Native no son una web embebida en una app. React Native no crea web apps como Ionic, Cordova, etc. Sino que genera, en el caso de iOS, un proyecto de Xcode con sus clases, tal y como harías si desarrollaras el proyecto de forma nativa.
Esto me permite abrazar todas las bondades del desarrollo nativo en cuanto a eficiencia y el uso de Cocoa Touch, pero también me permite trabajar con Javascript con componentes de React. Me quedo con lo mejor de ambos mundos.

3.- Javascript y React:

Y este es otro de los motivos de elegir React Native. Y es que llevar meses trabajando con React, hace que la curva de aprendizaje sea casi inexistente. Es un ecosistema en el que me siento cómodo y en el cual me gusta moverme, como por ejemplo, el poder inyectar los estilos de los componentes con Javascript.

4.- Programa una vez, utilízalo en todas partes:

Y otro de los motivos es que el mismo código puedo utilizarlo para crear la aplicación para iOS y Android.
Además, React Native tiene una serie de componentes específicos tanto para iOS como para Android, permitiendo elegir unos u otros en función de en que plataforma se va a renderizar la vista.

Conclusión

Como ves, elegir React Native me aporta una serie de ventajas importantes. ¿Quiero decir con esto que con React Native no hace falta aprender Cocoa Touch o Android? No.
Sin duda saber Cocoa Touch te hace un mejor desarrollador de iOS, pero hoy día, gracias a React Native creo que no es tan necesario como antes.