Creado en Facebook y publicado en Febrero de 2015 React Native es un framework para la creación de aplicaciones nativas para iOS y Android. Para programar aplicaciones usando React Native usamos como lenguaje de programación JavaScript, en lugar de Swift, JAVA u otros lenguajes y por el resto usamos React para la creación de la interfaz del usuario.
A diferencia de otras soluciones como Ionic, Cordova o Phonegap, React Native no utiliza WebViews ni produce HTML o CSS, es decir, no usa tecnologías web para la interfaz de tu aplicación. La pregunta es, si no usa estas tecnologías cómo es que podemos usar React y JavaScript para la creación de aplicaciones nativas.
Saber que las aplicaciones de React Native no son 100% nativas, es el primer paso para entender qué está sucediendo internamente para que una app escrita en JavaScript se ejecute de manera “nativa” entre comillas.
Las aplicaciones de React Native se componen de 3 elementos principalmente:
- Código nativo: Un proyecto de React Native puede contener código nativo en combinación con el código de JavaScript, es decir, si estás desarrollando una app para Android podrías tener código de JAVA aparte del proyecto de JavaScript.
- JavaScriptCore VM: Las aplicaciones de ReactNative utilizan JavaScriptCore, el motor de ejecución de JavaScript de Safari para ejecutar el código de JavaScript de nuestra app, esto significa que el código que escribas de JavaScript no será compilado, será ejecutado como JavaScript dentro de tu app, por eso decimos que no es 100% nativo, porque internamente hay una máquina virtual que ejecuta el código de JavaScript.
- React Native Bridge: Como su nombre lo dice, el React Native Bridge es un puente que se encarga de comunicar el código de la máquina virtual de JavaScript con el código nativo y las APIs nativas de la plataforma en la que se ejecuta nuestra aplicación.
Quizás hayas escuchado de un concepto muy importante de las aplicaciones de React, el Virtual DOM. El Virtual DOM es una representación virtual, como su nombre indica, de cómo se deben mostrar los componentes en la interfaz, de cómo se hará el render.
En los navegadores web, el virtual DOM se representa a través del Document Object Model con elementos de HTML, la ventaja de que el Virtual DOM sea una capa intermedia entre el código y la representación final de nuestra app, permite que modifiquemos dicha representación basado en la descripción del virtual DOM, piensa en el Virtual DOM como una especificación textual de cómo debe verse la app, digamos, habrá un text input aquí, un botón de color rojo allá, etc. Después esta especificación debe trasladarse a los componentes de la plataforma donde se verá, de nuevo, en el caso de una página web esto significa elementos de HTML.
Para desarrollar ReactNative se implementa un conector que tomará la descripción del Virtual DOM y basado en ésta, mandará a llamar APIs nativas de la plataforma ya sea iOS o Android y representará el DOM aprovechando dichas APIs Nativas. Esto significa que por ejemplo cuando en React Native mandes a llamar el elemento View, el conector verá cómo traducirlo a Android y cómo traducirlo a alguna API nativa de iOS.
En términos generales esto es y así funciona React Native, continuemos.
-
Módulo 1 | 5 clases
Introducción
expand_more-
play_circle_outline
Clase 1
Presentación del curso de React Native
-
play_arrow
Clase 2
Qué es React Native
-
play_circle_outline
Clase 3
Conocimientos Previos para el curso de React Native
-
play_circle_outline
Clase 4
Desarrollo multiplataforma en React Native
-
play_circle_outline
Clase 5
Proyecto del curso
-
-
Módulo 2 | 4 clases
Configuración del entorno para Windows
expand_more -
Módulo 3 | 3 clases
Configuración del entorno para MacOS
expand_more -
Módulo 4 | 3 clases
Configurando el proyecto
expand_more -
Módulo 5 | 6 clases
Autenticación de usuarios
expand_more-
play_circle_outline
Clase 1
Configurar Firebase Auth
-
play_circle_outline
Clase 2
Mi primera vista
-
play_circle_outline
Clase 3
Interactividad con el formulario
-
play_circle_outline
Clase 4
Registro de usuarios
-
play_circle_outline
Clase 5
Iniciar sesión
-
play_circle_outline
Clase 6
Uso de funciones asíncronas
-
-
Módulo 6 | 6 clases
Navegación
expand_more-
play_circle_outline
Clase 1
React Navigation
-
play_circle_outline
Clase 2
Configurar React Navigation
-
play_circle_outline
Clase 3
StackNavigator y AppContainer
-
play_circle_outline
Clase 4
Movernos entre screens
-
play_circle_outline
Clase 5
SwitchNavigator para autenticación
-
play_circle_outline
Clase 6
Validar usuario con Firebase
-
-
Módulo 7 | 4 clases
Layout
expand_more -
Módulo 8 | 8 clases
Material Design y Theming
expand_more-
play_circle_outline
Clase 1
Instalar React Native Paper
-
play_circle_outline
Clase 2
Controles de formulario
-
play_circle_outline
Clase 3
Stylesheets
-
play_circle_outline
Clase 4
Tema del UI con Paper
-
play_circle_outline
Clase 5
Personalizar el tema
-
play_circle_outline
Clase 6
Configurar el AppBar
-
play_circle_outline
Clase 7
Iconos en el Appbar
-
play_circle_outline
Clase 8
Theming y AppBar
-
-
Módulo 9 | 6 clases
Redux
expand_more -
Módulo 10 | 7 clases
Almacén de datos con Firestore
expand_more-
play_circle_outline
Clase 1
Configurar el módulo de Firestore
-
play_circle_outline
Clase 2
Guardar usuario creado en Firestore
-
play_circle_outline
Clase 3
Pantalla para crear eventos
-
play_circle_outline
Clase 4
Diseño de la base de datos para eventos
-
play_circle_outline
Clase 5
Obtener al usuario autenticado para redux
-
play_circle_outline
Clase 6
Crear eventos
-
play_circle_outline
Clase 7
Consultar eventos
-
-
Módulo 11 | 5 clases
Colecciones y listas
expand_more -
Módulo 12 | 14 clases
Proyecto de Intercambios de Regalo
expand_more-
play_circle_outline
Clase 1
Pantalla individual del evento
-
play_circle_outline
Clase 2
Seleccionar fecha con DatePicker
-
play_circle_outline
Clase 3
Configurar lectura de contactos y permisos
-
play_circle_outline
Clase 4
Solicitar permisos en Android
-
play_circle_outline
Clase 5
Consultar contactos
-
play_circle_outline
Clase 6
Mostrar los contactos
-
play_circle_outline
Clase 7
Agregar contactos al evento
-
play_circle_outline
Clase 8
Búsqueda de contactos
-
play_circle_outline
Clase 9
Mostrar información del evento e invitados
-
play_circle_outline
Clase 10
Generar amigos secretos
-
play_circle_outline
Clase 11
Asignar parejas de regalo
-
play_circle_outline
Clase 12
Mostrar amigo secreto
-
play_circle_outline
Clase 13
Avatares por defecto
-
play_circle_outline
Clase 14
Detalles de UI con el amigo secreto
-