React Native
React Native
Curso:
Herramientas de Programación Aplicada IV
Investigación:
React Native
Estudiantes:
Avendaño, José
8-905-1113
Grupo:
1IL-143
Segundo Semestre
Sede Panamá, 27 de octubre del 2019
Investigación
Componentes Basicos
View
El componente más fundamental para construir una IU Viewes un contenedor que
admita el diseño con flexbox , style , algunos Handling Touches y controles de
accesibilidad . View se correlaciona directamente con la vista nativa equivalente en
cualquier plataforma donde se está ejecutando React Native, ya sea una UIView,
<div>, android.view, etc.
View está diseñado para estar anidado dentro de otros view y puede tener de 0 a
muchos hijos de cualquier tipo. Los View están diseñados para usarse con
StyleSheet por temas de claridad y rendimiento, aunque también se admiten estilos
en línea.
Text
Es un componente React para mostrar texto. Text admite anidación, diseño y
handling touch.
Image
Es un componente React para mostrar diferentes tipos de imágenes, incluidas
imágenes de red, recursos estáticos, imágenes locales temporales e imágenes del
disco local, como el de la cámara.
Este ejemplo muestra la obtención y la visualización de una imagen del
almacenamiento local, así como una de la red e incluso de los datos proporcionados
en el 'data:' esquema uri.
TextInput
Un componente fundamental para ingresar texto en la aplicación a través de un
teclado. Los accesorios proporcionan la capacidad de configuración para varias
funciones, como la corrección automática, el uso de mayúsculas, el texto de
marcador de posición y diferentes tipos de teclado, como un teclado numérico.
ScrollView
Componente que envuelve la plataforma ScrollView al tiempo que proporciona
integración con el sistema de "responder" de bloqueo táctil.
Tenga en cuenta que ScrollViews debe tener una altura limitada para poder
funcionar, ya que contienen elementos secundarios de altura ilimitada en un
contenedor limitado (a través de una interacción de desplazamiento).
StyleSheet
Una StyleSheet es una abstracción similar a CSS StyleSheets.
Interfaz de Usuario
Button
Un componente de botón básico que debería funcionar bien en cualquier plataforma.
Admite un nivel mínimo de personalización.
Picker
Representa el componente selector nativo en iOS y Android.
Switch
Representa una entrada booleana. Este es un componente controlado que requiere
una onValueChangedevolución de llamada que actualiza el valueaccesorio para
que el componente refleje las acciones del usuario. Si el valueaccesorio no se
actualiza, el componente continuará renderizando el valueaccesorio suministrado
en lugar del resultado esperado de cualquier acción del usuario.
List Views
FlatList
Una interfaz de alto rendimiento para renderizar listas básicas y planas, que admite
las funciones más útiles:
Completamente multiplataforma.
Modo horizontal opcional.
Visibilidad configurable devoluciones de llamada.
Soporte de encabezado.
Soporte de pie de página.
Separador de apoyo.
Tire para actualizar.
Desplazamiento de carga.
Soporte ScrollToIndex.
Soporte de múltiples columnas.
SectionList
Una interfaz de alto rendimiento para renderizar listas seccionadas, que admite las
funciones más útiles:
Completamente multiplataforma.
Visibilidad configurable devoluciones de llamada.
Soporte de encabezado de lista.
Lista de soporte de pie de página.
Elemento separador de apoyo.
Soporte de encabezado de sección.
Soporte separador de secciones.
Datos heterogéneos y soporte de representación de elementos.
Tire para actualizar.
Desplazamiento de carga.
Tiene también componentes para Android y iOS con sus respectivos APIs.
Android
BackHandler
Detecta pulsaciones de botones de hardware para navegación hacia atrás.
DatePickerAndroid
Abre el cuadro de diálogo estándar de selección de fecha de Android.
DrawerLayoutAndroid
Componente React que envuelve la plataforma DrawerLayout(solo Android). El
Drawer (que se usa generalmente para la navegación) se representa con
renderNavigationView y los hijos directos son la vista principal (donde va su
contenido). Inicialmente, la vista de navegación no es visible en la pantalla, pero
puede extraerse desde el lado de la ventana especificada por el drawerPosition y
su ancho puede establecerse mediante el drawerWidth.
PermissionsAndroid
proporciona acceso al nuevo modelo de permisos de Android M. Los llamados
permisos "normales" se otorgan de manera predeterminada cuando la aplicación se
instala siempre que aparezcan AndroidManifest.xml. Sin embargo, los permisos
"peligrosos" requieren un mensaje de diálogo.
ProgressBarAndroid
Se usa para indicar que la aplicación se está cargando o que hay alguna actividad
en la aplicación.
TimePickerAndroid
Abre el cuadro de diálogo estándar de selección de hora de Android.
TimePickerAndroidse ha fusionado con DatePickerIOSy DatePickerAndroiden un
único componente llamado DateTimePicker y se quitará en una versión futura.
ToastAndroid
Esto expone el módulo nativo ToastAndroid como un módulo JS. Esto tiene una
función 'show' que toma los siguientes parámetros:
1. Mensaje de cadena: una cadena con el texto para brindar
2. int duración: la duración del brindis. Puede ser ToastAndroid.SHORT o
ToastAndroid.LONG
También hay una función showWithGravitypara especificar la gravedad del
diseño. Puede ser ToastAndroid.TOP, ToastAndroid.BOTTOM,
ToastAndroid.CENTER.
La función 'showWithGravityAndOffset' agrega la capacidad de especificar el
desplazamiento Estos valores de desplazamiento se traducirán en píxeles.
ToolbarAndroid
Componente React que envuelve el Toolbarwidget solo para Android. Una barra de
herramientas puede mostrar un logotipo, un icono de navegación (por ejemplo,
menú de hamburguesas), un título y subtítulo y una lista de acciones. El título y los
subtítulos se expanden para que el logotipo y los iconos de navegación se muestren
a la izquierda, el título y los subtítulos en el medio y las acciones a la derecha.
iOS
ActionSheetIOS
Mostrar una hoja de acción de iOS. El objeto options debe contener uno o más de
los siguientes elementos:
options (conjunto de cadenas): una lista de títulos de botones (obligatorio)
cancelButtonIndex (int) - índice del botón cancelar en options
destructiveButtonIndex (int) - índice del botón destructivo en options
title (cadena) - un título para mostrar arriba de la hoja de acción
message (cadena) - un mensaje para mostrar debajo del título
anchor (número): el nodo al que debe anclarse la hoja de acción (utilizada
para iPad)
tintColor(cadena): el color utilizado para los títulos de botones no destructivos
La función 'callback' toma un parámetro, el índice basado en cero del elemento
seleccionado.
AlertIOS
Esta obsoleto, el componente se ha trasladado a Alert el cual inicia un cuadro de
diálogo de alerta con el título y el mensaje especificados.
Opcionalmente, proporcione una lista de botones. Al tocar cualquier botón se
activará la devolución de llamada de onPress respectiva y se descartará la alerta.
Por defecto, el único botón será un botón 'Aceptar'.
Esta es una API que funciona tanto en iOS como en Android y puede mostrar alertas
estáticas. Para mostrar una alerta que solicite al usuario que ingrese cierta
información, consulte AlertIOS; ingresar texto en una alerta es común solo en iOS.
DatePickerIOS
Se usa DatePickerIOSpara representar un selector de fecha / hora (selector) en iOS.
Este es un componente controlado, por lo que debe conectarse a la onDateChange
callback y actualizar el date para que el componente se actualice, de lo contrario, el
cambio del usuario se revertirá inmediatamente para reflejar props.date como la
fuente de la verdad.
DatePickerIOS se ha fusionado con TimePickerAndroid y DatePickerAndroid en un
único componente llamado DateTimePicker y se quitará en una versión futura.
ProgressViewIOS
Se utiliza ProgressViewIOS para representar un UIProgressView en iOS.
Otros
ActivityIndicator
Muestra un indicador circular de carga.
Alert
Lanza un dialogo de alerta con un titulo y mensaje especifico.
Animated
Una librería que permite crear animaciones fáciles, fluidas y poderosas.
Clipboard
Proporciona una interfaz para establecer y obtener contenido desde el portapapeles
de iOS y Android.
Dimensions
Proporciona una interfaz para obtener las dimensiones del dispositivo.
KeyboardAvoidingView
Proporciona una vista que se aleja del teclado virtual automáticamente.
Linking
Proporciona una interfaz general para interactuar con enlaces de aplicaciones
entrantes y salientes.
Modal
Proporciona una manera simple de presentar contenido sobre una vista adjunta.
PixelRatio
Proporciona acceso a la densidad de pixeles del dispositivo.
RefreshControl
Este componente se utiliza dentro de una función ScrollView para agregar
extracción para actualizar.
StatusBar
Componente para controlar la barra de estado de la aplicación.
Desventajas
1. En primer lugar, encontraron un problema de inmadurez de la plataforma,
esto lo describieron argumentando que ocurrían ciertos problemas que, en el
desarrollo nativo, eran triviales, pero que en React Native se transformaban
en un problema mayor.
2. Otro de los principales problemas con los que tuvieron que lidiar son
los crashes, que básicamente significa que la aplicación se cerró de manera
inesperada. La complicación que existió con este ítem fue que
estos crashes eran por decirlo “extraños” e irreproducibles, es decir, no era
sencilla su detección y por consecuencia, su corrección.
3. Para finalizar, otro de los problemas técnico que tuvieron con esta tecnología,
fue el de mostrar largas listas, debido a que como la plataforma aún sigue
siendo inmadura, no provee la misma flexibilidad y capacidad que ofrece el
desarrollo nativo. Asimismo, se pueden observar problemas
de performance de la aplicación y la aparición de problemas inesperados,
esto aseverado por AirBnb.
Ventajas
Tiene una curva de aprendizaje relativamente corta en comparación con el
aprendizaje que requieren Objective-C y Java.
Proporciona una mejor experiencia de desarrollador.
La depuración móvil es relativamente fácil debido a que se ha logrado llevar
la depuración web al mundo móvil.
No se necesita volver a compilar una aplicación después de cada cambio de
código menor, sólo con guardar los cambios realizados se puede recargar en
vivo la aplicación.
Utiliza Flexbox (modelo de diseño web CSS3) para mejorar los estilos de las
aplicaciones.
Entre 80% y 90% del código se puede reutilizar entre iOS y Android.
Tiene acceso directo a todas la APIs 7 y views nativas 8 que ofrecen los
sistemas operativos nativos
Desventajas
No es posible visualizar ningún objeto 3D.
No se recomienda para el desarrollo de videojuegos.
El entorno de trabajo es costoso de instalar en cuestión de tiempo.
Poca información a la hora de resolver problemas.
Si se desea desarrollar aplicaciones para iOS debe de ser en un equipo que
corra el sistema operativo del mismo.