Módulos nativos para React-Native con Go (1/4)
x0s3
Posted on November 21, 2019
Pues sí gente, he vuelto!
Tenía ya ganas de volver a escribir algún post y este tema la verdad que me gustaría compartirlo con todos vosotros 😄
La intención de esta serie de posts es ir de "0 to hero" en el desarrollo de módulos nativos y explicar un poco sobre el futuro de los módulos nativos de RN 🤓
La idea principal es separar por partes cada paso y digerir poco a poco todo sin que sea un tocho que ni Los Pilares de la Tierra:
Contenido previsto
- Toma de contacto y motivación
- Creación del primer módulo con Go
- Unificar y llamar desde RN nuestro primer módulo, bridge(https://dev.to/x0s3/modulos-nativos-para-react-native-con-go-3-4-40o7)
- Unificar y llamar desde RN nuestro primer módulo (PARTE 4 JSI/TurboModules 🙄 WIP)
Sin más preámbulos 'amos al lío.
Toma de contacto y motivación
En esta introducción al gran camino del desarrollo de módulos para RN con Go, voy a dar bajo mi punta de vista las ventajas que tiene:
- Compatibilidad con Android y iOS con el mismo código base
- Mucho mas sencillo que C++
- Ahorras tiempo desarrollando la misma funcionalidad
- Portabilidad a otras plataformas/entornos tales como Node.js o WASM 😜
- Ser capaces de reutilizar ese módulo para futuras apps con diferentes frameworks como Flutter, NativeScript, etc.
- Dar la bienvenida a las librerías de Go ya que podremos usarlas 🤩
- Foco de errores y tests en un único código fuente
Por desgracia no todo son ventajas también hay que mencionar las desventajas o los pequeños problemas que puedes encontrar:
- Actualmente la compatibilidad de tipos entre Go y Java/Objc no es muy amplia aún (ya explicaré en otro post o quizás en la parte 4 como podemos llegar a solventar este "problemilla")
- En Android tendremos que pasar por un nuevo bridge (NDK)
- Añadimos complejidad al proyecto
- El tema debug quizás se hace algo mas complicado de lo normal
- Tenemos que saber Go
Y ahora os preguntaréis ¿Qué tiene que ver esto con React-Native?
Pues nada la verdad, pero si que nos podemos beneficiar y se podría decir que podemos desarrollar nuestra app ¿x4 de rápido? 🤔
Básicamente nos ahorramos el tener que aprender Objc o Java (o ambos) para poder llegar a tener nuestras apps a la par en tema de funcionalidades nativas, ya sean algoritmos complejos que requieran alto rendimiento, compartir lógica de negocio o simplemente queremos beneficiarnos de alguna librería ya creada con Go.
La verdad que estoy bastante contento y sorprendido lo rápido que se puede llegar a realizar las cosas haciendo uso de Go con RN, sin ir más lejos tengo por aquí una app que las vistas son RN y todo lo demás funciona bajo un módulo de Go (la verdad que me he quitado un peso de encima al no tener que programar en Objc 😂) Repo ItBooks
Creo que lo podemos ir dejando por aquí de momento, una breve chapa, siento que en este post solo sea soltar "rollo-rollo" pero era algo necesario, los próximos serán mejores!!
Posted on November 21, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.