View
project

¿Me conviene desarrollar mi app móvil nativa, o con React Native?

Hoy te hablaremos sobre React Native, una aplicación que ha ganado popularidad para desarrollar aplicaciones móviles con una alta calidad de una forma amigable y accesible para todos.

Si estás pensando en desarrollar una aplicación, de seguro habrás escuchado que existe la opción de desarrollarla con código nativo o con alguna tecnología. React Native es un punto intermedio entre ambas, ya que es una tecnología semi-nativa que tiene muchos beneficios, entre los que se encuentran el ahorro de tiempo y costos.

Diferencia entre programación nativa y react native

La diferencia principal entre la programación nativa y React Nativa es que, para la primera, se debe redactar un código específico para cada plataforma en la que se pretenda publicar la aplicación, por lo que debe haber un lenguaje específico para iOS (Swift y Xcode) y otro específico para Android (Java y Android Studio).

Mientras que con React esto no es necesario, con él puedes utilizar un lenguaje único de programación (Java Script) que funciona tanto en iOS como en Android, haciendo que el desarrollo sea más rápido y eficiente.

Características de React Native

Cross-platform

React es una aplicación multiplataforma, debido a que permite crear aplicaciones móviles para iOS y Android y ejecutarlas en diferentes plataformas.

Rendimiento

En cuanto a la velocidad, las aplicaciones producidas con esta aplicación tienen una similar a la de las aplicaciones nativas.

Hot reloading

React cuenta con una función que permite que los desarrolladores realicen cambios en su aplicación en tiempo real sin tener que reiniciar la aplicación o detenerla cada vez que se modifica el código fuente. Por lo que los cambios se ven reflejados inmediatamente.

¿Cómo habilitarla? 

Para habilitarla se debe agregar el siguiente código en el archivo index.js o App.js

Habilitar Hot realoading en React Nativ

Una vez habilitado, los desarrolladores pueden ejecutar cambios en el código fuente de su aplicación, guardar los cambios y ver los cambios en tiempo real en la aplicación sin tener que reiniciar la aplicación. 

Es muy importante que tomes en cuenta que puede presentar problemas como pérdida del estado de la aplicación o corrupción de datos en tiempo de ejecución, por lo que debes probar los cambios de una forma muy cuidadosa antes de implementarlo en la aplicación final.

Comunidad activa

React tiene una gran comunidad de desarrolladores, empresas y organizaciones que trabajan en el desarrollo y la mejora de la plataforma. 

Algunas de las plataformas en línea en las que puedes encontrarlos son: GitHub, Stack Overflow, Reddit, Twitter, entre otros. Ahí podrás obtener respuestas a tus preguntas, compartir conocimientos y colaborar en proyectos de código abierto. Estos grupos organizan eventos, reuniones y conferencias donde los desarrolladores pueden conocerse, compartir sus experiencias y colaborar en proyectos.

Soporte de terceros

Debido a que existe una comunidad tan grande en React, también hay una gran cantidad de bibliotecas y herramientas de terceros que facilita la creación de aplicaciones. Estos proveedores de soporte pueden incluir:

  • Bibliotecas y componentes de terceros: que podrás utilizar para agregar funcionalidades adicionales a sus aplicaciones móviles. Estas bibliotecas y componentes pueden ser empleados para realizar tareas como la integración con plataformas de terceros, la gestión de pagos, la visualización de datos, entre otras.
  • Servicios en la nube: Muchos proveedores de servicios en la nube ofrecen soporte para React Native, lo que permite a los desarrolladores hacer uso de sus servicios en sus aplicaciones móviles. Pueden incluir almacenamiento en la nube, autenticación de usuarios, análisis de datos, entre otros.
  • Herramientas de desarrollo: pueden ayudar a los desarrolladores a mejorar la eficiencia y la calidad de sus procesos de desarrollo. Estas herramientas pueden incluir depuradores, generadores de código, integración continua, entre otros.

Desarrollo ágil

Esta aplicación permite a los desarrolladores adoptar metodologías ágiles de desarrollo de software. Estas metodologías enfatizan la entrega continua de software funcional y valioso, la colaboración entre los miembros del equipo y la respuesta rápida a los cambios en los requisitos del proyecto.

Algunos ejemplos de cómo puede ser utilizado en esta metodología son:

  • Entrega continua: permite a los desarrolladores realizar cambios en la aplicación y ver los resultados de forma inmediata. Por lo que facilita la entrega continua de software funcional e importante al cliente.
  • Integración continua: puede automatizar el proceso de construcción, prueba y entrega de software. Ayuda a reducir los errores y acelera el proceso de entrega, lo que es una práctica clave de la metodología ágil.
  • Desarrollo en equipo: varios desarrolladores pueden trabajar en diferentes partes de la aplicación de forma simultánea, fomentando el trabajo en equipo.
  • Flexibilidad en los requisitos del proyecto: permite que los desarrolladores pueden ejecutar cambios de manera rápida en la aplicación, lo que hace que sea más sencillo responder a los cambios en los requisitos del proyecto.

Elementos de React Native

Componentes 

Dentro de React Native puedes utilizar componentes, y si no estás familiarizado de la programación, el término te resultará un poco abstracto. Los componentes forman parte de la interfaz del usuario (UI), encapsulan funcionalidades y elementos visuales. Son la unidad básica de construcción de una aplicación. Hay dos tipos de ellos, los de clase y función.

Componentes de función

  • Stylesheet: con el que añadiremos los estilos.
  • View: este es el componente más básico sobre el que heredan la mayoría de los demás componentes.
  • Text: con el que se mostrarán los textos.
  • Image: sirve para mostrar imágenes
  • TextInput: proporciona un espacio para que el usuario pueda ingresar texto desde su dispositivo.
  • ScrollView: permite englobar diversos componentes y que los usuarios realicen scroll en la pantalla para visualizarlos
Componente de función de texto

El componente de text básico lo puedes programar de esta forma:

También existe un componente de text personalizado en el que puedes elegir grosor, color, y fuente del texto. En este ejemplo puedes ver como se le aplica estilo al componente subtítulo.

También tienes la oportunidad de crear mensajes personalizados en los que se incluya el nombre del usuario, para generar la variable el nombre se muestra entre llaves {} como se muestra en esta imagen:

Componente de función de estilo

El componente StyleSheet se emplea para definir los estilos de los componentes que utilices tus componentes. Para usarlo necesitas importarlo desde la librería react-native:

Después podrás definir los estilos utilizando el método StyleSheet.create(), que toma un objeto como argumento, donde cada clave es el nombre de un estilo y cada valor es un objeto con las propiedades del estilo, como se muestra a continuación:

En el ejemplo anterior, se definieron dos estilos: contenedor y texto. 

  • El estilo contenedor establece la propiedad flex en 1, establece el color de fondo en blanco y centra su contenido horizontal y verticalmente. 
  • El estilo texto establece el tamaño de la fuente en 20 y el peso de la fuente en negrita.

Para utilizar estos estilos en sus componentes, puede pasar el objeto style a la propiedad style prop como se muestra a continuación:

En este ejemplo se muestra como se ha importado el objeto Estilos desde un archivo independiente y fue utilizado para aplicar estilos a un componente Vista y a un componente Texto. Al componente Vista se le aplicará el estilo contenedor, y al componente Texto se le aplicará el estilo texto.

Componente de función de vista

Se usa para crear contenedores o componentes que actúan como bloques de construcción para la interfaz de usuario. Te ayuda a para definir el diseño, el estilo y la estructura de su aplicación como podemos ver a continuación:

En el ejemplo anterior, se usó el componente "View" como un contenedor para otros componentes. Así mismo se definieron algunos estilos en el componente "View", como "flex", "justifyContent" y "alignItems". Estos estilos se emplean para definir cómo se distribuyen y alinean los componentes dentro del contenedor.

Componente de función de scrollview

Genera una vista de desplazamiento que permite a los usuarios desplazarse a través del contenido que está contenido dentro del ScrollView. Esto es particularmente útil para contenido largo o cuando el espacio en pantalla es limitado. Puedes utilizarlo como se muestra a continuación:

En este ejemplo, el ScrollView permite que el usuario pueda desplazarse a través del contenido.  Al tener una cantidad de contenido mayor a la altura de la pantalla, permite al usuario desplazarse hacia arriba y hacia abajo para ver todo el contenido.

Componente de función de imagen

Este componente es muy útil para mostrar logotipos, iconos y cualquier otro tipo de imagen que desee incluir en su aplicación.

Puedes usarlo de esta manera:

Aquí el componente se usó para mostrar una imagen en la interfaz de usuario de una aplicación. La propiedad "source" para especificar la ubicación de la imagen que deseamos mostrar y la propiedad "style" para definir su tamaño. 

La imagen se ajustará a las dimensiones especificadas en la propiedad "style" si es necesario, pero mantendrá su relación de aspecto original.

Puedes usar la opción "resizeMode" para especificar cómo se ajusta la imagen si su tamaño difiere a la dimensión especificada en el estilo. Las opciones de "resizeMode" incluyen "cover", "contain", "stretch", "center" y "repeat".

Aquí se ha usado la propiedad "resizeMode" con el valor "contain" para que la imagen se ajuste completamente dentro del tamaño especificado en el estilo, manteniendo su relación de aspecto original.

Componente de función de textinput

Se utiliza para crear campos de entrada de texto en la interfaz de usuario de su aplicación. Este componente es muy útil para permitir que los usuarios ingresen texto en su aplicación, como en formularios de registro o búsqueda. Puedes usarlo de esta manera:

Aquí se ha empleado para producir un campo de entrada de texto en la interfaz de usuario de nuestra aplicación. El componente "style" se utilizón  para definir el estilo del campo de entrada de texto y la propiedad "onChangeText" para actualizar el estado del componente cada vez que el usuario ingrese texto. La propiedad "value" se usa para establecer el valor del campo de entrada de texto.

Puedes usar otros atributos, como "placeholder" para mostrar un texto predeterminado en el campo de entrada de texto antes de que el usuario ingrese texto, "maxLength" para establecer la longitud máxima permitida del texto que se puede ingresar, "keyboardType" para especificar el tipo de teclado que se muestra (por ejemplo, numérico, correo electrónico, etc.) y "keyboardType" para especificar el tipo de teclado que se muestra, por ejemplo, numérico, correo electrónico, etc.

En el ejemplo anterior, hemos utilizado varias propiedades adicionales para personalizar aún más nuestro campo de entrada de texto, incluyendo "placeholder" para mostrar un texto predeterminado, "maxLength" para limitar la cantidad de caracteres que se pueden ingresar y "keyboardType" para especificar el tipo de teclado que se muestra en la pantalla.

Esta es solamente una pequeña introducción al mundo de React Native y todo lo que puedes realizar en él con la ayuda de los componentes que te mencioné anteriormente. Sin duda alguna tienes todo lo que necesitas al alcance de tus manos para producir una aplicación y con esta guía debe ser más que suficiente para que empieces a explorar el universo de React.

En BluePixel también desarrollamos aplicaciones con React Native, así que si prefieres que un grupo de expertos lo haga por ti, no dudes en contactarnos en [email protected]

Si quieres saber más sobre temas similares, mantente al pendiente de nuestras redes sociales, en Facebook, Instagram y LinkedIn.