martes, 19 de octubre de 2010

MEJORES PRÁCTICAS PARA REALIZAR APLICACIONES DE BUENA CALIDAD PARA WP7

Si eres desarrollador para WP7 después del salto encontraras valiosísimos consejos que desde Microsoft nos afirman que son parte de las mejores prácticas para realizar aplicaciones de buena calidad. Esperamos que te resulten de utilidad.

Estos no consejos son los puntos principales que se aconsejan desde Microsoft para realizar aplicaciones. Pero para detalles más concretos hay que leer los documentos de certificación:
http://go.microsoft.com/?linkid=9730558/
Los documentos de MSDN, especialmente los docmentos de ‘Fundamental Concepts’ aquí:
http://msdn.microsoft.com/en-us/library/ff967549(v=VS.92).aspx
Y el documento técnico de Silverlight para Windows Phone aquí.
http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=3a8636bf-185f-449a-a0ce-83502b9ec0ec

Hibernación-Asegúrate que la aplicación pasa a estado de hibernación correctamente
La mejor forma de comprobar la hibernación es usando el botón Inicio para salir de la aplicación, después presionar el botón atrás para volver a rehidratar la aplicación. Espera bastante tiempo entre que presionas el botón Inicio y presionas el botón atrás. Hibernanar e hidratar multiples veces también debe ser usado como un test de estrés de la aplicación. Esto debe repetirse en cada hoja de la aplicación. Otra cosa importante es volver a la copia de seguridad del BACKSTACK cuando vuelves atrás. Algunas veces la página inicial vuelve pero la aplicación falla un nivel superior-

Tu aplicación debe serealizar correctamente sus datos y deserealizarlos cuando se reinicia. En particular, estar seguro de que:
• Los datos deben recargarse
• Los datos en cualquier forma o control se preservan
Más info: http://msdn.microsoft.com/en-us/library/ff769557(v=VS.92).aspx

Funcionamiento
La aplicación debe responder a la acción del usuario todo el tiempo. En particular, la aplicación debe seguir esta lista de mejores prácticas:
• No usar el ProgressBar normal. Usar el Performance Progress Bar
• Para listas pequeñas u objetos con tamaño variable, DeferredLoadListBox (and StackPanel)
• Cargar las imágenes en el fondo como se menciona en LowProfileImageLoade
• Si has jerarquizado listboxes, Confessions of a ListBox groupie
• Siempre usa httpwebrequest en lugar de WebClient
• Usa eventos de manipulación para tratar los gestos en la medida de lo posible.
• Evita en lo posible los constructores app/página y el gestor de eventos OnNavigateTo.
Tener mucho código corriendo aquí (en particular leyendo largas plantillas de datos del IsoStorage o de la nube) pueden congelar la UI. En el arranque inicial, esto puede causar que tu aplicación no alcance el límite de 10 segundos.

Uso de memoria
La aplicación no debe exceder el uso de 90MB de RAM. El DeviceExtendedProperties class puede ser usado para requerir una cantidad de memoria en el teléfono y modificar el comportamiento de la aplicación en el momento de funcionamiento para tener la salvaguarda de memoria adicional. Más información para temas de diagnostico de exceso uso de memoria:
http://dotnetprofessional.com/blog/post/2010/09/27/Debug-Memory-Counter-for-Windows-Phone-7.aspx

Banding- las imágenes en el teléfono son 16bit
El emulador del teléfono incluido con las herramientas de desarrollo soporta una paleta de color de 24bit. Los teléfonos Windows Phone soportan una paleta de color de 16bit. Esto significa que algunas imágenes puede parecer que tienen baja calidad sólo en el teléfono
Asegúrate que:
• Evita usar gradientes o imágenes con cambio gradual de color.
• Cuando exportes imágenes, expórtalas a un espacio de color de 16bit

Botón de inicio- No lo uses
• Las aplicaciones de Windows Phone no deben usar el botón de inicio. Después de que un usuario utilice el botón de inicio puede confundirse ante el comportamiento del Botón Volver

Splashscreens y arranque
• No uses la imagen splashscreenimage.jpg de defecto. Usa una específica de la aplicación.
• La aplicación debe cargar su primera página rápidamente. Las aplicaciones que fallen en la carga de cómo máximo 10 sg se cancelarán por el SO
• Si tus aplicacione usasn paginas cargadas o introductorias, no deben estar incluidas en el backstrack ( por ejemplo, se deben saltar cuando el usuario usa el Botón Volver)
• Los usuarios deben poder salir de la aplicación presionando Volver desde la página de arranque de la aplicación.

Controles de panorama o de pivote
• No use controles que puedan moverse dentro de los controles panorama o de pivote. Por ejemplo, poniendo controles de un mapa dentro de los controles Panorama pueden hacer difícil el uso de los controles panorama.
• Los controles panorama no deben tener ApplicationBars
• Cuando el usuario presiona los controles debe tener algún tipo de respuesta. Por ejemplo usar el kit de Herramientas Silverlight para Windows Phone http://silverlight.codeplex.com/releases/view/52297

Light theme and highlight color
• La aplicación debe funciones correctamente en el Light theme. El texto se debe mostrar correctamente y debe ser legibel.
• Las aplicaciones no deben asumir que funcionan para todos los temas. Hay un color específico MO que debe esta presente.
• Más info: http://msdn.microsoft.com/en-us/library/ff402557(VS.92).aspx

Localización opt-out
• Aplicaciones que usen una API de localización deben preguntar al usuario si quiere usarlas.

Información de Contacto
• La aplicación debe proporcionar como mínimo , información de contacto por email.

Orientación horizontal
• Si la aplicación permite tener modo vertical y horizontal, los controles se deben realinear correctamente

Mosaico de inicio
• La apliación debe tener un mosaico de inicio que debe ser de ALTA CALIDAD.

Reproducción de Música
• Si una aplicacíon reproduce música, esta debe pausarse en y reiniciarse cuando acabe de reproducirse.

Condiciones de Red
Condiciones de red pobres

• En particular mirar el el funcionamiento de ListBox en situaciones de bajo ancho de banda. ListBox debe cargar datos en cuanto se aposible. Más info
• http://blogs.msdn.com/b/ptorr/archive/2010/10/12/procrastination-ftw-lazylistbox-should-improve-your-scrolling-performance-and-responsiveness.aspx

Sin Red
• Si no hay conexión de red, la aplicación debe proporcionar una alerta adecuada. Se puede usar el modo avión para probar esto.
• Verificar que la aplicación puede seguir siendo navegable cuando no hay red disponible. Aunque pueda no haya datos de la red, la navegación por la aplicación debe ser correcta. También deben mostrarse mensajes al usuario de lo que está mal.

FUENTE: MICROSOFT

No hay comentarios:

Publicar un comentario