Módulos nativos para React-Native con Go (1/4)
Tags: reactnative, go, crossplatform
Published: 2019-11-21 13:17:25

---
title: Módulos nativos para React-Native con Go (1/4)
published: true
description: Desarrollar módulos nativos reutilizables
tags: react-native, golang, crossplatform
cover_image: https://www.sitepen.com/blog/wp-content/uploads/2018/12/go_blog3.png
series: Módulos nativos para React-Native con Go
---

![I'm back boiz](https://media.giphy.com/media/l0ExuiqMllbZywd8s/giphy.gif)

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](https://media.giphy.com/media/ful6IbWkBsVhe/giphy.gif)

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](#capitulo-1)
* [Creación del primer módulo con Go](https://dev.to/x0s3/modulos-nativos-para-react-native-con-go-2-4-jjk)
* 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.

![Al ataker!](https://media.giphy.com/media/l3dj09hpsfuYkijDi/giphy.gif)

### Toma de contacto y motivación <a name="capitulo-1"></a>

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!!](https://media.giphy.com/media/lCbSAbRrFEfkY/giphy.gif)

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](https://github.com/x0s3/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...](https://media.giphy.com/media/elPiadNl05XWg/giphy.gif)