El post que buscas se encuentra eliminado, pero este también te puede interesar

Desarrollo de apps y juegos para tabletas Intel® Android

Sinopsis

En este artículo se tratan cuestiones relacionadas con el diseño de aplicaciones para tabletas: el diseño de la interfaz de usuario, la duración de las sesiones, las adaptaciones a las diferencias entre usuarios y la localización. Se analizan procedimientos de depuración y optimización. También nos ocupamos del impacto que tienen diferentes métodos de despliegue en las funcionalidades disponibles de las aplicaciones. Con los consejos de este artículo, estará preparado para crear una aplicación que se distinga, dirigida a sus clientes que usen tabletas Intel® Android*.

Introducción

Los ingenieros de Intel han trabajado con pequeños y grandes desarrolladores con la idea de mejorar sus aplicaciones para tabletas Intel Android. Hemos visto muchos ejemplos de decisiones de diseño que condujeron al éxito. Compartimos en este artículo un resumen de lo que hemos visto y aprendido, con la esperanza de que ayude también a los lectores a lograr el éxito.
Desde el concepto hasta el diseño y la implementación, los desarrolladores para tabletas Intel Android tienen la oportunidad de que sus aplicaciones sobresalgan. La integridad conceptual, la eficiencia de diseño, la elección del entorno y la selección de herramientas son algunos de los muchos aspectos fundamentales con los que los desarrolladores deben hacer malabares. En este artículo se ofrecen sugerencias que conviene tener presentes para aprovechar el potencial de los dispositivos.

¿Cuál es su gran idea?

Los mejores juegos y aplicaciones tienen una idea básica que respetan a la perfección. Si ha reducido su idea a su esencia de utilidad o entretenimiento, analizar esto a fondo le facilitará tomar la mayoría de las demás decisiones relacionadas con el desarrollo. Si la finalidad no es clara, tendrá un producto con características que no vienen al caso, que se sentirá burdo y arbitrario, y los clientes lo dejarán a un lado para inclinarse por aplicaciones que hagan una sola cosa realmente bien. Con la integridad conceptual apropiada, detectará oportunidades de mejorar el diseño y evitar esforzarse en desarrollar funcionalidades que los usuarios ya reciben de otras aplicaciones.

Diseñe para la mayor cantidad posible de dispositivos

Las tabletas electrónicas y los smartphones abundan, y los hay de diferentes tamaños y resoluciones de pantalla. Si bien conviene tener en mente un dispositivo de destino, esto es solo el primer paso. Su aplicación debe funcionar perfectamente en el dispositivo ideal, pero adaptarse bien a una amplia variedad de plataformas. Para que las pantallas pequeñas muestren fielmente los aspectos visuales, diseñe para la pantalla más grande en la que se vaya a ejecutar su aplicación y luego reduzca el tamaño para que se ajuste al área visible. Hay varios métodos para lograr compatibilidad con diferentes tamaños de pantallas; en el caso de juegos web, podría ser tan simple con dibujar todo en un lienzo y dibujar ese lienzo en otro que se ajuste a la pantalla de manera adaptable, o dibujar en diferentes resoluciones y reescalar con JavaScript* o CSS.

Desarrollo de apps y juegos para tabletas Intel® AndroidFigura 1: Los elementos de tamaño fijo de la interfaz de usuario pueden verse demasiado pequeños en pantallas de tabletas grandes.

Otra cuestión que se debe considerar es que todos los controles y el texto deben ser útiles en las pantallas más pequeñas. Hay muchos recursos en línea que brindan orientación sobre diseño para diversas plataformas. Como el moderno diseño de Windows 8 se creó para pantallas táctiles, sugerimos a los desarrolladores que aprendan y respeten los principios de diseño moderno y las pautas para aplicaciones de WinRT, porque también se aplican a los dispositivos Android.

Esas convenciones son de mucha utilidad; por ejemplo, lograr un espaciado y una distribución óptimos en circunstancias normales. Hay una razón válida para cada convención. Si uno comprende las normas, las aplicaciones y los fundamentos, puede aprovecharlos al máximo, incluso romper intencionalmente las reglas para lograr un efecto deseado.

Diseñe para movilidad

El usuario promedio consulta el teléfono entre 100 y 900 veces al día, las sesiones de juego informales duran unos 3 minutos y los lugares de uso son muy disímiles (de la propia casa al trabajo, y todo lo que haya en el medio, como transporte público, restaurantes, etc.); por ello, la variación de entornos de las aplicaciones y los juegos móviles repercuten de manera considerable en su facilidad de uso.
Si está creando un juego, la duración general de las sesiones se reduce a pocos minutos. Esto no quiere decir que estén prohibidas las aventuras épicas inacabables, pero sí significa que debe haber un mecanismo para que los usuarios hagan una pausa casi en cualquier momento y no tengan problemas para regresar al juego. Más allá de si el mecanismo es incorporar batallas cortas o separar rompecabezas con pantallas de selección de nivel, o un sencillo menú permanente para hacer una pausa o continuar jugando que incluya en resumen de lo que está ocurriendo en el juego, la mayoría de los usuarios necesitan tener la posibilidad de abandonar sus dispositivos.
De manera similar, si la aplicación exige silencio absoluto y una iluminación perfecta, muy pocos podrán usarla fuera de casa, y quizá ni siquiera allí. Todo, desde el color que se elija hasta la modulación del sonido, es importante para asegurarse de que la experiencia del usuario sea buena.

Diseñe para la gente

Si está creando aplicaciones para un conjunto muy reducido de la población, puede ajustar el diseño a sus necesidades, pero esta es una situación poco común. La mayoría de las aplicaciones no puede darse ese lujo. Deben poder usarlas la mayor cantidad de gente posible.

Además de lo que ya mencionamos sobre los entornos de uso, como el transporte público, hay más de 360 millones de personas con problemas de audición, 285 millones con discapacidad visual y 280 millones con daltonismo en todo el mundo. La mayoría de los usuarios que necesitan algún tipo de asistencia ya tendrán alguna solución preparada, pero de todos modos este es un aspecto del diseño y el desarrollo que requiere de atención. Si existe alguna manera de agregar indicaciones sonoras a las aplicaciones con muchas imágenes, subtítulos a las partes habladas de los juegos y símbolos identificables para diferenciar entre objetos de colores, o una paleta distinguible para daltónicos en la cual todos los colores importantes tengan distinta luminosidad, estará mucho más cerca de lograr que todo aquel que descargue su producto pueda usarlo.

La localización es otro terreno al que muchos juegos y aplicaciones terminan por dedicar tiempo de desarrollo y dinero con el único fin de llegar a otros países. Como el costo puede llegar a ser de 10.000 a 15.000 dólares estadounidenses por idioma, conviene reducir al mínimo el texto que se necesite localizar. ¿Puede su aplicación hacerse entender por el usuario mediante símbolos comprensibles en todo el mundo? ¿Pueden los personajes del juego usar emojis universales para comunicarse, en lugar de palabras? Cada paso que se acerque a interactuar directamente con la mente del usuario en lugar de con su vocabulario aumentará el público potencial, sin costo adicional.

Abundancia de entornos

Si su aplicación no va a utilizar un motor de juego ya existente, una de las primeras decisiones que se deben tomar en cuanto a la implementación es qué tipo de ejecutable tendrá: nativo, web o híbrido.

Nativo

Las aplicaciones nativas son de bajo nivel, lo cual permite acceder a recursos de hardware más potentes, pero impone más restricciones al desarrollo y la portación a otras plataformas. El lenguaje más común para el desarrollo Android nativo es Java, generalmente por medio del SDK (Kit de Desarrollo de Software) para Android* básico o el NDK (Kit de Desarrollo Nativo). Herramientas tales como Intel® INDE (Experiencia Integrada de Desarrollo Nativo de Intel®) se centran tanto en Java como en C++. Intel INDE no solo contiene compiladores, sino también herramientas de análisis que ayudan a identificar y corregir problemas de rendimiento de las aplicaciones.

Web

Las aplicaciones web, desde los juegos para navegadores hasta las herramientas online, son versátiles y de fácil distribución, pero a menudo les falta potencia y, como lo implica su nombre, por lo general necesitan conectividad a internet para funcionar. HTML5 y JavaScript* son la norma para estas aplicaciones. Si la aplicación funciona simplemente como una interfaz a alguna herramienta del lado del servidor, la opción web es excelente; la parte negativa es que cada uno de los usuarios accede a los servidores, lo que eleva los costos de alojamiento para satisfacer la demanda.

Híbrido

Para aprovechar la flexibilidad natural de las aplicaciones web y la potencia del hardware de los dispositivos móviles, se puede optar por aplicaciones híbridas: tecnología web integrada en una envoltura nativa. Intel XDK (Cross-platform Development Kit) y otras herramientas de este tipo son ideales para elaborar aplicaciones híbridas. Las mismas aplicaciones web en JavaScript que mencionamos antes se pueden importar, potenciadas con llamadas a API que saquen provecho del hardware, y darles un toque final con código “listo para el dispositivo”, para crear paquetes nativos en plataformas móviles.

intelFigura 2: La elección de un ejecutable es algo que lo afectará a usted y a sus clientes.

La decisión de optar por una aplicación nativa, web o híbrida depende en gran medida del uso que se le pretenda dar, los recursos y la funcionalidad requeridos, y la familiaridad del desarrollador con los distintos lenguajes. A la vez, esta decisión determina la manera en que se puede distribuir, usar y monetizar la aplicación.

Ventajas de la ligereza

Una interfaz fácil de usar brinda muchos beneficios, pero para aprovechar al máximo la aplicación desarrollada, es necesario que no exija demasiado al dispositivo. Las descargas de tamaños inmanejables, el uso exagerado de recursos y el pedido de permisos innecesarios son barreras que dificultan la adopción o la continuidad de uso (y obstaculizan las ventas por el boca en boca).
Una manera de reducir el tamaño de la descarga inicial es con descargas posteriores de “archivos adicionales”. Lamentablemente, esto quizá moleste a los usuarios y trae consigo un problema más importante que también puede afectar el rendimiento: el manejo subóptimo de recursos redundantes. Las bibliotecas de texturas, los modelos y los sonidos que constituyen la mayor parte del tamaño del archivo tendrán que cargarse en la memoria (y si no es así, hay otros problemas), lo que hará más lenta la aplicación. Si se resuelve la causa de origen, no solo la aplicación funcionará mejor, sino que la descarga inicial y las siguientes se reducirán sustancialmente.
La solución para muchas aplicaciones es un procedimiento que apunta a la reutilización y que se ideó en las viejas épocas del desarrollo con limitaciones de memoria. Usar las mismas imágenes y sonidos con diferentes paletas y máscaras puede proporcionar la variedad necesaria y a la vez reducir al mínimo el espacio y los recursos requeridos. Incluso si no hay posibilidad de recurrir a la reutilización en el sentido estricto, reducir al mínimo los archivos a los que sea necesario acceder aumentará el rendimiento de manera demostrable. Por ejemplo, World of Goo crea atlas de texturas para fines específicos durante la carga de niveles, de esta manera incluso los recursos de imagen que se usan en otros lugares se combinan en un solo recurso. Este incremento del rendimiento dará réditos en el paso siguiente: análisis y optimización.

A eliminar errores y simplificar la ejecución

Lo ideal sería que la aplicación se ejecutara sin ningún inconveniente la primera vez y que no fuera necesario hacer mejoras. Pero el mundo real no es así. En toda aplicación más compleja que un ejemplo para recién iniciados, invariablemente habrá errores. Los peores errores no impiden que funcione la aplicación, sino que la hacen más lenta, en cuanto al rendimiento o la latencia, y la experiencia del usuario se ve perjudicada. Asimismo, el sobredibujo y los búferes dobles sin utilizar son dos ejemplos de problemas que, aunque no son errores, reducen el rendimiento y la duración de la batería. Todas estas son oportunidades de mejorar aún más su aplicación. La mejor manera de encontrar oportunidades como estas es con herramientas de análisis de perfiles y analizadores de rendimiento.
Intel® XDK ofrece depuración en el emulador, depuración remota en dispositivos Android conectados en la pestaña Debug e información de análisis de rendimiento en la pestaña Profile.

AndroidFigura 3: Intel® XDK facilita el desarrollo de aplicaciones híbridas

¿No usa Intel XDK? Los Analizadores de Rendimiento de Gráficos Intel® (Intel® GPA) son un conjunto de herramientas de análisis de rendimiento ideadas con el fin de ayudar a identificar áreas subóptimas para mejorarlas. Aunque estas herramientas son perfectamente aptas para aplicaciones que usan todo el poder ofrecido por las PC, también funcionan con aplicaciones Android, y ganan su lugar por derecho propio entre las otras herramientas nativas de Intel® INDE.

Resumen
Hay muchísimos factores que se deben tener en cuenta cuando se desarrollan aplicaciones o juegos móviles. La integridad conceptual es clave para decidir entre la enormidad de opciones y acotar el infinito espacio creativo. Cada aspecto del desarrollo puede repercutir en los anteriores y los que le siguen, por ello son fundamentales la planificación y la reiteración. Las convenciones sobre interfaces táctiles, globalización y diseño de imagen y sonido para dispositivos móviles constituyen puntos de partida valiosos y materia para reflexionar en este ejercicio.
Intel® INDE ofrece un enorme conjunto de herramientas para desarrolladores de aplicaciones nativas. Intel® XDK ayuda a los desarrolladores web en todo lo que puedan necesitar: desarrollo, emulación, pruebas, depuración y empaquetado. Ambos tienen abundante documentación y asistencia en foros que continuarán creciendo.
Los métodos y herramientas que se incluyen en este artículo se tomaron de lecciones que los ingenieros de Intel han aprendido de ayudar a muchos desarrolladores de aplicaciones. Son de suma utilidad para maximizar la probabilidad de que su aplicación logre popularidad y pase a formar parte de la vida de sus clientes. Buscar un concepto, un diseño y una implementación óptimos es una empresa exigente en extremo, pero que termina siendo provechosa.

Acerca del autor

Brad Hill trabaja como ingeniero de software en la División de Relaciones con los Desarrolladores de Intel. Investiga nuevas tecnologías en hardware Intel y comparte los mejores métodos con desarrolladores de software por medio de la Zona Intel® de Desarrolladores y las conferencias para desarrolladores. También es director de ingeniería de hackatones estudiantiles y dirige los hackatones Code for Good en universidades de todo el país.

Fuentes de Información - Desarrollo de apps y juegos para tabletas Intel® Android

El contenido del post es de mi autoría, y/o, es un recopilación de distintas fuentes.

¿Te gustó lo que viste?

Inscríbete en el newsletter de Taringa! para recibir más artículos como este.

¡Gracias por suscribirte al newsletter!

Periódicamente recibirás en tu correo más artículos de Taringa!

0 comentarios - Desarrollo de apps y juegos para tabletas Intel® Android

Los comentarios se encuentran cerrados