Ir al contenido

Expo.dev: Permitir a los desarrolladores web crear aplicaciones nativas

Charlie Cheever, propietario de expo.dev, tiene como objetivo permitir a los desarrolladores web escribir JavaScript y crear aplicaciones nativas para iOS y Android utilizando React Native. Cheever, que anteriormente trabajó en el equipo de plataformas de Facebook y cofundó Quora, comparte sus primeros años en Pittsburgh (Pensilvania) y su pasión por los videojuegos. Asistió al programa de verano Andrew's Leap de Carnegie Mellon y se especializó en informática en Harvard. Cheever se incorporó a Facebook en 2006 tras enterarse de que sus antiguos compañeros David Fetterman y Andrew Bosworth dejaban Microsoft. Puso en marcha la popular plataforma para desarrolladores de Facebook, que desde entonces se ha convertido en una popular plataforma de juegos.

Hablé con Charlie Cheever, el propietario de expo.dev, durante toda la entrevista. El objetivo de Expo es hacer posible que los desarrolladores web escriban una vez en JavaScript y produzcan aplicaciones iOS y Android realmente nativas. Utiliza React Native y es de código abierto y gratuito.

Charlie trabajó anteriormente en el equipo de plataformas de Facebook antes de ayudar a cofundar Quora.

Describa sus primeros años y la zona donde vivió

Crecí en Pittsburgh, Pensilvania. Los videojuegos siempre me han divertido. Tomé prestado el libro How to Make Your Own Computer Games (Cómo crear tus propios juegos de ordenador) cuando mi padre me llevó a la biblioteca cuando estaba en tercer curso. Volví y compré otro libro sobre programación en BASIC porque la página inicial del libro indicaba que había que saber programar en él. Mientras seguía haciendo pequeños cambios, tecleaba los programas del libro en el Apple II de la escuela.

Participé en el programa de verano Andrew's Leap de Carnegie Mellon cuando era estudiante de secundaria. En esta sesión gratuita de verano se enseñan los fundamentos de la teoría de la complejidad y la programación. Fue muy divertido. Me gustaba hacer cosas con calculadoras u ordenadores y enseñárselas a la gente. Me resultaba bastante fácil identificar los objetivos de mi vida.

Me licencié en Informática en Harvard. Recibí un correo electrónico de contratación de Facebook mientras trabajaba en Amazon porque era ayudante de un curso que habían hecho los fundadores de Facebook. Dos antiguos compañeros de clase, David Fetterman y Andrew Bosworth, me dijeron que dejaban Microsoft para unirse a Facebook. Pensé que debía de ser una buena idea, ya que ellos lo estaban haciendo. Envié un correo electrónico a su director de contratación, me dieron el trabajo y empecé a trabajar como desarrollador de software en 2006. En aquella época apenas trabajaban en Facebook entre 10 y 12 ingenieros. Puse en marcha la plataforma para desarrolladores de Facebook, que era una plataforma de juegos muy popular en muchos sentidos.

Al final dejé Facebook y empecé a trabajar en Quora. Tenía muchas ganas de montar un negocio. A pesar de que trabajar en Facebook era muy divertido, sentí que había llegado el momento de lanzar mi propia empresa.

Luego, hace unos dos años, empecé con la Expo.

¿Qué es exactamente la Expo?

Expo es una plataforma gratuita de código abierto que permite a los desarrolladores online y móviles crear aplicaciones nativas de iOS y Android de alta calidad de forma rápida e iterativa. React Native, una tecnología creada por Facebook y utilizada en partes de la aplicación principal de Facebook, Instagram y muchas otras aplicaciones, sirve como columna vertebral de Expo. Entre otros, React Native es utilizado por Tesla, Walmart y Airbnb.

Expo permite a los programadores crear API y componentes JavaScript que se ejecutan de forma nativa en iOS y Android. El SDK de Expo incluye un tiempo de ejecución, API de React Native y elementos auxiliares como audio, vídeo, autenticación y alertas. Tienes más tiempo para dedicar a crear JavaScript ahora que iOS y Android comparten más código.

La gestión de versiones de React Native es gestionada en tu nombre por XDE (Expo Development Environment). Sin tener que preocuparte por romper cambios o tener que reconstruir los binarios de tu programa, puedes decidir si te quedas con una versión anterior o actualizas a una más reciente.

Puedes compartir una aplicación en la que estés trabajando utilizando una simple URL que las aplicaciones cliente de Expo puedan visitar. Simplemente compile su software en binarios y despliéguelo cuando esté listo para publicarlo en la tienda de aplicaciones. Además, puede actualizar instantáneamente su aplicación "en el aire" (sí, Apple lo permite).

Además, Expo proporciona la herramienta Snack basada en navegador, que es similar a JSFiddle pero solo funciona con aplicaciones React Native. Si quieres empezar a crear prototipos, visita snack.expo.io. Puedes ver una vista previa en tu teléfono o en tu navegador web. Una vez que todo esté listo, haz que tus amigos y compañeros de trabajo conozcan la URL.

Como la aplicación construida en Expo utiliza el mismo tiempo de ejecución nativo, todo esto es posible utilizando el cliente Expo. Normalmente, no es necesario instalar Xcode o Android Studio en su ordenador para utilizar Expo. Sin embargo, siempre puedes separarte de ExpoKit y comenzar tu proyecto en cualquier iDE si necesitas añadir tus propias librerías nativas.

Nuestro objetivo es simplificar y abrir el desarrollo móvil a todo el mundo. Expo.io tiene más detalles accesibles.

¿Por qué decidió crear Expo?

Nuestro objetivo es simplemente reducir la distancia entre la idea que una persona tiene en la cabeza y su resultado final.

En Quora, donde trabajé en sus aplicaciones móviles, tardamos entre nueve y diez meses en terminar una, incluso con ingenieros y diseñadores excelentes. Para hacer las cosas multiplataforma, tuvimos que utilizar webview, pero nunca me pareció del todo bien. No se pueden producir animaciones tan atractivas como con los programas nativos, ni se puede obtener un rendimiento ideal. Esto parece intrínsecamente anticuado después de casi un siglo de desarrollo en línea. Había que arreglarlo, y pronto. En consecuencia, me tomé un descanso y empecé a buscar formas de mejorarlo con James Ide.

Cuando empezamos, HTML5 y las tecnologías web eran insuficientes. Sin embargo, creíamos firmemente que el paradigma en línea supondría un aumento considerable de la productividad. Todo el sistema recibió el absurdo nombre de "Ion", a pesar de que el framework Ionic ya existía.

Pero en lugar de desplegar Ion, sólo lo utilizamos para crear unas pocas aplicaciones. Luego salió React Native, y era casi exactamente lo mismo, aunque más avanzado y con un equipo de veinte personas frente a dos. Básicamente tomamos la decisión de dejar de trabajar en Ion y concentrarnos en todo lo demás que queríamos construir con React Native.

Una de las situaciones más satisfactorias para un emprendedor de una startup suele ser cuando su producto se utiliza de una forma original o inesperada. ¿Está Expo a favor de esto?

Hay una nueva pestaña de proyecto que muestra las 10 incorporaciones más recientes al abrir la aplicación cliente Expo.

Se pulsó el botón "publicar" del documento. Es extremadamente fantástico, y ahora que está siendo utilizado por suficientes individuos, normalmente puedes encontrar uno o dos esfuerzos interesantes. Es emocionante encontrar objetos construidos con Expo, como una tienda de electrónica tailandesa, que no tenía ni idea de que existieran.

Cuéntenos cómo es un día normal en la vida del propietario de expo.io.

Ahora somos once, si me cuentas a mí. Salvo Brent, que vive en Vancouver, y Ben, que vive en Seattle, todos están en la zona de la bahía. Vienen a nuestra casa unas cuantas veces al mes. Nos las arreglamos para que funcione porque ellos aprecian dónde están y nosotros disfrutamos teniéndolos allí.

Slack sirve de núcleo gravitatorio para nuestro disperso equipo. También acabamos colaborando más estrechamente con desarrolladores de plataformas, algunos de los cuales trabajan como contratistas independientes en proyectos concretos. Por ejemplo, el bangaloreano Satyajit nos ayudó con Sketch. Esto nos da mucha libertad. Cada uno tiene un horario de trabajo diferente y toma muchas decisiones a nivel local sin ponerse en contacto con el jefe de producto.

¿Por qué es tan difícil obtener beneficios de los productos para desarrolladores web? ¿Qué estrategia emplea Expo?

Es difícil ganar dinero con los productos de los desarrolladores por varias razones. Una de ellas es que muchas personas se dedican a mejorar los procedimientos o herramientas de desarrollo. Lo mismo ocurre con los contenidos, que también son difíciles de comercializar porque muchas personas están dispuestas a escribirlos con otros objetivos, como la marca o la reputación.

Las herramientas para desarrolladores suelen entrar en esta categoría. A muchas personas les gusta crearlas o hacerlas de código abierto; algunas de ellas podrían desear crear herramientas de código abierto para impulsar la popularidad de una plataforma o para objetivos de reclutamiento.

Es ilógico que generemos dinero con la propia plataforma. Es esencial que las herramientas sean de código abierto, ya que así reclutaremos a los desarrolladores que queramos y utilizaremos las tecnologías que queramos. Si hay problemas, se puede averiguar qué pasa dentro de ellas y poner remedio. Se puede hacer una auditoría de su seguridad si le preocupa. Cobrar por cualquiera de estos servicios sería extraño.

Poner el desarrollo de software móvil al alcance de los niños forma parte de nuestro propósito. De vez en cuando pienso en cómo podría fabricar algunos juguetes intrigantes con los que jugar si ahora mismo tuviera 13 o 14 años y mis colegas y yo estuviéramos todos sentados en nuestros teléfonos. En cambio, si cobras por ello, los alumnos ávidos quedan excluidos. No tienen tarjetas de crédito y sus padres dudan en darles dinero para algo que quizá no entiendan.

Dado que el modelo económico es similar al de Twitch y YouTube, me parece lógico. Tanto Twitch como YouTube no cobran a los usuarios por publicar vídeos. Pero si te ayudan a tener éxito económico, puede que se queden con una parte.

Por tanto, preveo que habrá una forma de que nos llevemos una pequeña parte si podemos ayudar a los desarrolladores a rentabilizar su trabajo. Pero preferiría que fuera gratuito y de código abierto para siempre. Hay muchas formas de mantenernos si ayudamos a la gente a crear negocios sostenibles a partir de nuestra plataforma.

¿Cuáles fueron algunas de las situaciones más difíciles a las que tuvo que enfrentarse durante la realización de la Expo?

Aunque sé que vendrán tiempos realmente difíciles debido a nuestro compromiso con nuestro propósito, hasta ahora no lo ha sido tanto. Era consciente de que tardaría en completarse y de que habría muchos retos por el camino, pero en los últimos meses hemos funcionado a la perfección y hemos entregado piezas de rompecabezas que han ayudado a aclarar nuestro mensaje.

Tenemos respuestas a muchas de estas preguntas, ya que hay varias formas de que los desarrolladores accedan a las diferentes etapas, pero es un reto describir completamente todo lo que hacemos. Si usted comenzó un proyecto usando React Native, obtendría carpetas IOS y Android con todo su código fuente JavaScript dentro de ellas. Tenemos una secuencia de comandos de convergencia si sólo escribió JavaScript y no cualquier código nativo de iOS o Android. Debido a que hay tantas maneras de cambiar su proyecto, es un poco frágil.

Ahora nos centramos sobre todo en captar nuevos miembros.

Ha sido divertido, ya que tenemos un gran equipo y nos llevamos bien. Dado que muchos de los miembros de nuestro personal contribuyen activamente al proyecto de código abierto React Native, su empleo en Expo les permite centrarse únicamente en esa área de trabajo. Los colaboradores del repositorio de React Native están interesados en la programación móvil y en cómo se crean las aplicaciones móviles. Se identifican con la misión de Expo de hacer que la creación de aplicaciones móviles sea más fácil, rápida y accesible. Suelen adoptar el enfoque más reflexivo sobre el crecimiento.

¿Qué le espera en la Expo?

Trabajaremos muy duro para establecernos como la forma más común, fácil y efectiva de comenzar un nuevo proyecto React Native. Además, queremos mejorar la funcionalidad de los módulos nativos.

El hecho de que Expo sea simplemente React Native con componentes extra fue uno de los diez argumentos que di para usarlo en el grupo de la comunidad React Native. Por ejemplo, uno de los mayores problemas para los desarrolladores de React Native no es sólo hacer el mantenimiento rutinario de su propio código, sino también lidiar con el hecho de que muchos módulos de terceros, como algunos bluetooth altamente especializados o ubicaciones en segundo plano, no se actualizan y siguen funcionando en una versión anterior. A muchas bibliotecas nativas les ha resultado difícil mantener el ritmo de cambio debido al frecuente lanzamiento de nuevas versiones de la biblioteca React Native.

Además, el año que viene daremos prioridad a dotarles de los componentes esenciales para la construcción móvil. El predominio en la web del texto con gráficos, rectángulos para maquetar y formularios es algo que desprecio de ella, lo que quizá se deba a que empezó siendo una herramienta para crear documentos. En 1994, el mundo necesitaba precisamente esto.

En sus dispositivos móviles, a los usuarios les gusta mirar fotos, ver películas, ver material en streaming, deslizar el dedo, dar "me gusta" y escuchar música. La experiencia es mucho más táctil y multimodal. Aspiramos a ser los mejores bloques de construcción para los diseñadores de software móvil. Aunque aún no tengamos toda la información, esta es la dirección que queremos seguir el año que viene.

¿Qué actividades o aficiones te gustan además de tu startup?

Durante los dos últimos años, he estado escuchando mucho a Ryan Adams continuamente, y creo que me he comprometido políticamente un poco más de lo que estaba antes, sólo porque se siente tan importante este año de una manera que no lo ha sido durante la mayor parte de mi vida.

Soy seguidor de los Penguins, los Steelers y los Pirates porque me crié en Pittsburgh. Estuve presente cuando los Penguins ganaron la Stanley Cup en San José el año pasado; fue increíble.

Para más información:

Puede consultar expo.devo póngase en contacto conmigo en LinkedIn

Le traemos entrevistas exclusivas con expertos líderes en los campos del desarrollo web, el diseño web y el SEO. Descubra las historias únicas de estas personas que han transformado su pasión en logros notables. Nuestro equipo recopila cuidadosamente historias inspiradoras de todo Internet, con el objetivo de despertar su creatividad y captar su interés a través de nuestros estudios de casos estrechamente supervisados. Puede encontrar otros estudios de casos inspiradores aquí.

es_ESSpanish