Saltar al contenido principal

55 publicaciones etiquetadas con "announcement"

Ver todas las etiquetas

0.36: Headless JS, la API del teclado y más

· 3 min de lectura
Héctor Ramos
Héctor Ramos
Former Developer Advocate @ Facebook
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Hoy lanzamos React Native 0.36. Sigue leyendo para conocer las novedades.

Headless JS

Headless JS permite ejecutar tareas en JavaScript mientras tu aplicación está en segundo plano. Puede usarse, por ejemplo, para sincronizar datos nuevos, gestionar notificaciones push o reproducir música. Por ahora, solo está disponible en Android.

Para comenzar, define tu tarea asíncrona en un archivo dedicado (ej. SomeTaskName.js):

module.exports = async taskData => {
// Perform your task here.
};

Luego, registra tu tarea en AppRegistry:

AppRegistry.registerHeadlessTask('SomeTaskName', () =>
require('SomeTaskName'),
);

Usar Headless JS requiere escribir código nativo Java para iniciar el servicio cuando sea necesario. ¡Consulta nuestra nueva documentación de Headless JS para aprender más!

La API del teclado

Ahora es más fácil trabajar con el teclado en pantalla usando Keyboard. Puedes escuchar eventos nativos del teclado y responder a ellos. Por ejemplo, para ocultar el teclado activo, simplemente llama a Keyboard.dismiss():

import {Keyboard} from 'react-native';

// Hide that keyboard!
Keyboard.dismiss();

División animada

React Native ya admitía combinar valores animados mediante suma, multiplicación y módulo. Con la versión 0.36, ahora es posible combinar valores animados mediante división. Hay casos donde un valor animado necesita invertir otro valor animado para cálculos. Por ejemplo, al invertir una escala (2x --> 0.5x):

const a = Animated.Value(1);
const b = Animated.divide(1, a);

Animated.spring(a, {
toValue: 2,
}).start();

b seguirá entonces la animación de resorte de a y producirá el valor de 1 / a.

El uso básico es así:

<Animated.View style={{transform: [{scale: a}]}}>
<Animated.Image style={{transform: [{scale: b}]}} />
<Animated.View>

En este ejemplo, la imagen interna no se deformará porque la escala del elemento padre se cancela. Si quieres aprender más, consulta la guía de animaciones.

Barras de estado oscuras

Se ha añadido un nuevo valor barStyle a StatusBar: dark-content. Con esto, ahora puedes usar barStyle tanto en Android como en iOS. El comportamiento será:

  • default: Usa el valor predeterminado de la plataforma (claro en iOS, oscuro en Android).

  • light-content: Barra de estado clara con texto e iconos negros.

  • dark-content: Barra de estado oscura con texto e iconos blancos.

...y más

Esto es solo una muestra de los cambios en 0.36. Consulta las notas de lanzamiento en GitHub para ver la lista completa de nuevas funciones, correcciones de errores y cambios importantes.

Puedes actualizar a la versión 0.36 ejecutando estos comandos en la terminal:

$ npm install --save react-native@0.36
$ react-native upgrade

Hacia una mejor documentación

· 5 min de lectura
Kevin Lacker
Engineering Manager en Facebook
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Parte de una gran experiencia para desarrolladores es contar con una excelente documentación. Crear buenos documentos requiere mucho: la documentación ideal debe ser concisa, útil, precisa, completa y atractiva. Recientemente hemos trabajado arduamente para mejorar la documentación basándonos en sus comentarios, y queremos compartir algunas de las mejoras que hemos implementado.

Ejemplos integrados

Cuando aprendes una nueva biblioteca, lenguaje de programación o framework, hay un hermoso momento en que escribes un poco de código, lo pruebas, ves si funciona... y realmente funciona. Has creado algo real. Queríamos llevar esa experiencia visceral directamente a nuestra documentación. Así:

import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';

class ScratchPad extends Component {
render() {
return (
<View style={{flex: 1}}>
<Text style={{fontSize: 30, flex: 1, textAlign: 'center'}}>
Isn't this cool?
</Text>
<Text style={{fontSize: 100, flex: 1, textAlign: 'center'}}>
👍
</Text>
</View>
);
}
}

AppRegistry.registerComponent('ScratchPad', () => ScratchPad);

Creemos que estos ejemplos integrados, que usan el módulo react-native-web-player con ayuda de Devin Abbott, son una excelente forma de aprender los fundamentos de React Native. Hemos actualizado nuestro tutorial para nuevos desarrolladores de React Native para usarlos siempre que sea posible. Échale un vistazo: si alguna vez has sentido curiosidad por ver qué pasaría si modificas solo un fragmento del código de ejemplo, esta es una forma genial de experimentar. Además, si estás construyendo herramientas para desarrolladores y quieres mostrar muestras en vivo de React Native en tu sitio, react-native-web-player puede simplificarlo.

El motor central de simulación lo proporciona el proyecto react-native-web de Nicolas Gallagher, que permite mostrar componentes de React Native como Text y View en la web. Explora react-native-web si te interesa crear experiencias móviles y web que compartan gran parte de la base de código.

Guías mejoradas

En algunas partes de React Native existen múltiples formas de hacer las cosas, y hemos recibido comentarios de que podríamos ofrecer mejores orientaciones.

Tenemos una nueva guía de Navegación que compara los diferentes enfoques y recomienda qué deberías usar: Navigator, NavigatorIOS, NavigationExperimental. A mediano plazo, estamos trabajando para mejorar y consolidar esas interfaces. A corto plazo, esperamos que esta guía mejorada facilite tu trabajo.

También tenemos una nueva guía sobre manejo de toques que explica conceptos básicos para crear interfaces similares a botones, y un resumen breve de las diferentes formas de manejar eventos táctiles.

Otra área en la que trabajamos es Flexbox. Esto incluye tutoriales sobre cómo manejar diseño con Flexbox y cómo controlar el tamaño de componentes. También incluye una lista poco glamorosa pero útil de todas las props que controlan el diseño en React Native.

Comenzando

Al comenzar a configurar un entorno de desarrollo de React Native en tu máquina, necesitas instalar y configurar varios elementos. Es difícil que la instalación sea una experiencia divertida y emocionante, pero al menos podemos hacerla lo más rápida e indolora posible.

Creamos un nuevo flujo de Comenzando que te permite seleccionar tu sistema operativo de desarrollo y tu sistema operativo móvil desde el principio, proporcionando un lugar conciso con todas las instrucciones de configuración. También revisamos el proceso de instalación para garantizar que todo funcione y que cada punto de decisión tenga una recomendación clara. Tras probarlo con nuestros inocentes compañeros, estamos seguros de que es una mejora.

También trabajamos en la guía para integrar React Native en aplicaciones existentes. Muchas de las aplicaciones más grandes que usan React Native, como la propia aplicación de Facebook, construyen parte de la app con React Native y otra parte con herramientas de desarrollo convencionales. Esperamos que esta guía facilite que más personas puedan crear aplicaciones de esta manera.

Necesitamos tu ayuda

Tu retroalimentación nos indica en qué debemos enfocarnos. Sé que algunas personas leerán esta publicación y pensarán: "¿Mejor documentación? Pfff. ¡La documentación de X sigue siendo deficiente!". Eso es genial, necesitamos esa energía. La mejor manera de darnos feedback depende del tipo de comentario.

Si encuentras un error en la documentación, como descripciones inexactas o código que no funciona, crea un issue. Etiquétalo como "Documentation" para que sea más fácil dirigirlo a las personas adecuadas.

Si no hay un error específico, pero algo en la documentación es fundamentalmente confuso, no es adecuado para un issue de GitHub. En su lugar, publica en Canny sobre el área de la documentación que necesita mejoras. Esto nos ayuda a priorizar cuando realizamos trabajos más generales como la redacción de guías.

¡Gracias por leer hasta aquí y gracias por usar React Native!

React Native: Un año en retrospectiva

· 2 min de lectura
Martin Konicek
Ingeniero de Software en Facebook
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Ha pasado un año desde que hicimos open-source de React Native. Lo que comenzó como una idea con un puñado de ingenieros es ahora un framework utilizado por equipos de producto en Facebook y más allá. Hoy en F8 anunciamos que Microsoft está llevando React Native al ecosistema Windows, permitiendo a los desarrolladores crear aplicaciones React Native para PC, teléfonos y Xbox con Windows. También proporcionará herramientas y servicios de código abierto como una extensión de React Native para Visual Studio Code y CodePush para ayudar a los desarrolladores a crear aplicaciones React Native en la plataforma Windows. Además, Samsung está desarrollando React Native para su plataforma híbrida, lo que permitirá a los desarrolladores crear aplicaciones para millones de SmartTVs, dispositivos móviles y wearables. También lanzamos el Facebook SDK para React Native, que facilita a los desarrolladores incorporar funciones sociales de Facebook como Login, Sharing, App Analytics y Graph APIs en sus aplicaciones. En un año, React Native ha cambiado la forma en que los desarrolladores construyen aplicaciones en todas las plataformas principales.

Ha sido un viaje épico, pero apenas estamos comenzando. Aquí repasamos cómo React Native ha crecido y evolucionado desde que lo hicimos open-source hace un año, algunos desafíos que enfrentamos en el camino y lo que esperamos de cara al futuro.

Este es un extracto. Lee el resto de la publicación en Facebook Code.

React Native para Android: Cómo construimos la primera aplicación React Native multiplataforma

· 2 min de lectura
Ingeniero de Software en Facebook
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

A principios de este año, presentamos React Native para iOS. React Native lleva al mundo móvil lo que los desarrolladores ya conocen de React en la web —componentes de UI declarativos e independientes y ciclos de desarrollo rápidos— manteniendo la velocidad, fidelidad y experiencia de aplicaciones nativas. Hoy nos complace anunciar React Native para Android.

En Facebook llevamos usando React Native en producción más de un año. Casi exactamente hace un año, nuestro equipo comenzó a desarrollar la aplicación Ads Manager. Nuestro objetivo era crear una nueva aplicación que permitiera a los millones de anunciantes en Facebook gestionar sus cuentas y crear anuncios desde cualquier lugar. El resultado fue no solo la primera aplicación completamente React Native de Facebook, sino también la primera multiplataforma. En esta publicación, compartiremos cómo construimos esta aplicación, cómo React Native aceleró nuestro desarrollo y las lecciones aprendidas.

Este es un extracto. Lee la publicación completa en Facebook Code.

React Native: Llevando técnicas web modernas a móviles

· 3 min de lectura
Tom Occhino
Gerente de Ingeniería en Facebook
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Presentamos React al mundo hace dos años, y desde entonces ha experimentado un crecimiento impresionante, tanto dentro como fuera de Facebook. Hoy en día, aunque nadie está obligado a usarlo, los nuevos proyectos web en Facebook comúnmente se construyen usando React de una forma u otra, y está siendo ampliamente adoptado en la industria. Los ingenieros eligen usar React todos los días porque les permite dedicar más tiempo a centrarse en sus productos y menos tiempo luchando con su framework. Sin embargo, no fue hasta que llevábamos un tiempo construyendo con React que empezamos a entender qué lo hace tan poderoso.

React nos obliga a descomponer nuestras aplicaciones en componentes discretos, cada uno representando una única vista. Estos componentes facilitan la iteración en nuestros productos, ya que no necesitamos mantener todo el sistema en nuestra cabeza para hacer cambios en una parte del mismo. Sin embargo, lo más importante es que React envuelve la API mutativa e imperativa del DOM con una declarativa, lo que eleva el nivel de abstracción y simplifica el modelo de programación. Lo que hemos descubierto es que cuando construimos con React, nuestro código es mucho más predecible. Esta previsibilidad hace que podamos iterar más rápidamente con confianza, y nuestras aplicaciones son mucho más confiables como resultado. Además, no solo es más fácil escalar nuestras aplicaciones cuando están construidas con React, sino que también hemos descubierto que es más fácil escalar el tamaño de nuestros equipos.

Junto con el ciclo de iteración rápida de la web, hemos podido construir algunos productos increíbles con React, incluyendo muchos componentes de Facebook.com. Además, hemos construido frameworks asombrosos en JavaScript sobre React, como Relay, que nos permite simplificar enormemente la obtención de datos a gran escala. Por supuesto, la web es solo una parte de la historia. Facebook también tiene aplicaciones ampliamente utilizadas para Android e iOS, que están construidas sobre pilas tecnológicas propietarias y disjuntas. Tener que construir nuestras aplicaciones sobre múltiples plataformas ha bifurcado nuestra organización de ingeniería, pero eso es solo una de las cosas que hace difícil el desarrollo de aplicaciones móviles nativas.

Este es un extracto. Lee el resto de la publicación en Facebook Code.