Contenido: Este masterclass está dirigido a desarrolladores principiantes que tienen una aplicación web existente o están interesados en el desarrollo móvil. Repasaremos:- ¿Qué es Capacitor?- ¿Cómo se compara con otras soluciones multiplataforma?- Usando Capacitor para construir una aplicación nativa utilizando tu código web existente- Organizando nuestra aplicación para su distribución en tiendas de aplicaciones móviles con convenciones de nombres, iconos, pantallas de inicio y más
Panel Discussion: Write Once, Render Anywhere
QnA
Reflexiones sobre el desarrollo de JavaScript y React
Taz Singh, desarrollador experimentado de JavaScript, recuerda las primeras dificultades con JavaScript para videojuegos. Transicionó al desarrollo de React después de un escepticismo inicial. Exploró React Native para el desarrollo de aplicaciones móviles y React Native web.
Entonces, como me presentó Nathaniel, soy Taz Singh, y un poco sobre mí, he estado escribiendo JavaScript durante 25 años. Vaya, eso es mucho, mucho, mucho tiempo. En aquel entonces estaba tratando de hacer un videojuego, y pensé que JavaScript era solo scripting en Java para hacer un videojuego, así que imagina mi sorpresa cuando ni siquiera podía hacer eso. Bueno, resulta que hoy en día sí se puede, ¿verdad?
Muchos años después, estaba en JSConf US 2013 viendo cómo se anunciaba React por primera vez, y de hecho los abucheamos a todos fuera del escenario. ¿Puedes creer la basura que estaban mostrando en ese entonces? Quiero decir, mezclando tu HTML con tu JavaScript, ¿en qué estaban pensando, verdad? Es una locura. Bueno, para mi sorpresa, lo probé y me convenció. Volví un año después y ellos también estaban allí y me encantó, y desde entonces he sido un desarrollador de React.
Pero aún así, no podías construir una aplicación móvil. Así que volví de nuevo y muchos años después lanzaron React Native, finalmente podía construir una aplicación móvil con JavaScript y React, lo cual era súper genial, pero entonces, ¿cómo hago para que eso funcione en la web? ¿Verdad? Loco. Pasé mucho tiempo trabajando en React Native web open source, optimizando el feed de Twitter desde un contexto de open source, todo eso está construido usando React Native en la web, dato curioso, mucho si lo sabías. Así que hoy estoy muy feliz de estar aquí en el escenario con algunas de estas personas encantadoras.
Discussion on React, Linx, and Shared Experiences
Presentando a Nicola Corti, Jorge y Swan de los equipos de React. Swan cuestionado sobre el cambio de React a Linx. Discusión sobre React, Linx y experiencias compartidas.
¿Puedo presentar a Nicola Corti del equipo central de React, Jorge del equipo de React también en Meta y Swan de Linx en ByteDance. Tengo mis notas aquí. Genial. Bueno, es un placer estar en el escenario con todos ustedes hoy.
Así que mi primera pregunta aquí, es en realidad para Swan. Swan, ¿cómo te atreves? ¿Cómo te atreves a trabajar en el equipo central de React también? Hacer todo este trabajo increíble, hacer todas estas cosas que amo y que he estado usando durante tanto tiempo, y ¿cómo te atreves a ir a trabajar en algo tan bueno como Linx ahora? ¿Has oído hablar de la fatiga de JavaScript? ¿Voy a tener que reescribir toda mi aplicación ahora?
Quiero decir, todo esto, 25 años, tengo que reescribir todo. ¿Cómo te atreves, Swan? Sí, está bien. ¿Estás seguro? Sí, sí. Si quieres, puedo sujetarlo, podemos golpearlo. No, no, no, amamos Linx. ¿Amas Linx? Sí. ¿Está bien? Sí. ¿Seguro? Uh-huh. Bien, genial. Por cierto, tengo la misma sudadera con capucha. ¿Y de dónde es la sudadera? Creo que es de, la conseguí de Eli. No estuve en el evento donde se dio esta camiseta, pero... ¿También conseguiste la tuya de Eli? Sí.
Transition to Linx and React Native Experiences
Discutiendo la transición de React a Linx y experiencias con React Native.
Pero cuéntame más sobre Linx. Cuéntame más sobre tu experiencia de trabajar en React a ahora construir Linx. ¿Puedes contarme sobre ese viaje? Bueno, es una larga historia, pero voy a contar la historia resumida. Antes de unirme a Invitus, Linx existía, pero no usaba React. Y ahora usa React. Así que, en cierto sentido, en realidad estoy difundiendo React a más tecnologías multiplataforma. Genial.
Está bien, está bien. Creo que te has librado de esa. Bien hecho, bien hecho, Xuan. Pero quiero decir, legítimamente, se ve tan bien, y se ve tan bien, y felicitaciones por todo lo que has construido. Si no lo has visto, para aquellos que están viendo el video, definitivamente revisen su charla sobre Linx UI. Es profundamente, profundamente impresionante, y lo digo como alguien que ama React Native. Y fue profundamente, profundamente, profundamente impresionante. Así que felicitaciones. Gracias.
Pero sí, hablando más sobre React Native, supongo que cuéntame un poco más sobre ustedes. Sí, así que me uní al equipo, creo, hace cinco años. No sé, para aquellos de ustedes que conocen React Native, probablemente hayan oído hablar de la nueva arquitectura. Y ese es el primer proyecto en el que trabajé. Fue divertido porque básicamente cuando me uní al equipo, no tenía idea sobre React, no tenía idea sobre React Native. Era un ingeniero de ingeniería, y me dijeron, como, sí, el equipo ha estado trabajando en esto llamado la nueva arquitectura, y nos encantaría que lo implementaras en open source.
Challenges and Successes at Meta
Discutiendo los desafíos y éxitos en el envío de la nueva arquitectura en Meta, incluyendo la adopción de React Native y las experiencias de los miembros del equipo.
Y yo estaba como, está bien, esto suena divertido. Y luego comencé a investigarlo. Y luego, después de un mes, estaba como, esto va a ser una tragedia. Así que, quiero decir, en Meta tenemos esta cultura de, ya sabes, construir rápido. Y luego, eventualmente, como, el equipo de React realmente quiere enviar cosas a open source. Y a veces, debido a lo complejo que es nuestra base de código, preparar las cosas para open source no es tan fácil.
Así que, sí, básicamente mi carrera en Meta ha sido, como, 90% definida por enviar la nueva arquitectura. Pero lo genial es que realmente lo enviamos. Ahora, es la única arquitectura para React Native desde React Native 82. Escuchamos muchas historias de, como, Shopify, y Coinbase, y muchas otras grandes empresas usándolo en producción y obteniendo muchas mejoras de rendimiento. Así que, sí, ese es mi viaje en Meta, diría yo. ¿Y tú, Jorge?
Sí. Me uní a Meta hace unos cuatro años. Originalmente estaba trabajando en laboratorios de realidad en gafas de realidad aumentada, lo cual, créelo o no, muchas cosas allí están construidas con React Native. Y en algún momento, alguien del equipo de React se acercó a mí y me dijo, oye, ¿quieres venir y ayudarnos a construir estas cosas? Fui ingeniero de iOS toda mi carrera. Así que, escuché React, escuché React Native, y estaba como, no sé, tal vez. Y cuanto más lo investigaba, más tiempo pasaba con el equipo, más investigaba las herramientas y todo lo que estaba disponible, estaba como, sí, estoy convencido. Así que me uní hace unos dos años.
Navigating Open Source Challenges
Discutiendo los desafíos y la importancia de la defensa del código abierto y la alineación de las prioridades internas con el crecimiento del ecosistema externo en grandes empresas tecnológicas como Meta y ByteDance.
Mi equipo ha estado trabajando principalmente en el lado de la experiencia del desarrollador, así que React Native dev tools, React dev tools, Metro Bundler, un montón de la infraestructura de JavaScript en Meta. Y también ayudo a Nico y Ricardo en muchos de los frentes de código abierto. Así que, sí, ha sido todo un viaje y bastante divertido. Sí, él es mi gerente, así que sé amable con él. Entonces, solo dirijo mis quejas a ti. Sí, sí.
Sí, exactamente. Eso es increíble. Así que supongo que todos ustedes trabajan en grandes empresas tecnológicas, enviando lo que están construyendo internamente también como código abierto. Entonces, ¿pueden contarme un poco más sobre cómo piensan sobre eso? Como, ¿escuchan... Están escuchando a la comunidad cuando están construyendo cosas, pero también están construyendo cosas internamente también. Como, ¿pueden contarme sobre cómo manejan eso o cómo piensan sobre eso? Creo que el mayor desafío para mí ha sido básicamente ajustar mi narrativa de una manera que el liderazgo entienda el valor del código abierto. Suena bastante político, en cierto sentido, pero básicamente, estoy profundamente apasionado por el código abierto. He estado haciendo código abierto toda mi vida, incluso antes de React.
Hubo uno de los argumentos donde dije, como, me uní a Meta, Facebook, en ese entonces, pero quiero hacer código abierto. Así es como llegué al equipo de React. Pero eventualmente, a medida que subes en la cadena, el valor del código abierto se vuelve realmente borroso, ¿sabes? Y luego, en algún momento, como, los gerentes, especialmente aquellos que no están tan expuestos a hacer código abierto y estar en contacto con la comunidad, podrían pensar, como, ¿por qué estamos incluso gastando tiempo en abrir esto, sabes? Así que gran parte de mi trabajo es realmente explicar a esos gerentes y directores más arriba, como, ¿cuál es el valor del trabajo que estamos haciendo? Lo que obtenemos de la comunidad. ¿Por qué es importante estar comprometido? Así que sí, ese es el mayor desafío para mí. Sí.
Strategic Alignment for Open Source Growth
Discutiendo la alineación de las prioridades internas con el crecimiento del ecosistema externo y los desafíos enfrentados al abrir tecnologías en ByteDance y Meta.
Creo que una de las otras cosas que tal vez sea interesante escuchar y tal vez aprender es que, cuando construimos cosas en React, siempre lo hacemos para Meta. Quiero decir, ese es el propósito del equipo. Estamos construyendo infraestructura de UI para los productos que Meta desarrolla. Pero siempre tratamos de hacerlo pensando en lo que está sucediendo en el ecosistema y lo que está pasando con cada uno de ustedes aquí en la sala. Y eso es realmente bueno porque podemos construir cosas con eso en mente, pero eso está realmente enfocado en resolver un problema real a, como, escala Meta. Así que arreglaríamos algo para construir una nueva característica para Marketplace, por ejemplo, que tiene miles de millones y miles de millones de usuarios, y que en algún momento, eso se lanzaría. Pero primero pensamos en el caso de uso de Meta, tratamos de construirlo para esa escala, y luego hacemos el aspecto de código abierto de ello. ¿Es similar para ti también, Xuan? ¿Puedes contarnos más sobre links y ByteDance?
Sí, creo que esta es una pregunta realmente genial y complicada. Las personas fuera de las grandes empresas a veces sienten que el código abierto es la naturaleza de esta gran empresa, pero en realidad no lo es. Es principalmente por aquellas personas que descubren cómo alinear la prioridad interna con el crecimiento del ecosistema externo. Así que definitivamente enfrentamos desafíos similares también. Así que una forma en que trato de establecer dirección y justificarlo es que links ya es bastante exitoso a escala ByteDance. Y React es tan exitoso, no solo porque se originó y tuvo éxito a escala Meta, es exitoso a escala mundial. Así que en cierto sentido, el mundo es más grande que Meta o ByteDance o cualquier otra empresa. Así que la forma en que lo pensamos es que tratamos de abrirlo. Sí, tal vez estamos dando tecnologías para ustedes, pero también estamos tratando de escalar esta tecnología a una escala aún más amplia. Y así es como aprendemos diferentes casos extremos, aprendemos de la comunidad, como ideas y su inteligencia y todo. Así es como lo pienso.
Me encanta eso. Creo que eso es un... Lo clavaste. Me encanta eso tanto. Y tengo curiosidad por eso un poco más porque supongo que en mi breve período trabajando en gran tecnología construyendo para equipos internos, a veces la organización técnica es tan grande, es como si estuvieras hablando con un equipo de terceros de todos modos. Y así necesitas llevarlos en el viaje contigo porque esos equipos son simplemente tan grandes. Creo que algo que has hecho con LYNX, Xuan, es que es muy amigable para desarrolladores web. Estás usando etiquetas HTML, es como CSS y todo eso. Y creo que puedes simplemente usar Tailwind allí también. Es profundamente impresionante, la arquitectura que has construido. ¿Fue eso para hacerlo más atractivo para los desarrolladores web para llevarlos contigo? ¿Cómo pensaste y arquitectaste eso? Sí. Siento que hoy en día, mirando hacia atrás, tomamos las decisiones correctas.
Technology Transition Challenges in React Native
Discutiendo la importancia de apoyar la fe de la comunidad en las tecnologías web y las consideraciones detrás de la transición a marcos modernos como JPEG Compose y Zwift UI en React Native.
Pero realmente, en aquel entonces, la infraestructura de las grandes tecnologías, tienen que servir a las necesidades internas para obtener financiación y recursos. Así que esta tecnología en particular se originó en una comunidad donde todavía tienen una profunda fe en la web. Así que si no apoyas eso, simplemente no querrán usarlo. Así que es como, sí, tomamos las decisiones correctas. Una parte de la historia. Pero la otra parte es que el entorno nos reforzó para hacerlo. Así que es como este esfuerzo conjunto. Eso es interesante.
Y supongo que desde el lado de React Native, corrígeme si me equivoco, porque probablemente lo esté. Pero creo que el sistema de componentes de React Native, está modelado a partir del sistema de vistas de iOS. ¿Y puedes contarme un poco más sobre esa exploración también? Así que sí. Quiero decir, ha sido un tema recurrente en la comunidad sobre nosotros alejándonos de los renders heredados. Así que en Android, sería el sistema de vistas de Android, por ejemplo, y pasar a marcos más modernos como JPEG Compose y Zwift UI. Quiero decir, obviamente, ha habido exploraciones en el pasado.
La razón por la que no nos hemos movido aún es porque no tenemos un argumento sólido para hacer el movimiento aparte de seguir la ola de entusiasmo. Como todos quieren estar en lo último y lo mejor. Pero la realidad es que, por ejemplo, en Android, el sistema de vistas de Android ha sido utilizado a gran escala por Google durante como 10, 15 años. JPEG Compose es mucho más reciente. Y hay cuellos de botella de rendimiento. Y así estaríamos moviendo todo el ecosistema a algo que no es tan maduro. Y al final del día, realmente no importa para ti. Porque tu API es como la API de React.
Revisiting React Native Development Evolution
Explorando el uso de JPEG Compose y Zwift UI en componentes personalizados con React Native, influenciado por el enfoque mobile-first adoptado por Facebook durante el desarrollo de la plataforma.
Así que lo que sea que se ejecute bajo el capó no debería ser una preocupación. Es solo si estás construyendo componentes personalizados que tal vez quieras usar JPEG Compose y Zwift UI. Pero puedes, en teoría, ya hacer eso hoy con herramientas como Expo y módulos de Expo. Así que sí, es una exploración que hicimos en el pasado. Y sigue surgiendo. Pero no creo que sea una prioridad súper alta para nosotros en este momento. No veo que estemos trabajando en ello en el futuro inmediato.
Sí. Creo que Shawn tuvo un punto interesante cuando hablaba de cómo el entorno te obliga a hacer ciertas cosas. Cuando React Native salió, fue un momento en el que Facebook, no era Meta, era Facebook, estaba súper enfocado en convertirse en una empresa mobile-first, mobile-native-first. Estaba profundamente arraigado en la web. Pero el punto era, vamos a hacer Native mejor que nadie más. Y creo que eso influyó mucho en las decisiones sobre cómo construir la cosa.
Se suponía que te daría la experiencia exacta de la plataforma. Así que hay muchas cosas para las que la web no tenía un equivalente o realmente no podía hacer. Así que tenía que ser modelado sobre, como, encima de algo que fuera eso. Así que el framework de iOS, supongo. Y por eso comenzó de esa manera. Tenías cosas como Navigator iOS y un montón de cosas así, ¿verdad?, si recuerdo correctamente. No estaba allí en ese momento.
Evolution of React Native Platform Integration
La evolución de React Native desde un enfoque específico de plataforma hasta la incorporación de elementos web como CSS, influenciado por la verdadera naturaleza de React y los desafíos de mantener el aislamiento de estilos y características específicas de la plataforma.
Y creo que hemos estado haciendo eso internamente para algunos de nuestros productos que están ahora en producción, donde hay más colaboración con lo que hicimos en el lado web de las cosas para construir las experiencias Nativas con cosas como React strict DOM y cosas así. Así que comenzó desde un lugar donde los entornos nos forzaban a hacer esto tan específico de la plataforma. Y luego lo hicimos más grande y más grande para que también asumiera las cosas web también. Eso es increíble. Y sí, quiero decir, la persona que trabaja en React strict DOM es Nicholas Gallagher, quien creó React Native web también. Y es increíble ver la progresión y el futuro de ese enfoque evolucionando, esencialmente, con una cuestión de recursos y una cuestión de apoyo en el equipo de React. Y creo que eso es realmente, realmente genial.
Supongo que, para mí, sin embargo, usar React Native, se sentía más fiel a React. Si estás tratando de soportar la web, estás tratando de soportar un poco el legado de alguna manera, y estás tratando de tomar este hermoso patrón de componentes composicionales y tratar de hacerlo funcionar con la web, versus React Native que comenzó de nuevo en algunos aspectos. Puedes pensar en una arquitectura de componentes fresca, pensar en un sistema de vistas fresco. ¿Y encuentras que ahora volver a la web de alguna manera empieza a eliminar algo de eso? ¿Cómo piensas sobre eso? Tengo curiosidad por todos ustedes, realmente. ¿Cómo piensan sobre eso? Como, soportar Tailwind es un poco loco, ya sabes, como ejemplo. Soportar Tailwind en un iOS y Android, eso es muy parecido a una cosa de CSS web. CSS ha recibido mucho odio a lo largo de los años por su naturaleza en cascada, y sin embargo has elegido volver a poner eso mientras React Native no hace cascada. Simplemente defines un estilo en una vista, como ejemplo. Entonces, ¿estás mirando también la cascada? ¿Cómo piensas sobre ese aislamiento esencial de estilo?
Sí, creo que para React Native, por ejemplo, muchas de las decisiones de estilo simplemente vinieron de – no estaba allí, no lo sé, pero mi suposición es, por cómo conozco al equipo, es que muchas de las decisiones vinieron de esto es lo que necesitamos para los productos particulares que estamos construyendo, y esto es lo que las plataformas nos están proporcionando. Así que vamos a intentar hacer eso tan fiel a la plataforma como sea posible. Por ejemplo, obtuvimos cosas como ciertos filtros que CSS proporciona que no son – no hay manera de hacerlos en iOS a menos que te metas en APIs privadas, por ejemplo. Y eso es algo que no creo que quisiéramos hacer, o seríamos muy cuidadosos al hacerlo, porque tenemos una responsabilidad para millones y millones de desarrolladores que están construyendo no sé cuántas aplicaciones. Así que no necesariamente querrías imitar las cosas tan de cerca como sea posible. Tienes que tomar un enfoque más responsable. Por ejemplo, Expo ha estado haciendo un buen trabajo en las cosas de filtros CSS, pero tienen que meterse en SwiftUI para implementar algunas de esas cosas. No es algo que, por ejemplo, un kit de UI de iOS tendría. Sí, Nico?
API Refinement and React Native Origins
Los orígenes de React Native como un proyecto de Akaton influyen en los esfuerzos continuos de refinamiento de API y alineación con los estándares web para mejorar la usabilidad y estabilidad en entornos de producción.
Creo que siempre debemos recordar que React Native comenzó como un proyecto de Akaton, y llevamos algunas de esas decisiones durante mucho tiempo. Por ejemplo, mi enfoque en los últimos años ha sido mucho en torno a la estabilidad. React está lanzando versiones principales mientras nosotros todavía estamos en 0.80, 0.82, y así sucesivamente. Y eso se debe a que nuestras APIs no están tan pulidas como quisiéramos. Este último año, invertimos mucho en reducir nuestra superficie de API y exponer solo las cosas que deberían ser expuestas, y así sucesivamente. Pero en el pasado, ha habido decisiones incorrectas. Y verás eso a veces al usar las APIs, especialmente en componentes que son solo para iOS o solo para Android, las cosas no están nombradas de manera coherente.
Así que sí, lo que mi equipo ha estado haciendo durante los últimos, diría, dos años más o menos es echar un vistazo a algunas de esas APIs para ver qué se puede básicamente rearmonizar también con la web. ¿Cuáles de esas propiedades están disponibles en la web, y los nombres son siquiera los mismos? Tratamos de bajar la barrera de entrada a React Native tanto como sea posible. Lamentablemente, porque esto comenzó como un proyecto de Akaton, algunas de esas decisiones de API, vamos a pagar el costo ahora, como en la deprecación y demás. Pero por otro lado, me alegra que esto comenzara como un proyecto de Akaton. Quizás si esto hubiera comenzado con un gran RFC con algo así como, hey, este es como el glorioso marco multiplataforma que queríamos, nunca se habría lanzado. Y no estaríamos aquí hablando de ello.
Pero Nico, solo para ser claro, esto es más que un proyecto de hackathon ahora, ¿verdad? Es como un marco completamente estable, maduro, no completamente estable, pero estable y maduro que la gente puede usar en producción. La gente está haciendo miles de millones en React. Así que me alegra ver eso. Eso es increíble. Y para ti en ByteDance. Solo quiero volver a esa pregunta. En primer lugar, definitivamente un gran reconocimiento a React Native hoy en día. Enfócate más en el lado web de las cosas, parcialmente debido a prioridades internas. Porque realmente, durante mi tiempo en Emeta y React, siento que apoyar la web como plataforma de primera clase es como una gran oportunidad perdida. Contratamos a Nicholas, pero de alguna manera, no está haciendo suficiente trabajo allí. Pero de todos modos, lo que trato de decir es que es realmente genial tener diferentes personas con diferentes gustos. Como mencionaste, React Native está un poco más enfocado en el lado de React.
React Native's Evolution and Community Dynamics
El enfoque de React Native en React, combinado con los esfuerzos para hacer que las tecnologías web funcionen efectivamente, muestra perspectivas diversas en la mejora de soluciones tecnológicas y fomenta el aprendizaje colaborativo. La aparición de dos grupos distintos trabajando en desafíos similares promueve la innovación y el intercambio de conocimientos, enriqueciendo el ecosistema y la dinámica de la comunidad.
Como mencionaste, React Native está un poco más enfocado en el lado de React. Se originó por el grupo de personas de React que quieren expandir React en todas partes y construir aplicaciones móviles. Y aman React. Yo amo React. Y el equipo de Linx, y también por ahora, el miembro líder, diría, comenzaron este proyecto porque quieren hacer que la web funcione. Porque durante mucho tiempo, la web móvil simplemente no funciona. Antes de que comenzara a amar React, solía amar PWA, Progressive Web App. Fui uno de los primeros defensores. Y voy a Google IO, pero aún así, PWA simplemente falló. Así que muchos de los miembros del equipo eran ingenieros de navegadores en nuestro equipo. Solo queremos hacer que la web funcione. Y por eso comenzamos agregando CSS. Y eventualmente, sentí que, no, también deberíamos agregar React. Así que simplemente viene de diferentes miembros fundadores. Va a reforzar la tecnología de manera diferente. Pero es genial ahora que tenemos dos grupos de personas trabajando en el mismo espacio de problemas. Y ahora podemos aprender unos de otros. Antes de eso, ni siquiera teníamos una competencia saludable para hacer crecer este ecosistema juntos, para aprender unos de otros.
Mencionaste una palabra clave allí en la que quiero centrarme, ecosistema y comunidad. Y obviamente, como mencioné, fui parte de la comunidad de React desde los primeros días. Me gusta imaginar, obviamente no internamente, pero cuando fue de código abierto. Y he estado allí para ese viaje. Y he visto la progresión. ¿Puedes contarme sobre cómo estás pensando en el ecosistema y la comunidad? ¿Y cuál es el futuro de eso? Supongo que comencemos con Meta. Sí, un gran hito para nosotros como ecosistema es definitivamente la React Foundation. Recuerdo la primera vez, cuando me uní, pensé, ¿por qué este proyecto no es una fundación? ¿Por qué? Y tuve muchas conversaciones con personas. Y luego me conformé con, OK, esto eventualmente nunca sucederá, porque Meta y lo que sea. Pero luego verlo suceder ahora mismo, creo que es increíble. Porque obviamente, Meta ha estado impulsando el desarrollo de React y React Native durante los últimos 12, más de 10 años. Pero especialmente en React Native, vimos tantas contribuciones valiosas.
Ecosystem Collaboration and Standardization
El envío innovador de Amazon de React Native, junto con un enfoque democrático para la evolución de React, señala el próximo capítulo para el ecosistema y la comunidad. Las variadas contribuciones a React Native de equipos como Expo enriquecen el ecosistema, ofreciendo perspectivas y características únicas. El énfasis en estandarizar los ecosistemas de módulos nativos destaca la necesidad de colaboración y soluciones optimizadas, fomentando el crecimiento y la innovación dentro de la comunidad.
Amazon is shipping React Native on their operating system. Así que eso es innovador. Y tener una fundación nos da un enfoque más democrático para la evolución de React y estoy muy ansioso por ello. Así que sí, creo que ese será el próximo capítulo para el ecosistema y la comunidad de React. Sí, creo que una de las otras cosas que es bastante genial al respecto es que ahora, y esto en realidad sucedió antes de la fundación también, pero esto lo solidifica. Tienes equipos que están construyendo contribuciones a React Native o React y React Native que no están necesariamente enfocados o planificados a través de las prioridades de Meta. Así que Expo, por ejemplo, realmente se preocupa por CSS. Así que están agregando un montón de características de CSS en React Native, lo cual es algo que a Meta también le importa, pero como una parte diferente de ello, por ejemplo. Así que podemos, el hecho de que tengamos este ecosistema robusto y estos socios que ahora son parte de la fundación es algo realmente genial porque cada uno tiene su propia contribución a cómo funciona todo el sistema.
Y Xuan, ¿cómo estás pensando en el ecosistema y la comunidad? Solo queremos robar el ecosistema de React Native, eso es todo. No, en serio. Nos originamos de la web, así que tenemos una especie de ventaja allí porque es de donde venimos. Pero luego, creo que además de adoptar React y poder compartir el modelo de programación de React parte del ecosistema, siento que hoy en día, porque tenemos múltiples soluciones basadas en JavaScript multiplataforma, deberíamos intentar colectivamente crecer una extensión nativa o un sistema de módulos nativos. Siento que incluso dentro del ecosistema de React Native, hay tantos contratos diferentes. Tenemos TurboModule, pero luego está AxponModule, y luego tienes NitroModule. ¿Y qué pasa con algunas de las otras personas que quieren Node API para conectarse con scripts nativos? Así que ahora tienes todos los contratos diferentes para básicamente hacer lo mismo. Entonces, ¿qué pasaría si pudiéramos encontrar de alguna manera una forma estandarizada de compartir esos ecosistemas de módulos nativos? Eso sería genial.
Sí, y haces otro buen punto allí que se apoya en el ecosistema de JavaScript al final del día también, que también está muy establecido. Y creo que la charla que acabas de dar sobre links UI, me encanta porque, por supuesto, con React Native, no hay una biblioteca de UI oficial. Hay algunas diferentes, pero ahora estás estandarizando UI y trayendo esa comunidad y ecosistema contigo también. Así que realmente me gustó ese enfoque allí. Genial. Así que no estoy seguro exactamente de cuánto tiempo nos queda, pero oh, está en ese de allí. Sí, genial. Así que supongo que lo terminaremos pronto. Creo que tengo una cosa más de la que tengo curiosidad y cómo piensas sobre ello. Y para mí, tengo que abordar el elefante en la habitación. Ya lo he escuchado de algunos de ustedes y está haciendo titulares. Y honestamente, no estoy muy seguro de cómo abordar esto. Así que voy a hacer mi mejor esfuerzo.
AI Influence on Cross-Platform Development
El impacto de la IA en el desarrollo multiplataforma, el uso de agentes para React y React Native, y los desafíos en mantener la paridad de aplicaciones entre plataformas.
Pero esencialmente, los están entrenando. Los están entrenando y están viniendo aquí y están tomando nuestros trabajos. Y también vienen con muchos nombres diferentes. Y si no estás seguro de lo que estoy hablando, estoy hablando, por supuesto, de la IA. Así que tengo curiosidad, ¿cómo piensas sobre el multiplataforma en un mundo de IA? Todas las eficiencias que tenemos se están enviando a múltiples plataformas. Si puedes simplemente escribir un prompt y construir una aplicación para múltiples plataformas, ¿todo esto desaparece? Esencialmente, ¿cuál es el futuro allí? Tengo curiosidad sobre cómo estás pensando en eso.
Sí. Así que estábamos discutiendo sobre eso ayer. Lo pensé durante la noche. Entonces, quiero decir, obviamente, podríamos argumentar que podrías simplemente iniciar múltiples agentes en paralelo que construyan la misma aplicación, comenzando desde el mismo prompt con la implementación nativa. Pero terminarás con muchas diferencias sutiles. Y luego tendrás que reharmonizar. Y va a ser mucho de ida y vuelta. Creo que las soluciones multiplataforma siguen siendo un enfoque ganador aquí. Porque puedes usar un agente. Primero, gracias a la cantidad de documentación disponible para React, los agentes están realmente bien entrenados para hacer código de React y React Native. Y luego puedes comenzar simplemente haciendo una plataforma.
Eso es lo que generalmente hago. Hago principalmente Android. Así que desarrollo en Android. Y una vez que llego a un punto con el que estoy satisfecho, le pido al agente, OK, ahora asegurémonos de que esto funcione para iOS. La mayoría de las veces, es solo cuestión de una o dos interacciones adicionales. Si fueras a hacer todo nativo, básicamente tendrías que reiniciar la aplicación. OK, tienes el agente. Te va a ayudar. Pero buena suerte asegurándote de que las dos aplicaciones no diverjan. Recuerdo en aquel entonces, cuando estaba haciendo desarrollo nativo, siempre teníamos esta lucha de que un gerente de producto para la empresa en la que trabajaba, estábamos enviando características. Para Android, dos semanas después de que lo hicieran para iOS, porque el equipo de iOS era más grande.
AI's Impact on App Parity and Rapid Development
Desafíos con la alineación del código y los tiempos de envío a pesar del uso de IA, creando una aplicación de entrenamiento usando IA en 30 minutos para dispositivos Apple.
Y aunque tengas IA, vas a tener más o menos los mismos problemas. Si las cosas no están alineadas, si la base de código no es la misma, las cosas se enviarán con diferentes cronogramas, lo cual es una mala experiencia para los usuarios. Ahora tendrás usuarios de Android molestos porque no pueden usar todas las nuevas características brillantes de tus productos.
Así que sí, no veo cambios importantes para nosotros. Nico, no creo que eso importe. Creo que la IA va a resolver todo esto. Bueno, déjame contarte una historia. Así que el otro día, tenía que ir al gimnasio. Me desperté a las 8 AM. Tenía que llegar allí a las 9. Y pensé, me pregunto si puedo codificar una aplicación de entrenamiento completa en el tiempo que tengo antes de ir al gimnasio.
Y me senté con Claude. Le di mi plan y un archivo markdown. Y 33 minutos después, de hecho puse un cronómetro. Tenía una aplicación de entrenamiento completamente funcional que rastreaba todos mis ejercicios, mis repeticiones, todo. Se sincronizaba con HealthKit en el ecosistema de Apple. Hacía sincronización en la nube con múltiples dispositivos. También creó una aplicación para el Apple Watch.
AI's Influence on UI Frameworks and Gratitude
El papel de la IA en la evolución de los frameworks de UI y la importancia del diseño centrado en el humano para la integración de la IA, gratitud por las contribuciones de código abierto.
Fue una locura en 30 minutos. Y luego me fui al gimnasio y lo usé. Así que creo que la IA lo ha logrado hasta cierto punto. Donde esto falló, en realidad, fue que hizo esto para esto. Decidió construir con SwiftUI. Y al día siguiente, cuando quise llevar mi teléfono Android malo al gimnasio y simplemente usarlo porque no me importa si se estropea, no tenía nada. Así que sí, hasta cierto punto, la IA va a resolver muchos problemas para nosotros. Pero las soluciones multiplataforma y específicamente las basadas en JavaScript, TypeScript, todo el ecosistema tipo web nos van a ayudar mucho y todavía van a asegurarse de que tengamos una sola base de código, una sola ventana de contexto. Así que sí.
OK. Xuan? ¿Todavía tenemos tiempo? Puedo terminar relativamente rápido. Así que voy a responder esto desde una perspectiva un poco más teórica. Recuerdo cuando salió GPT-3 o algo así, la gente comenzó a repensar cómo sería el próximo framework de UI en la era de la IA. Y decían, OK, tal vez React se volverá obsoleto porque puedes simplemente generar DOM y JavaScript. Y luego, aún más loco, la gente decía, oh, ¿y si puedes simplemente generar instrucciones de CPU, instrucciones de GPU? Entonces tu framework de UI es básicamente una transmisión en vivo. Pero tuve una intuición muy opuesta, incluso desde el principio. Porque sabemos que los modelos de lenguaje grande hablan el lenguaje natural humano. Y el lenguaje humano es de un orden de abstracción realmente más alto. Y si piensas en la evolución del lenguaje formal y el lenguaje de programación, tienes ensamblador 1, 0, que son los más caóticos. Y luego se vuelve un poco más de alto nivel, más estructural, para que puedas simplemente decir, OK, quiero una función, quiero una memoria, y no necesitas resolver esas entropías.
Y luego tienes React mejorado de programación imperativa a programación declarativa. Así que simplemente dices, oh, quiero que este diálogo se muestre allí después de que toque el botón en lugar de encontrar este contenedor de árbol e insertar 1, 2, 3 nodos y lo que sea. Así que en este sentido, llego a la conclusión de que tal vez lo que sea más ergonómico para el humano es en realidad mejor para la IA, al menos para esta generación de IA. Y en ese sentido, React y hoy en día los componentes se convierten en una base aún más importante para que la IA haga este framework de UI. Y multiplataforma es lo mismo. Reduce la entropía del lenguaje hablado por nosotros, por los ingenieros, por los humanos, pero también por la IA. Así que soy bastante optimista al respecto. Tomar el lema de link, escribir una vez, renderizar en cualquier lugar, y realmente es así en la práctica. Así que con eso, se nos acaba el tiempo.
Y solo quiero tomar un momento muy corto y rápido para decir algo que a menudo digo en privado, en realidad, y lo diré en público ahora, que es gracias. Muchas gracias por hacer lo que haces, pero específicamente por liberarlo como código abierto, liberarlo de forma gratuita y liberarlo para que todos lo usemos. Toda esta sala de personas está realmente aquí por lo que estás enviando. Y no creo que eso se diga lo suficiente. Así que muchas gracias por todo eso. Y muchas gracias al panel. Gracias.
Available in other languages:
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






Workshops on related topic
Contenido: Este masterclass está dirigido a desarrolladores principiantes que tienen una aplicación web existente o están interesados en el desarrollo móvil. Repasaremos:- ¿Qué es Capacitor?- ¿Cómo se compara con otras soluciones multiplataforma?- Usando Capacitor para construir una aplicación nativa utilizando tu código web existente- Organizando nuestra aplicación para su distribución en tiendas de aplicaciones móviles con convenciones de nombres, iconos, pantallas de inicio y más
Este masterclass está dirigido a desarrolladores intermedios que tienen una aplicación de React existente o están interesados en el desarrollo móvil con React. Repasaremos:
¿Qué es Capacitor?¿Cómo se compara con otras soluciones multiplataforma?Usando Capacitor para construir una aplicación nativa utilizando tu código web existenteMejorando nuestra aplicación para su distribución en las tiendas de aplicaciones móviles con convenciones de nombres, iconos, pantallas de inicio y más.
En este masterclass, aprenderás a configurar el esqueleto de una aplicación React Native Web que funcione de manera excelente y se vea increíble. Puedes utilizar el código resultante como base para construir la aplicación que desees, utilizando los paradigmas de React y muchas bibliotecas de JavaScript a las que estás acostumbrado. ¡Te sorprenderá la cantidad de tipos de aplicaciones que realmente no requieren un código base separado para móvil y web!
Qué se incluye1. Configuración de navegadores de cajón y de pila con React Navigation, incluyendo la capacidad de respuesta2. Configuración de React Navigation con URLs3. Configuración de React Native Paper, incluyendo el estilo del cajón y los encabezados de React Navigation4. Configuración de un tema de color personalizado que admita el modo oscuro5. Configuración de favicons/iconos de aplicaciones y metadatos6. Qué hacer cuando no puedes o no quieres proporcionar la misma funcionalidad en la web y en el móvil
Requisitos previos- Familiaridad con la construcción de aplicaciones con React o React Native. No es necesario conocer ambos.- Configuración de la máquina: Node LTS, Yarn, ser capaz de crear y ejecutar correctamente una nueva aplicación Expo siguiendo las instrucciones en https://docs.expo.dev/get-started/create-a-new-app/
Subscribe to the top JS conferences
and grow in-depth as engineer with insights from library authors and core teams
Learn more

















Comments