¿La aplicación Quora está construida con React Native o Ionic?

Pregunta capciosa: ¡tampoco! Spencer Chan respondió con gracia esto durante una charla en QCon titulada Architecting Cross-Platform Mobile Frameworks . Hojee las diapositivas para obtener la respuesta completa o siga leyendo para obtener la versión resumida.

Quora construyó su propio marco

¿Por qué? No lo dicen con certeza, pero prefirieron lanzar su propia solución en lugar de confiar en PhoneGap, Ionic, React Native u otro tercero. Específicamente, crearon shells nativos personalizados tanto para iOS como para Android.

Las responsabilidades principales de estos proyectiles son:

  • Navegar hacia atrás (Android / iOS) o entre categorías (iOS)
  • Cargue las WebViews (compartidas en Android, iOS y Web móvil)
  • Mostrar una pantalla de carga mientras busca el contenido
  • Revelar menús emergentes nativos cuando sea apropiado

Los envoltorios nativos personalizados de Quora generan la interfaz de usuario que queda fuera de los cuadros rojos

Aquí, los contenedores nativos responden a los usuarios que tocan el ícono del menú HTML. Cada uno presenta un patrón emergente de interfaz de usuario común para su plataforma.

Por qué se prefiere la costumbre

Es cierto que con una base de código en Ionic o React Native, puede implementar en múltiples plataformas nativas. Sin embargo, la ventaja que Quora construyó para sí misma es clara: cualquier persona con experiencia en JavaScript puede y seguirá “contribuyendo a la aplicación” simplemente trabajando en el sitio móvil.

No necesitan aprender un nuevo marco o conjunto de herramientas, solo usan tecnologías estándar web con las que están familiarizados. Otras ventajas clave incluidas en las diapositivas:

  • Para 100 funciones, solo necesitan 102 pruebas, no 300 .
  • Cuando aceleran su experiencia en la Web móvil, también aceleran sus aplicaciones “nativas”
  • Código súper compartible probablemente al 90% + (supongo)
    • Esto significa que pueden lanzar nuevas funciones en las tres plataformas simultáneamente
    • Una sola capa API sirve a las tres plataformas.

Y desde mi perspectiva, también tienen el beneficio del control. No confían en un tercero para el rendimiento o la implementación de funciones nativas. Tan pronto como se publique una nueva actualización de Android o iOS, pueden aprovechar esas API.

Sí, algunas API están más allá de su alcance, ya que la mayoría de su contenido permanece en WebView. Aún así, la capa nativa puede comunicarse con la capa web a través de su abstracción y enviar datos como coordenadas GPS, información de contacto y más.

Donde este enfoque se queda corto

Es cierto que se topan con problemas con este enfoque híbrido, así que considere estas trampas.

  • Almacenamiento en caché
    • El WebView y sus contenidos son difíciles de almacenar en caché, lo que hace que el modo “fuera de línea” sea casi imposible.
    • Esto significa no hacer preguntas, navegar, responder, comentar o votar mientras está desconectado.
  • Problemas de carga de WebView
    • A medida que se carga el WebView, no puede decirle explícitamente al reiniciador cuándo comienza a aparecer el contenido.
    • La solución para esto es el análisis de píxeles de segundo a segundo para ver si la pantalla cambia (y, por lo tanto, la aplicación puede inferir cuándo aparece el contenido).
  • Rendimiento, rendimiento, rendimiento
    • Los navegadores de escritorio tienen más ancho de banda de Internet y potencia de procesamiento, lo que permite a los desarrolladores web evitar las preocupaciones de latencia en favor de sacar las características de la puerta.
      • Simplemente mire el monitor de red Chrome cuando cargue una página desde el New York Times o algún otro sitio importante, descargue más de 40 activos que incluyen HTML, CSS, JS, imágenes, fuentes y más.
    • En dispositivos móviles, la mayoría de las aplicaciones nativas realizan una o dos solicitudes de datos de red, si es así, antes de mostrarle contenido. Imagínese ~ .5KB nativo frente a 19MB de recursos web (suponiendo que la versión web móvil acapare tanto como un sitio de escritorio típico)
    • Pero como señalaron, cuando optimizan la versión de Mobile Web, mejoran todas las aplicaciones de Quora.

¿Es esto más difícil?

Sí. Si está intentando esto como un equipo pequeño, necesita a alguien que tenga un conocimiento práctico de Android, iOS y desarrollo móvil nativo. También necesita un desarrollador web con un enfoque similar al láser en el rendimiento.

Pero a la larga, es robusto y sostenible en comparación con la dependencia continua de otra herramienta, incluso si es de código abierto y puede bifurcarlo usted mismo: espéreme antes de combinar las actualizaciones del tronco por primera vez, tomaré algunas palomitas de maíz .


¿Encontraste esta respuesta útil? ¡Entonces, vótelo para que otros usuarios también puedan verlo! Y sígueme para obtener más respuestas sobre Android y otras cosas enfermas.

Aplicación híbrida

React Native Tutorial – Aplicaciones de Android en Google Play

No puedo comprobarlo ahora que estoy en el móvil, pero hay una gran extensión de Chrome y Firefox que revela la mayoría de las tecnologías que usa un sitio web llamada Wappalyzer.