Flipper: La Plataforma de Herramientas de Desarrollo Extensible para React Native

Rate this content
Bookmark

¿Eres un desarrollador de React Native? ¿Siempre has deseado el rico ecosistema de herramientas de desarrollo que existe para la web en Chrome y Firefox? Flipper es la plataforma interna y extensible de herramientas de desarrollo móvil de Facebook, utilizada por los desarrolladores móviles que trabajan en Facebook, WhatsApp, Instagram y muchas otras aplicaciones.


Recientemente, el equipo de React Native y Flipper ha estado trabajando arduamente para agregar soporte de primera clase para React Native. Esto significa que ahora se puede monitorear el tráfico y el rendimiento de la red, utilizar las herramientas de desarrollo de React, inspeccionar los registros del dispositivo y la aplicación, e incluso depurar JavaScript, todo ello de manera conveniente utilizando una sola herramienta coherente.


Y lo mejor de todo: Flipper es extensible, ¡así que construyamos nuestro propio complemento mientras lo hacemos!

This talk has been presented at React Summit 2020, check out the latest edition of this React Conference.

FAQ

Flipper es una plataforma de desarrollo de aplicaciones móviles desarrollada en Facebook, usada para inspeccionar y depurar aplicaciones, incluyendo soporte para React Native.

Flipper optimiza el proceso de desarrollo con React Native al proporcionar herramientas para inspeccionar rápidamente cambios en el código y visualizar elementos tanto de React como del lado nativo de la aplicación.

No es necesario utilizar Hermes para usar Flipper, aunque Hermes ofrece beneficios adicionales como herramientas de depuración paso a paso.

No se ha confirmado la compatibilidad de Flipper con Expo, ya que no ha sido probado directamente por el presentador.

Existen dos tipos de complementos para Flipper: complementos genéricos que aplican de manera general a una tecnología, y complementos específicos de la aplicación que se adaptan a servicios o características particulares.

Para extender Flipper con un nuevo complemento, se debe desarrollar código JavaScript para el escritorio y extender la aplicación móvil para interactuar con este, permitiendo la transmisión de datos y eventos entre ambos.

Los complementos de la comunidad, como los que integran ReactorTron o Redux, permiten centralizar herramientas de depuración y diagnóstico en un solo lugar, mejorando la eficiencia del desarrollo.

Michel Weststrate
Michel Weststrate
32 min
17 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Flipper es una plataforma de herramientas de desarrollo extensible para React Native, desarrollada en Facebook, que permite inspeccionar el árbol de desarrollo de React y los elementos nativos. Ofrece complementos para la inspección de la caché de imágenes, la modificación de preferencias y las solicitudes de red. Flipper se puede utilizar para construir complementos específicos de la aplicación e integra con Redux y ReactorTron. La herramienta está siendo sometida a una importante rediseño con nuevas características como el modo oscuro y una biblioteca de componentes estandarizada. Los mantenedores pueden depurar complementos dentro de complementos y hay planes para integrarse con GraphQL.

1. Introduction to Flipper and React Native

Short description:

Bienvenidos a mi charla sobre Flipper, la plataforma de herramientas de desarrollo extensible para React Native. React Native proporciona un ciclo de retroalimentación rápida, optimizando la velocidad de desarrollo. Flipper es una plataforma de desarrollo de aplicaciones móviles desarrollada en Facebook, utilizada por todos nuestros ingenieros móviles. Introdujimos soporte para React Native y les mostraré una demostración rápida. Descarguen Flipper, inicien el emulador y carguen el proyecto. Flipper nos permite inspeccionar el árbol de desarrollo de React y los elementos nativos, realizando cambios si es necesario.

♪ Hola, gente. Bienvenidos a mi charla sobre Flipper, la plataforma de herramientas de desarrollo extensible para, entre otros, React Native. Mi nombre es Michel Estrada y trabajo en Facebook en Flipper.

En Facebook, descubrimos que React Native es una pila de desarrollo increíble para el desarrollo móvil. ¿Por qué? Básicamente, porque proporciona un ciclo de retroalimentación rápida, optimizando el tiempo entre realizar cambios en el código y verlos en la pantalla. Así que eso es genial y es muy importante para tener una buena velocidad de desarrollo.

Pero hay otra pregunta que debemos hacernos, y es ¿qué tan rápido puedes descubrir qué cambio debes hacer? Y ahí es donde entra Flipper. Flipper es una plataforma de desarrollo de aplicaciones móviles desarrollada en Facebook y es utilizada por todos nuestros ingenieros móviles. A principios de este año, introdujimos soporte para React Native. Y les mostraré una demostración rápida de cómo se ve.

Primero, descargaremos Flipper desde nuestro sitio web. Ya omití esta parte porque ya lo tengo instalado previamente. Cuando inicias Flipper, verás que hay un lienzo bastante vacío. Para esta demostración, he preparado una pequeña aplicación en la que mostraremos algunos datos de Bitcoin. Aquí tenemos el código. Es un proyecto de React Native recién generado. El único cambio que haré es habilitar Hermes. Luego, iniciaré el emulador y mi proyecto. Esto lleva un poco de tiempo, pero ya terminamos. Se está cargando ahora y aquí tenemos un proyecto recién creado. Inmediatamente vemos que Flipper tiene mucho contenido. A la izquierda, hay dos secciones que podemos reconocer. La primera sección es nuestra aplicación, en este caso, la aplicación de monedas, y muestra todos los complementos que están conectados a esta aplicación. También vemos complementos conectados al dispositivo en sí, por ejemplo, los registros. En segundo lugar, tenemos esta conexión con el metrobundler en sí, lo que nos permite, por ejemplo, inspeccionar los registros, pero también inspeccionar el árbol de desarrollo de React. Con Flipper, podemos usar directamente las herramientas de desarrollo de React e inspeccionar los diseños. Pero lo que es aún mejor es que como Flipper es una herramienta desarrollada para el desarrollo móvil nativo, significa que también podemos inspeccionar los elementos nativos que son utilizados por el nativo para crear nuestro diseño. Entonces, si usamos el inspector de diseño, podemos inspeccionar un cierto elemento e incluso realizar cambios en él.

2. Explorando Flipper y Construyendo una Aplicación de Bitcoin

Short description:

Agregamos elementos nativos utilizados por React Native y exploramos los complementos disponibles, incluyendo la inspección de la caché de imágenes, la modificación de preferencias y el potente complemento de red. En esta demostración, construiremos una pequeña aplicación que muestra datos de Bitcoin utilizando componentes como vista de monedas y elemento de moneda. Podemos inspeccionar los datos utilizando console.log, pero Flipper proporciona capacidades más avanzadas como nivel de registro, copiar detalles y búsqueda. También podemos inspeccionar directamente las solicitudes de red.

Por ejemplo, si cambio el texto aquí, inmediatamente verás que eso se aplica a lo que está sucediendo en la pantalla. Ahora estamos agregando los elementos nativos utilizados por React Native. Y hay muchos más complementos disponibles de forma predeterminada, como la inspección de la caché de imágenes, ver las preferencias y modificarlas. Y un complemento muy poderoso es el complemento de red. Básicamente, esto te permite inspeccionar todas las solicitudes de red que realiza nuestra aplicación. Y vamos a profundizar un poco más en eso.

Esto es básicamente lo que obtienes de forma predeterminada si inicias Flipper en un proyecto fresco de React Native. Y eso es lo que quiero construir hoy para esta demostración, una pequeña aplicación que muestra datos de Bitcoin como en esta maqueta. Y voy a tomar un atajo y pegar algunos archivos que ya tengo en mi portapapeles. Esto reemplaza básicamente Apps.js con una interfaz de usuario y una lógica que obtiene Bitcoin de un punto final remoto. Y mostramos algunos datos de Bitcoin con sus propios componentes. Así que tenemos este componente de vista de moneda. Obtiene los data y utiliza un efecto. Luego utiliza un flatlist para mapear todos los data y mostrarlo. Luego está este componente de elemento de moneda. Y eso muestra registros mutuos.

Por ejemplo, si tengo una moneda, puedo inspeccionar qué hay dentro. Tenemos rango e ícono, pero ¿qué más hay? Una forma de averiguarlo es usar console.log. Así imprimo los data que recibo. Y echemos un vistazo a Metro Bundler. Ahora veo que está imprimiendo todos los data. Pero puedo ver los mismos data desde Flipper, que es más completo. Así que este es básicamente el mismo registro. Pero al ver esto en Flipper, tenemos más capacidades. Puedo ajustar el nivel de registro. Puedo copiar detalles. Puedo buscar. Así que esto es más poderoso. Y en realidad, ni siquiera necesitamos ese console.log, porque podríamos haber inspeccionado directamente las solicitudes de red que se están enviando. Por ejemplo, puedo inspeccionar una de esas solicitudes de red.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
Elevando el Listón: Nuestro Viaje Haciendo de React Native una Opción Preferida
React Advanced 2023React Advanced 2023
29 min
Elevando el Listón: Nuestro Viaje Haciendo de React Native una Opción Preferida
This Talk discusses Rack Native at Microsoft and the efforts to improve code integration, developer experience, and leadership goals. The goal is to extend Rack Native to any app, utilize web code, and increase developer velocity. Implementing web APIs for React Native is being explored, as well as collaboration with Meta. The ultimate aim is to make web code into universal code and enable developers to write code once and have it work on all platforms.
Llevando los Componentes del Servidor React a React Native
React Day Berlin 2023React Day Berlin 2023
29 min
Llevando los Componentes del Servidor React a React Native
Top Content
React Server Components (RSC) offer a more accessible approach within the React model, addressing challenges like big initial bundle size and unnecessary data over the network. RSC can benefit React Native development by adding a new server layer and enabling faster requests. They also allow for faster publishing of changes in mobile apps and can be integrated into federated super apps. However, implementing RSC in mobile apps requires careful consideration of offline-first apps, caching, and Apple's review process.

Workshops on related topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
Presentando FlashList: Construyamos juntos una lista performante en React Native
React Advanced 2022React Advanced 2022
81 min
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
WorkshopFree
David Cortés Fulla
Marek Fořt
Talha Naqvi
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Cómo construir una animación interactiva de “Rueda de la Fortuna” con React Native
React Summit Remote Edition 2021React Summit Remote Edition 2021
60 min
Cómo construir una animación interactiva de “Rueda de la Fortuna” con React Native
Top Content
Workshop
Oli Bates
Oli Bates
- Introducción - Cleo & nuestra misión- Lo que queremos construir, cómo encaja en nuestro producto & propósito, revisar los diseños- Comenzando con la configuración del entorno & “hola mundo”- Introducción a la animación de React Native- Paso 1: Hacer girar la rueda al presionar un botón- Paso 2: Arrastrar la rueda para darle velocidad- Paso 3: Agregar fricción a la rueda para frenarla- Paso 4 (extra): Agregar hápticos para una sensación inmersiva