.NET UY Meetup 3 - Presentaciones Efectivas by Ariel Erlijman
.NET UY Meetup 4 - Windows 8: Lecciones Aprendidas by Alvaro Regalado & Leonardo Borzillo
1.
2. • Quienes somos
• Un poco de historia
• ¿Por donde empezamos?
• La idea detrás de Time Tracker
• Diseño de Prototipos
• Flujo de la aplicación
• Comandos
• Sincronización de datos
• Regionalización
• Monetización
• Certificación
• Enlaces útiles
• Demo de app para Windows 8
• Windows Store
• Demo de Windows Store
• Windows Phone 8
• Estrategias para compartir código con Windows Phone 8
• 5 Herramientas gratis para Windows Phone 8
• Demo de app para Windows Phone 8
3.
4.
5.
6.
7.
8.
9.
10.
11.
12. Buscar: permite que los usuarios busquen rápidamente el contenido
de la aplicación desde cualquier parte del sistema, incluso desde otras
aplicaciones. Y viceversa.
Compartir: permite que los usuarios compartan contenido de la
aplicación con otras personas o aplicaciones, y reciban contenido
compartido.
Dispositivos: permite que los usuarios disfruten de la transmisión de
audio, vídeo o imágenes desde la aplicación a otros dispositivos de la
red doméstica.
Configuración: consolida toda la configuración en un solo lugar y
permite que los usuarios configuren la aplicación mediante un
mecanismo común con el que ya están familiarizados.
La barra de la aplicación inferior muestra comandos relevantes para el
contexto del usuario, normalmente la página o la selección actuales.
La barra de navegación muestra elementos de navegación, como el
botón Atrás y los selectores de página, que mueven al usuario a una
página diferente.
http://msdn.microsoft.com/es-es/library/windows/apps/hh761499.aspx
17. • Cobrar el precio total antes de la descarga
• Versiones de prueba gratuitas de aplicaciones pagas
• Compras desde la aplicación
• Publicidad en la aplicación
Se pueden efectuar las transacciones de pago
con terceros:
http://services.windowsstore.com/
18. Alinearse a los requisitos para que la app sea certificada.
http://msdn.microsoft.com/es-es/library/windows/apps/hh694083.aspx
Algunos ejemplos:
- La aplicación debe superar las pruebas proporcionadas por la última versión del kit para la certificación
de aplicaciones en Windows
- La aplicación debe cumplir con los criterios de rendimiento básicos en un equipo de bajo consumo
- La aplicación debe iniciarse en menos de 5 segundos
- La aplicación debe suspenderse en menos de 2 segundos
- Tu aplicación debe tener una declaración de privacidad si tiene capacidad de red
- La aplicación no debe cumplir con las directrices de contenido y clasificación, y los metadatos deben
ser apropiados para todos
- Debes proporcionar información de soporte técnico para la aplicación
- Debes localizar la aplicación en todos los idiomas que admite
- Debes proporcionar una descripción completa de tu aplicación para los clientes en cada idioma que
declaras en el paquete de la aplicación
- Debes proporcionar capturas de pantalla localizadas de tu aplicación para cada uno de los idiomas que
admita la aplicación
25. •Desarrollar UNA ÚNICA Aplicación para
dos sistemas diferentes
• Compartir y reutilizar la mayor cantidad
de código común.
•Reducirla cantidad de código específico de
cada plataforma en lo posible.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681693(v=vs.105).aspx
26. 1. Ctrl-C, Ctrl-V (no recomendado)
2. Enlazar archivos (add as link)
3. Compilación Condicional
4. Componente Windows Runtime (c++)
5. Portable Class Library
6. MVVM para la UI
Somos una empresa dedicada al desarrollo de software especializada en tecnologias Microsoft. Nuestra modalidad de trabajo es variada., hemos funcionado como software factory para empresas como Infocorp, Memory, ADA BSE, etc. Tambien realizamos aplicaciones a medida para pymes y tenemos nuestra cartera de aplicaciones con marca propia.
Esta historia de empezar a programar para Windows 8 empezó alla por Marzo de 2012 donde nos contactamos con el Developer Evangelist de Microsoft Miguel Saez , en un evento llamado “Run”. Alli nos comento de un programa llamado “Pioneros en Windows 8” donde se le daba la posibilidad a las ideas seleccionadas, de ser desarrolladas con el apoyo del equipo de Microsoft. Nuestra idea de aplicacion “Time Tracker” fue seleccionada y lo demas es historia
http://msdn.microsoft.com/library/windows/apps/hh465427
De ultima si no es una idea original… repensar algo ya existente.
1. Decidir en que es grandiosa mi app, en que se enfoca
La parte mas importante de una app para W8 es determinar en que va ser lo mejor mi aplicación
De que se trata mi app? Hacer una lista con las cosas que va a hacer mi app
Luego, Revisar esa lista y sacar todas las cosas que están "fuera de foco"
Luego de elegir el "escenario" explicar en un renglón en que es grandiosa tu app
1. Decidir en que es grandiosa mi app, en que se enfoca
La parte mas importante de una app para W8 es determinar en que va ser lo mejor mi aplicación
De que se trata mi app? Hacer una lista con las cosas que va a hacer mi app
Luego, Revisar esa lista y sacar todas las cosas que están "fuera de foco"
Luego de elegir el "escenario" explicar en un renglón en que es grandiosa tu app
¿A quien esta orientada?
En este punto tenemos que decidir que caracteristicas de la plataforma utilizar
App contracts : Search , Share Play To, File Picker
Different vistas y form factors
Touch first, Semantic Zoom, Animaciones, Toast notifications, App Tiles, User Tiles
Settings, Roaming, Caracteristicas relacionadas con dispositivos (Ej GeoLocation)
Se deben respetar las guias sino la app no pasa la cert.
Diseñar la UI de la aplicación
Navegación
Que comandos va a tener cada formulario
Definir que pueden hacer los usuarios Luego:
•Outline the flow: What comes first, what comes next?
•Storyboard the flow: How should users move through your UI to complete the flow?
•Prototype: Try out the flow with a quick prototype.
Hacer hincapie en el foco de la aplicacion… “Para que sirve”
Diseñar los commandos respetando las directivas
Comandos persistentes a la derecha, contextuales a la izquierda
Vamos a hacer roaming de datos, sincronizacion de datos, seguridad, volume de datos, restricciones de red.
http://lyacmt.cloudapp.net/DefaultScopeSyncService.svc/
Enlace a “Metered Networks”
Hablar de que Azure Mobile Services… Sync Framework.
http://lyacmt.cloudapp.net/DefaultScopeSyncService.svc/$syncscopes
http://lyacmt.cloudapp.net/DefaultScopeSyncService.svc/$diag
manage.windowsazure.com
Hacer hincapie en el foco de la aplicacion… “Para que sirve”
En este punto tenemos que decidir que caracteristicas de la plataforma utilizar
App contracts : Search , Share Play To, File Picker
Different vistas y form factors
Touch first
Semantic Zoom
Animaciones, Toast notifications
App Tiles, User Tiles
Settings
Roaming
Caracteristicas relacionadas con dispositivos (Ej GeoLocation)
Se hace manualmente agregando en Package.AppManifest los idiomas y luego el archivo de recursos
O utilizando la aplicacion MAT.
Hablar de las opciones que hay para monetizar las apps…. Las opciones de Microsoft o las opciones de terceros
Se hace manualmente agregando en Package.AppManifest los idiomas y luego el archivo de recursos
O utilizando la aplicacion MAT.
Hacer hincapie en el foco de la aplicacion… “Para que sirve”
Let’s just see it in action..
Hablar de ponerle esfuerzo a
Como se ven los Tiles y las notificaciones
Splash
La primera pantalla
Decide how to monetize your app
Como voy a vender mi app
This is our agenda.. I want you to remember the five things that differentiate us from our competitors )
We are everywhere. Mention localization. You can capitalize on that and make a lot more money.
NOTE: YOU MUST READ THIS BLOG POST FOR YOUR LOCAL DETAILS
http://blogs.msdn.com/b/windowsstore/archive/2012/01/05/global-reach.aspx
Buy from 231 markets..
45 market-specific app catalog..s
Local pricing in 40 markets
*** Developer payments in 51 markets.. Is not in slide, keep it relevant to locale **
Dashboard > CMT > Informes
Informes > Descargas
Informes > Calificacion (6 meses)
Informes > Finanzas > Ganancias desde el ultimo pago ( 05/10/2013)
Cual es el objetivo?
WinRT vs WinPRT
Windows Runtime (WinRT)
Is a subset of native API that is built into Windows 8 and Windows RT operating systems.
Supports development in C++, C#, VB.NET, JavaScript and TypeScript.
Supports XAML framework and HTML5 for UI design.
WinRT Apps:
Are known as Windows Store Apps.
Natively support both the x86 and ARM architectures.
Run inside a sandboxed environment to allow for greater security and stability.
Windows Phone Runtime (WinPRT)
Is a subset of native API that is built into Windows Phone 8 operating system.
Supports development in C++, C# and VB.NET.
Supports XAML framework for UI design.
Componente Windows Runtime: Es un componente pensado para agrupar y exponer funcionalidad. Es compatible con Windows Phone 8 y con Windows 8. Contamos con plantillas en Visual Studio que nos facilitan su creación (Windows Runtime Componente template). No lo usaremos a corto plazo ya que no es compatible con proyectos Windows Phone 7.
Portable Class Library: Permiten realizar el desarrollo multiplataforma de aplicaciones .NET. Podemos crear librerías portables con códiog compartido entre Windows 8, Windows Phone, Xbox 360 y otras plataformas .NET.
En una librería portable:
Podemos añadir código administrado (C# o VB) no dependiente de plataforma específica. Es decir, podremos pasar variables, propiedades, métodos, etc. siempre y cuando no haya código específico de ninguna plataforma como podría ser la lógica para crear un tile secundario en Windows Phone por ejemplo. Las APIs del Windows Runtime no son portables y no se pueden utilizar desde librerías portables.
No se pueden añadir directivas de compilación. Las directivas de compilación como ya hemos comentado tienen como objetivo permitir diferentes rutas en el código dependiendo de la plataforma. El objetivo de la librería portable es el antagónico. Si necesitamos una implementación diferente en Windows Phone 7 y Windows Phone 8 no incluiremos ambas rutas en la librería portable. En su lugar, utilizaremos técnicas que explicaremos detalladamente en siguentes partes de este artículo como el polimorfismo utilizando interfaces (básicamente utilizaremos interfaces definidas en nuestra librería portable para definir el código específico a implementar en cada plataforma, implementando la interfaz en el proyecto correspondiente a cada plataforma).
El código de interfaz (XAML) no es portable. Podemos utilizar otras técnicas para compartir código en la parte de UI como por ejemplo el enlazado de ficheros.
http://javiersuarezruiz.wordpress.com/2013/03/18/windows-phone-tecnicas-para-compartir-codigo-1o-parte/
Hacer hincapie en el foco de la aplicacion… “Para que sirve”
Hacer hincapie en el foco de la aplicacion… “Para que sirve”