Fecha de publicación

Módulos nativos para React-Native con Go (1/4)

Autores

I'm back boiz

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 🤓

Zero to Hero

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

Sin más preámbulos 'amos al lío.

Al ataker!

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? 🤔

FAST AND FURIOUS RN!!

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!!

O no...