¿Cuál es la estrategia general detrás del desarrollo de una aplicación de Android que se ejecuta en teléfonos inteligentes y tabletas móviles?

¡Gracias por el A2A, Quora User! Tengo tres estrategias arquitectónicas para que consideres y haré todo lo posible para brindarte las ventajas y desventajas de cada una.


Flujo maestro-detalle

¿Que es esto? Un fragmento de navegación (A) lleva al usuario a otro fragmento (B) en sus teléfonos. En su tableta, se abrirá el fragmento B en el panel del lado derecho en lugar de lanzar una nueva Actividad.

A nivel técnico, esto requiere dos diseños principales: pantalla completa y navegación con panel del lado derecho. La Actividad A debe detectar si el diseño tiene el panel del lado derecho disponible y carga el Fragmento B en él en lugar de lanzar una nueva Actividad.

Pros:

  • Relativamente simple de implementar
  • Funcionalidad reutilizable

Contras:

  • Su diseño es increíblemente limitado.
  • Estás obligado a usar Fragmentos, y los Fragmentos apestan

Los fragmentos proporcionan una API pobre y confusa; como Square, me he rendido con ellos. También odio la previsibilidad y el alcance limitado de este diseño. Incluso si se hace sin Fragmentos, obligar a dos contenedores de Vista a trabajar entre sí requiere una capa adicional de control de IU en la Actividad que los distorsiona.

Esta práctica introduce un fuerte acoplamiento [1] y una combinación de responsabilidades con las que se vuelve más difícil trabajar con el tiempo. Pero, de nuevo, si este es el diseño que desea y no puede priorizar un diseño más elegante, continúe y utilícelo.


Diseño de materiales

La reciente dirección de diseño de Google proporciona, en mi opinión, una experiencia muy superior en tabletas y teléfonos móviles en comparación con el antiguo y reventado flujo Master-Detail. Material Design pone al usuario primero y no al desarrollador que busca ahorrar algo de tiempo reutilizando Fragments a su conveniencia.

El patrón que se ve aquí presenta una experiencia de pantalla completa en el teléfono y experiencias compactadas en pantallas más grandes. En un nivel técnico, los Fragmentos salen por la ventana en este diseño a favor de Actividades que esencialmente permanecen igual. Las diferencias clave se encuentran en los archivos de diseño para la Actividad, los elementos de la lista y más.

Pros:

  • ¡Se ve fantastico!
  • Sigue un patrón que los usuarios conocen (de los productos de Google)
  • Menos código hacky involucrado

Contras:

  • Mas trabajo
  • Tienes que aprender Diseño de materiales

Me encanta el diseño de materiales, es brillante para mí. Las guías proporcionan una cantidad increíble de detalles que ayudan a acelerar el proceso de aprendizaje. Seguir Mat-Des tiene beneficios adicionales: los usuarios se adaptarán a sus aplicaciones porque se ven profesionales y es más probable que Google presente su aplicación si ayuda a promover su gran plan maestro.


Usa el espacio

En este ejemplo, The Economist y aplicaciones similares proporcionan una experiencia diferente y posiblemente superior para los usuarios de sus tabletas. Estos podrían ser Fragmentos, podrían ser parte de una sola Actividad, en realidad no importa.

Pero en lugar de estirar una vista móvil o incluso refactorizarla para llenar un lienzo súper ancho, le han dado al usuario más para hacer, más para interactuar y han hecho que la experiencia sea única para ellos y su dispositivo.

Pros:

  • Los usuarios de tabletas se sienten especiales
  • Su experiencia de tableta se destaca

Contras:

  • Más trabajo que las opciones anteriores porque también debe diseñarlo usted mismo
  • Código menos reutilizable (algunas de estas pantallas / Actividades / Vistas solo se aplicarán a las tabletas)

Si sabe con certeza que los usuarios de tabletas están interesados ​​en su aplicación, no puede hacerles un favor mayor que recompensándolos por descargar su aplicación. Si bien la mayoría de los diseños de tabletas se sienten como ideas posteriores, la suya les mostrará que se preocupan por ellos y su experiencia.


¡Gracias por leer! Si te encantó mi respuesta, por favor ‘ vota ‘ y sígueme ¡para obtener más respuestas sobre Android, desarrollo de software y más cosas divertidas!

¿Quieres trabajar juntos? Contáctame !

Notas al pie

[1] Acoplamiento (programación de computadora)

¿Usas fragmentos?

Sí. Incluso después de leer esta publicación, llegué a la conclusión de que es más fácil crear aplicaciones utilizando fragmentos (estoy hablando de las aplicaciones en las que estoy trabajando actualmente. Podría cambiar de opinión más adelante con diferentes proyectos). Un buen enfoque que funciona para mí es implementar primero fragmentos / actividades diseñados por teléfono y mantener en un lugar en el fondo de mi mente que los usaré también para tablas.

¿Crea aplicaciones separadas para teléfonos inteligentes / tabletas

No. No estoy seguro de cómo funciona con los juegos, pero para las aplicaciones habituales es mucho más fácil mantener todo en un solo proyecto. No se debe a la fase de desarrollo, pero imagine que necesita corregir errores cuando su aplicación está activa y desarrollar nuevas funciones en dos aplicaciones separadas. Este enfoque podría funcionar solo si separa la lógica empresarial de la aplicación, la base de datos, la comunicación de red (básicamente todo excepto la interfaz de usuario) en alguna biblioteca y usa esta biblioteca en ambas aplicaciones.

¿Ha utilizado el flujo de detalles maestros y tiene inconvenientes?

Sí y (tal vez) sí -> El único inconveniente de todo esto es asegurarse de que el fragmento sepa a qué actividad está unido, y la actividad para saber cuántos (y QUÉ) fragmentos contiene. Use interfaces para comunicarse con los componentes.

El mejor enfoque para construir la aplicación:

  1. Construye la versión móvil primero. Ponga cada fragmento en una actividad separada.
  2. Cree nuevos diseños para actividades que contengan fragmentos en el modo tableta (para que tenga res / layout / main_activity.xml para dispositivos telefónicos y res / layout-w720dp / main_activity.xml para dispositivos tablet)
  3. Ahora, tú tienes dos opciones. Si está mostrando fragmentos usando la etiqueta en xml, es bastante fácil y no tiene que hacer nada. Si los está adjuntando en el código, debe averiguar si debe mostrar dos fragmentos o solo uno. La mejor manera de hacer esto es verificar si la vista de actividad contiene un marcador de posición para el segundo fragmento. Si lo hace, debe mostrarlo.
  4. Lucro

Última nota: en general, no es una buena idea tener solo una actividad en toda la aplicación si desea admitir el modo tableta. Es increíble saber si estás realmente en un teléfono o en una tableta, qué fragmentos están activos y cuáles no, cuáles están en la pila y cuáles deben mostrarse uno al lado del otro y cuáles no. Confía en mí, he estado allí.

PD: Este tema se trata con mucha profundidad en el libro de CommonsWare “La guía del programador ocupado para el desarrollo de Android” en la sección “Estrategias y tácticas de pantalla grande”.

Aquí, nos gustaría hablar sobre la poderosa estrategia de desarrollo de aplicaciones de Android para los mercados en desarrollo. Es importante tener en cuenta que hay una gran diferencia en la estrategia de desarrollo de aplicaciones móviles para los mercados desarrollados en comparación con los mercados en desarrollo, ya que hay varios factores que afectan la estrategia, incluidas las diferencias sociales, económicas y otras diferencias demográficas.

Identifique las necesidades de su público objetivo

Al desarrollar cualquier aplicación de Android, lo más esencial para comprender es identificar su mercado objetivo. Una vez que complete la investigación sobre su público objetivo, enumere las características que sus usuarios finales esperan en su aplicación.

Seleccione la plataforma de desarrollo de aplicaciones adecuada

Android e iOS son los sistemas operativos móviles más utilizados en todo el mundo. Debe preferir la plataforma Android, ya que la proporción de usuarios de teléfonos inteligentes Android es mayor cuando habla de los mercados en desarrollo.

Vea más estrategia de desarrollo de aplicaciones de Android aquí: Estrategia de gran alcance para el desarrollo de aplicaciones de Android para mercados en desarrollo

Lo que hago para mis juegos es comenzar con una dimensión virtual básica. Digamos 480 x 800 para un teléfono inteligente estándar. La relación del ancho a la altura aquí es 480/800 = .6

Para mis juegos, si la proporción de la pantalla está entre .5 y .7 (la mayoría de las pantallas lo están), utilizo una ventana gráfica que estira la pantalla a cualesquiera que sean las dimensiones del dispositivo. Como la relación es muy cercana a .6, no habrá mucha distorsión.

Ahora, en el caso de que la relación esté algo lejos del ancho y la altura virtual estándar que ha creado, como por ejemplo una pantalla cuadrada (Una relación de 1), usaré una ventana gráfica diferente. Esta ventana producirá una pantalla virtual de 480 x 800 en el dispositivo y cubrirá cualquier espacio restante en los lados con barras (algo así como cómo funciona un televisor con algunos programas). Esto ayuda a resolver el problema de distorsión en dispositivos que son muy diferentes de su dispositivo virtual.

Si quieres ver de qué estoy hablando, puedes ver mi juego, Color Walls.

Color Walls – Aplicaciones de Android en Google Play

Si juegas este juego en dispositivos que son similares a un teléfono inteligente estándar, la pantalla se estirará para adaptarse a la pantalla. Si la pantalla es muy diferente, habrá barras negras en el costado cuando juegues.