[Christmas Mobile Apps Sessions] Material de “Herramientas y toolkits para Universal Apps”

DownloadEl evento

El pasado Miércoles 10 de Diciembre tenía lugar el cuarto webcast de las Christmas Mobile Apps Sessiones. Las Christmas Mobile Apps Sessions son un conjunto 10 webcasts sobre desarrollo de apps móviles con variada  temática.

En esta sesión, vimos novedades de Visual Studio en XAML y C# relacionadas con aplicaciones universales, profundizamos en todas las posibilidades que nos brinda el emulador de Windows Phone, repasamos algunas características fundamentales de Blend, probamos la herramientas de análisis de rendimiento además de ver muchas otras herramientas variadas.

El material

La presentación utilizada:

Podéis descargar el conjunto de ejemplos realizados en el webcast a continuación:

Por último, podéis ver en cualquier momento el webcast en el siguiente video:

Más información

Anuncios

[Evento] Christmas Mobile Apps Sessions

DateEl evento

Las Christmas Mobile Apps Sessions son un conjunto 10 webcasts sobre desarrollo de apps móviles con variada  temática. Desde desarrollo de aplicaciones universales, a desarrollo de aplicaciones nativas multiplataforma con Xamarin pasando por la creación de backends.  Todo rodeado de ponentes de lujo como Josué Yeray, Santiago Porras, Rafa Serna, y un servidor, MVPs de Windows Platform Development, con Eduard Tomás, MVP de ASP.NET y con Alejandro Campos, Technical Evangelist en Microsoft.

La agenda

  1. ALM con Visual Studio Online, Jueves 4 de diciembre de 6pm a 7pm por Alejandro Campos. En esta sesión veremos cómo con Visual Studio Online podemos gestionar el ciclo de vida completo de nuestro proyecto con metodologías ágiles, así como gestionar nuestro código fuente y automatizar la compilación, las pruebas y la publicación de nuestras aplicaciones.
  2. Introducción a Universal Apps, Viernes 5 de diciembre de 6pm a 7pm por un servidor. Con la llegada de Windows Phone 8.1 al mercado los desarrolladores tenemos grandes cambios en la plataforma de desarrollo entre ellos, las aplicaciones universales. En esta sesión aprenderemos en qué consisten, como crearlas así como sus aportes. Además,  profundizaremos en la convergencia entre la plataforma Windows analizando distintas técnicas para compartir código.
  3. Buenas prácticas en Universal Apps, Martes 9 de diciembre de 6pm a 7pm por Josué YerayEn el mundo del desarrollo móvil, publicar una aplicación no es una meta, es solo un paso más del camino. Después de publicarla viene el mantenimiento y actualización, mejor cuanto más constante y rápido sea. En esta sesión vamos a ver buenas practicas que nos ayudarán a crear apps mantenibles y de fácil actualización como MVVM, Servicios, Inyección de dependencias, separación de estilos y plantillas en diccionarios…
  4. Herramientas y toolkits para Universal Apps, Miércoles 10 de diciembre de 6pm a 7pm por un servidor. Desde Visual Studio contamos con una gran cantidad de herramientas destinadas al desarrollo de aplicaciones universales. Podemos analizar paquetes, desplegar paquetes, medir el rendimiento de la aplicación y contamos con versátiles emuladores entre otras herramientas. En esta sesión repasaremos todas las herramientas incluidas con el SDK de desarrollo así como herramientas de terceros que nos incluyen librerías auxiliares y nuevos controles.
  5. Desarrollo Móvil Multi-plataforma con Xamarin, Jueves 11 de diciembre de 6pm a 7pm, por Alejandro Campos. ¿Podemos desarrollar una misma app que funcione en dispositivos Windows, Android e iOS? ¿Y que sea nativa? ¿Y podemos crearla con un mismo IDE y un mismo lenguaje? Con Visual Studio, C# y Xamarin es posible. En esta sesión te contamos cómo.
  6. Introducción al Diseño, trucos y consejos en Universal Apps, Viernes 12 de diciembre de 6pm a 7pm, por Santiago Porras. Conoce los conceptos esenciales del diseño de Aplicaciones Universales para poder crear aplicaciones que atraigan a los usuarios. Además, aprenderás algunos trucos y consejos simples para diferenciarte y crear experiencias únicas.
  7. Desarrollo Móvil Multi-plataforma con Apache Cordova, Lunes 15 de diciembre de 6pm a 7pm por Alejandro Campos. Podemos desarrollar una misma app que funcione en dispositivos Windows, Android e iOS con HTML5 y JavaScript?¿Y podemos crearla con herramientas de primer nivel que nos ayuden en la creación del código, en su depuración, y pruebas? Con Visual Studio y Apache Cordova es posible. En esta sesión te contamos cómo.
  8. Crea tu backend con Azure Mobile Services, Martes 16 de diciembre de 6pm a 7pm por Rafa Serna. Casi cualquier aplicación móvil necesita de un backend para darle toda la funcionalidad y potencia que necesita. Con Azure Mobile Services dispondremos de autenticación, servicios de datos, notificaciones y un completo set de usos, los cuales nos proporcionan un extenso backend en la nube casi a un click de distancia.
  9. Crea tu backend con ASP.NET Web API, Miércoles 17 de diciembre de 6pm a 7pm por Eduard Tomás. Da igual lo que haga tu app: tarde o temprano necesitará hablar con un servidor. En esta charla veremos cómo crear fácilmente una API REST aprovechando toda la potencia de ASP.NET WebApi y verás que da igual lo compleja que sean tus necesidades, ¡que con WebApi podrás cubrirlas rápidamente!
  10. Publicación de Universal Apps, Jueves 18 de diciembre de 6pm a 7pm por un servidor. Antes de enviar nuestra aplicación a publicar debemos revisar el archivo de manifiesto, generar y validar el paquete entre otras acciones. En esta sesión repasaremos todos los pasos necesarios a realizar antes de publicar la aplicación, repasaremos formas de monetización así como incluir analíticas y por supuesto publicaremos una aplicación universal paso a paso.

NOTA: Todas las sesiones serán grabadas para poder visualizarlas posteriormente aunque no dudéis en conectar online para aprovechar y poder realizar preguntas al ponente de turno.

Más información

[Windows Phone] Usando el nuevo control Ad Mediator

MoneyMonetización de aplicaciones

El desarrollar una aplicación móvil elegir su modelo de negocio es un punto vital. Los motivos por el cual como desarrollador decidimos publicar aplicaciones son muy variados:

  • Por amor al arte.
  • Por dinero.
  • Por aprender, etc.
  • Porque deseamos cubrir un hueco existente.
  • ¿Habíamos mencionado ya el dinero?

Hay muchos motivos. Un motivo habitual suele ser el obtener una ganacia económica por nuestro trabajo. Nuestras aplicaciones puede ser gratuitas y de pago. Además, nuestras aplicaciones de pago pueden contar con modo Trial (sumamente recomendado) e incluso tenemos disponible la opción de añadir In App Purchase.

Si deseamos obtener un beneficio económico parece obvio que debemos optar por aplicaciones de pago. Sin embargo, tenemos otras opciones interesantes para obtener beneficio económico como el uso de publicidad.

Actualmente en la Windows Phone Store, la publicidad representa aproximadamente la tercera parte de todos los ingresos generados por los desarrolladores.

El “problema” del uso de publicidad

Si nos decidimos a utilizar publicidad contamos con  varios SDKs de bastante calidad a la hora de generar publicidad y por lo tanto beneficios. Sin embargo, con todas las opciones nos preocuparemos por el eCPM (es el coste efectivo por cada mil impresiones, es decir, nuestros beneficios). Cada sistema cuenta con un valor diferente dependiendo de muchos factores como:

  • Categoría de anuncios elegidos
  • Mercado
  • El día y mes de la impresión
  • Etc

Bien, es un problema conocido y que los desarrolladores intentamos solucionar o al menos reducir el efecto al máximo.

¿Cómo?

Una de las soluciones habituales es utilizar distintas redes de publicidad para aumentar la disponibilidad de anuncios y asi los ingresos. En el momento en el que una red de anuncios no es capaz de mostrar un anuncio u otra red aporta un beneficio superior,  la aplicacion pasa a utilizar una segunda red y asi sucesivamente.

Ad Mediation

El proceso descrito anteriormente es un proceso más o menos complejo y sacado a base de pruebas y experiencia. Recientemente Microsoft ha anunciado Windows ad mediation, un sistema de mediación de anuncios que nos permite utilizar múltiples SDKs. El algoritmo utilizará un sistema de anuncios, si no es capaz de servir ningun anuncio, se llamará a un segundo sistema, luego a un tercero y asi sucesivamente. Basicamente, nos permite aumentar nuestro rendimiento a la hora de obtener beneficios mediante publicidad de una forma muy sencilla.

NOTA: El uso de Ad Mediator no nos garantizará que tendremos publicidad en el 100% de las situaciones. Nos garantiza que si un proveedor de publicidad no cuenta con anuncios se utilizará otro diferente.

Entre las características principales contamos con:

  • Podemos realizar una configuración a nivel global e incluso a nivel local en ciertos mercados.
  • Control sobre la tasa de refresco de la publicidad.
  • Podemos pausar y reanudar la publicidad.
  • Podemos elegir la prioridad de cada red de publicidad.
  • Podemos excluir redes de publicidad.

Windows Ad Mediation esta ya disponible para usar en Windows Phone 8.0, Windows Phone 8.1 Silverlight y aplicaciones universales XAML y los sistemas de publicidad soportados en estos momentos son:

NOTA: En Windows XAML los servicios AdMob, MobFox, InMobi y Inneractive no estan soportados.

En este artículo vamos a utilizar Windows Ad Mediator en una aplicación Universal realizando la integración paso a paso.

¿Te apuntas?

Usando el control Ad Mediator

Obtener la extensión Windows Ad Mediator

El primero paso que debemos llevar a cabo para utilizar Ad Mediator es descargar e instalar la extensión.

Windows Ad Mediator

Windows Ad Mediator

Descargar Ad Mediator

Descargar Ad Mediator

Nueva aplicación

Comenzamos creando un nuevo proyecto:

Nueva aplicación Windows Phone XAML

Nueva aplicación Windows Phone XAML

Añadir el control AdMediatorControl

En las referencias del proyecto hacemos clic derecho y elegimos la pestaña Extensiones dentro de Windows Phone 8.1:

Añadimos la referencia a la extensión

Añadimos la referencia a la extensión

Una vez añadida la referencia podemos arrastrar directamente el control AdMediatorControl en la vista de diseño en la vista o vistas deseadas.

Cuadro de herramientas

Cuadro de herramientas

<adMediator:AdMediatorControl x:Name="AdMediator_01B3E5" HorizontalAlignment="Left" Height="80" Id="AdMediator-Id-9A1E0E47-BE2F-41CC-A28B-0E14AD66165E" VerticalAlignment="Top" Width="480"/>

Tras arrastrar el control se generara en XAML un código similar al anterior. Como podemos ver se añade un nombre y un identificador único. Tanto el nombre como el identificador los utilizaremos a la hora de configurar Ad Mediator.

eL namespace XAML utilizado es el siguiente (App Windows Phone XAML):

xmlns:adMediator="using:Microsoft.AdMediator.WindowsPhone81"

Una vez añadido el control el siguiente paso sera configurarlo añadiendo los servicios de publicidad deseados.

Configuración del control AdMediatorControl

Una vez añadido el control AdMediatorControl es hora de configurarlo conectándolo a servicios conectados.

Hacemos clic derecho sobre el proyecto en el explorador de soluciones y seleccionamos la opción Nuevo  -> Servicio conectado.

Servicios conectados

Servicios conectados

Nos aparecerá la ventana de gestión de servicios conectados. Por defecto, las librerías de Microsoft Advertising se añaden por defecto.

NOTA: Si no deseamos utilizar Microsoft Advertising lo podemos eliminar sin problemas.

Para añadir otros proveedores de anuncios podemos pulsar el botón Seleccionar redes de anuncios:

Añadir nuevos servicios

Añadir nuevos servicios

Nos aparecerá una ventana donde podremos seleccionar cada una de las redes de anuncios disponibles para el tipo de proyecto en el que estemos trabajando.

Al añadir una nueva opción:

AdMediator 08

Referencias añadidas automáticamente

Todas las librerías necesarias para utilizar la red de anuncios seleccionada se añaden automáticamente al proyecto.

En este punto solo nos falta configurar cada red de anuncio añadida. Pulsamos el botón Configurar de la red de anuncios seleccionada.

Configurar red de anuncios

Configurar red de anuncios

 Añadir las capacidades necesarias

Segun el sistema de publicidad utilizado se necesitarán unas capacidades u otras. Podemos ver las capacidades requeridas por cada servicio de publicidad en la ventana de gestión de servicios. Para evitar excepciones al utilizar publicidad debemos añadir las capacidades requeridas en el archivo de manifiesto de la aplicación.

Capacidades de la App

Capacidades de la App

Gestión de excepciones no controladas desde la publicidad

Debemos asegurarnos de controlar las excepciones no controladas que nos puedan llegar desde las diferentes redes de anuncios:

// In App.xaml.cs file, register with the UnhandledException event handler.
UnhandledException += App_UnhandledException;
void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
      if (e != null)
      {
         Exception exception = e.Exception;
         if (exception is NullReferenceException && exception.ToString().ToUpper().Contains("SOMA"))
         {
            Debug.WriteLine("Handled Smaato null reference exception {0}", exception);
            e.Handled = true;
            return;
         }
      }

      // APP SPECIFIC HANDLING HERE

      if (Debugger.IsAttached)
      {
         // An unhandled exception has occurred; break into the debugger
         Debugger.Break();
      }
}

Otras opciones de configuración

Podemos especificar el tiempo en segundos (de 2 a 30 segundos) que Ad Mediator espera a la respuesta de una red de anuncios antes de pasar a la siguiente en caso de no tener respuesta válida. La gestión de timeouts es configurable. Por defecto, el tiempo de espera es de 5 segundos para todas las redes excepto Microsoft Advertising y Google AdMob que cuentan con 10 segundos por defecto.

Podemos especificar el tiempo de timeout de una red concreta facilmente:

AdMediatorControl.AdSdkTimeouts[AdSdkNames.MicrosoftAdvertising] = TimeSpan.FromSeconds(15);

Ad Mediator también nos facilita distintos eventos para gestionar cuando se producen eventos, errores, etc.:

AdMediator_Bottom.AdSdkError += AdMediator_Bottom_AdError;
AdMediator_Bottom.AdMediatorFilled += AdMediator_Bottom_AdFilled;
AdMediator_Bottom.AdMediatorError += AdMediator_Bottom_AdMediatorError;
AdMediator_Bottom.AdSdkEvent += AdMediator_Bottom_AdSdkEvent;

Testing

Probando la aplicación en el emulador se utilizarán una serie de metadatos de prueba que nos permite probar la aplicación aun sin configurar la red de anuncios. Los anuncios rotarán secuencialmente con una misma duración en ciclo. Nos permite verificar errores y eventos para garantizar que todo lo llevamos bien.

Tras asegurarnos, debemos probar en dispositivos físicos antes de publicar. En este caso debemos tener cada red de anuncio configurada y cada anuncio se mostrarás durante 60 segundos (podemos ajustar este parámetro al publicar). De nuevo, debemos asegurarnos que cada red de anuncio es capaz de mostrar contenido verificando eventos y errores.

Podéis descargar el ejemplo realizado a continuación:

Publicación

Una vez tengamos nuestra aplicación lista y testeada es hora de publicar la aplicación. Al crear el paquete y subirlo a la Store, si la App usa Ad Mediator, se detecta automáticamente junto a las redes de anuncios utilizadas. En este caso tendremos disponibles una nueva sección de configuración específica para el Ad Mediator.

Dev Center Ad Mediator

Dev Center Ad Mediator

NOTA: La primera vez que publicamos la aplicación crearemos una configuración general. En las sucesivas actualizaciones podemos crear configuraciones específicas para distintos mercados.

Más información

[Windows Phone 8.1] Crear menu lateral deslizante (similar al de la App Facebook)

LikeIntroducción

El SDK de Windows Phone es bastante versátil y nos proporciona una fuente bastante extensa de controles como para realizar una interfaz de usuario rica y atractiva. De hecho, tenemos ciertos controles como el Hub o el Pivot encargados de crear la estructura principal de nuestra aplicación determinando el acceso a los distintos apartados. Sin embargo, no es una forma única y exclusiva. Son múltiples los casos de aplicaciones en la tienda con ciertos menus deslizantes o determinos apartados personalizados. Un ejemplo claro de ello es la aplicación de Facebook que cuenta con un menu deslizante como el siguiente:

Menu lateral App Facebook

Menu lateral App Facebook

¿Cómo realizamos dicho menu?

Bien, tenemos múltiples formas de lograrlo. Con el uso combinado de paneles, animaciones y gestos podríamos conseguir reproducir el menu de Facebook. Sin embargo, tenemos una librería llamada SlideView disponible tanto para Windows Phone 8.0 como para Windows Phone 8.1 que tiene como objetivo permitirnos crear un menu de este tipo con suma facilidad.

En este artículo vamos a aprender como crear menus deslizantes al estilo Facebook utilizando la librería SlideView.

¿Te apuntas?

Crear el menu en una vista

Comenzamos creando un nuevo proyecto:

Nuevo proyecto

Nuevo proyecto

Para crear el menu lateral deslizante tipo Facebook, como mencionamos previamente vamos a utilizar una librería gratuita creada por Cyril Cathala, MVP de C# llamada SlideView. La librería contiene múltiples controles inspirados por el menu deslizante de Facebook que analizaremos poco a poco en este artículo.

SlideView

SlideView

Comenzamos añadiendo la librería.

La librería la tenemos disponible en NuGet por lo que podemos instalarlo usando Nuget Package Manager. En las referencias del proyecto hacemos clic derecho y seleccionamos la opción Manage NuGet Packages …

Añadir paquete NuGet

Añadir paquete NuGet

En la ventana modal que nos aparece, en la parte superior derecha donde podemos realizar una búsqueda, buscamos por “slideview”:

SlideView

SlideView

Seleccionamos el primero de los elementos y pulsamos el botón Install. Tras un breve periodo donde se procede a descargar e incluir las librerías en las referencias del proyecto, tendremos el siguiente resultado:

Librería instalada

Librería instalada

Nos centramos en nuestra página principal, MainPage.xaml. Vamos a utilizar el control SlideView de la librería:

<Grid>
     <ctl:SlideView SelectedIndex="1">
          <Grid Background="Red"
                Width="350">
                <TextBlock Text="Left"
                           FontSize="48"
                           HorizontalAlignment="Center"/>
          </Grid>
          <Grid Background="LightGray">
                <TextBlock Text="Main Content"
                           FontSize="48"
                           HorizontalAlignment="Center"/>
          </Grid>
          <Grid Background="Firebrick"
                  Width="350">
                <TextBlock Text="Right"
                           FontSize="48"
                           HorizontalAlignment="Center"/>
          </Grid>
     </ctl:SlideView>
</Grid>

Es un control muy sencillo. En su interior iremos añadiendo paneles que se apilaran uno tras otro de forma horizontal. Podemos establecer un ancho fijo o dejar el ancho automático. En caso de dejar un ancho automático, el panel se ajustará al ancho de la pantalla. Además, podemos indicar el panel visible de forma muy simple mediante la propiedad SelectedIndex del control.

El resultado es el siguiente:

Podéis descargar el ejemplo realizado a continuación:

Crear el menu a nivel de aplicación

El ejemplo anterior es muy simple y nos permite crear menus laterales con suma facilidad. Sin embargo, los paneles laterales solo aparecerán en la vista donde utilicemos el control.

¿Qué ocurre si deseamos los menus laterales a lo largo de toda la aplicación?

Para estos casos tenemos disponible en la librería otro control, variante del Frame, llamado SlideApplicationFrame. Para aprender a utilizar este frame vamos a crear otro proyecto diferente al anterior. Añadimos las carpetas Views, ViewModels y Services además de las clases base necesarias para implementar el patrón MVVM de la misma forma que vimos en este artículo.

Para utilizar el control, necesitamos sustituir el Frame de la aplicación por el frame de tipo SlideApplicationFrame. Una forma sencilla de definir el nuevo frame es directamente en XAML en App.xaml:

<ctl:SlideApplicationFrame Header="Slide View"
                           Background="Green"
                           x:Key="RootFrame">
     <ctl:SlideApplicationFrame.LeftContent>
          <shell:LeftView />
     </ctl:SlideApplicationFrame.LeftContent>
     <ctl:SlideApplicationFrame.RightContent>
          <shell:RightView />
     </ctl:SlideApplicationFrame.RightContent>
</ctl:SlideApplicationFrame>

Definimos el contenido del menu lateral izquierdo mediante la propiedad LeftContent y el derecho mediante RightContent. En cada panel podemos incluir una vista con su contenido y gestionada por su propio viewmodel. El contenido del menu lateral izquierdo:

<Grid x:Name="LayoutRoot"
      Background="LightBlue">
     <Grid.RowDefinitions>
          <RowDefinition Height="Auto" />
          <RowDefinition Height="*" />
     </Grid.RowDefinitions>
     <Grid Background="Blue">
          <TextBlock Margin="6,12"
                     HorizontalAlignment="Center"
                     Text="Left View" />
     </Grid>
     <Grid Grid.Row="1">
          <TextBlock Text="Left side!"/>
     </Grid>
</Grid>

El resultado:

Menu lateral izquierdo

Menu lateral izquierdo

El menu lateral derecho es otra vista con el siguiente contenido:

<Grid x:Name="LayoutRoot"
      Background="Orange">
      <Grid.RowDefinitions>
           <RowDefinition Height="Auto" />
           <RowDefinition Height="*" />
      </Grid.RowDefinitions>
      <Grid Background="OrangeRed">
           <TextBlock Margin="6,12"
                      HorizontalAlignment="Center"
                      Text="Right View" />
      </Grid>
      <Grid Grid.Row="1">
           <TextBlock Text="Right side!"/>
      </Grid>
</Grid>

El resultado:

Menu lateral derecho

Menu lateral derecho

NOTA: Podemos personalizar la cabecera del control, los botones para expandir cada menu e incluso el panel principal (LeftPanelButton, MainPanel, etc).

Una vez definido el frame SlideApplicationFrame bastará con acceder a el y reemplazar el frame de la aplicación, rootFrame:

rootFrame = this.Resources["RootFrame"] as SlideApplicationFrame;

Sencillo, ¿verdad?

Un detalle más…

Aunque no esta directamente relacionado con los menus laterales, la librería cuenta con otro control más llamado AutoHideBar. El control AutoHideBar se muestra cuando realizamos scroll hacia arriba en la parte superior de un listado y se oculta al hacer scroll hacia abajo. Vamos a utilizar el control. Su definición es sencilla:

<ctl:AutoHideBar />

El objetivo del control es mostrar información o botones de acción al hacer scroll hacia la parte superior de una lista. Por ese motivo, para poder usar el control necesitaremos, un control listado. En la viewmodel de la vista vamos a definir primero una colección:

private ObservableCollection<string> _list;

public ObservableCollection<string> List
{
     get { return _list; }
     set { _list = value; }
}

Creamos un método que rellenará la propiedad List con datos:

private void FillData()
{
     for(int i = 0; i < 50; i++)
     {
          _list.Add(string.Format("List Item Number {0}", i + 1));
     }
}

Por último, en la vista, definiremos un control ListView con la propiedad ItemsSource bindeada a la propiedad List:

<ListView x:Name="List"
           ItemsSource="{Binding List}">
     <ListView.Header>
          <Grid Height="80"/>
     </ListView.Header>
     <ListView.ItemTemplate>
          <DataTemplate>
               <Grid>
                    <TextBlock Text="{Binding}"
                               FontSize="18" />
               </Grid>
          </DataTemplate>
     </ListView.ItemTemplate>
</ListView>

Utilizamos la propiedad Header del ListView para establecer un encabezado y el control AutoHideBar:

<ctl:AutoHideBar ScrollControl="{Binding ElementName=List}"
                 Background="DarkGreen">
     <Grid>
          <TextBlock Text="AutoHideBar"
                     HorizontalAlignment="Center" />
     </Grid>
</ctl:AutoHideBar>

Para que el control AutoHideBar funcione correctamente, necesitamos bindear el control lista en la propiedad ScrollControl del control AutoHideBar.

Podéis ver al Frame SlideApplicationFrame y al controlAutoHideBar en acción en el siguiente video:

Podéis descargar el ejemplo realizado a continuación:

Más información

WPbeta.me. Nuevo servicio para gestión de betas de apps Windows Phone

WPBeta logoIntroducción

Como desarrolladores de aplicaciones Windows Phone debemos esforzarnos por ofrecer aplicaciones atractivas y con funcionalidades potentes y útiles para los usuarios. Sin embargo, debajo de todos esos aspectos independientemente del tipo de aplicación que hagamos, debemos ofrecer una experiencia fluida en todos los dispositivos con garantías de calidad, es decir, sin errores (bugs). Para llegar a este objetivo debemos cumplir múltiples pasos, desde la elección de una buena arquitectura de la aplicación que nos permita crear una gran cantidad de tests unitarios que cubran la mayoría de situaciones de la aplicación y podamos cazar errores con rapidez a probar el resultado en múltiples dispositivos para verificar rendimiento y otros aspectos. Dado que no podemos tener todos los dispositivos disponibles en el mercado (aunque nos gustaría), un movimiento recomendado a realizar son betas de nuestra aplicación.

Las betas nos permiten recibir feedback vital de rendimiento y comportamiento de nuestra aplicación en distintos dispositivos asi como feedback de usabilidad y otros bugs. Normalmente la gestión de betas las realizamos con una beta privada para amigos y/o familiares o bien buscamos testers en redes sociales u otros medios. En todos los casos la situación es la misma. Necesitamos un correo (la cuenta Microsoft utilizada por el usuario en su teléfono) por usuario.

¿Y como gestionamos todo esto?

Bien, el sistema no es único ni cerrado, podemos utilizar desde un sencillo archivo de texto o un Excel hasta sistemas algo más complejos pero más completos como por ejemplo MailChimp, sistema de gestión de campañas de correo con el que mantener constancia de suscriptores, campañas, etc.

NOTA: Tenéis disponible un gran artículo sobre la gestión de betas en el siguiente enlace al blog de Josué Yeray.

Hasta ahora…

WPbeta.me

Llega WPbeta.me, es un servicio totalmente gratuito creado por el MVP Domagoj Pavlesic destinado a facilitarnos la vida en la gestión de betas:

WPbeta.me

WPbeta.me

Como desarrolladores podemos utilizar WPbeta.me para facilitar todo el proceso de gestión de betas. En el apartado App developers podremos enviar nuestra aplicación para que pueda aparecer y ser testeado sencillamente con su AppID:

Enviar App

Enviar App

NOTA: La aplicación debe estar publicada en la Windows Phone Store como beta. El App ID podéis verlo en el Dashboard del Windows Phone Dev Center, en los detalles de la aplicación.

Una vez enviada se obtendrán todos los metadatos de la aplicación creando una página de información como la siguiente:

App Lading Page

App Lading Page

La URL de la landing la podemos personalizar y mantenerla fácil para compartirla con amigos y/o familiares.

Como testers lo único que deben hacer es pulsar sobre el botón “Join this beta program” y autenticarse con su cuenta Microsoft. Tras esto ya tenemos disponible el email del tester en nuestro listado.

Un servicio recien sacado del horno aun en fase beta pero que ya soluciona alguno de los problemas más importantes a los que nos podemos enfrentar en la gestión de betas. Cualquier tipo de feedback, bug o nueva característica se puede enviar con su formulario de contacto. Asi que tanto si tenéis una aplicación de la que deseáis lanzar una beta tanto si disfrutas ayudando a otros y probar a fondo aplicaciones, tenéis disponible este nuevo servicio.

Más información

[Evento WPSUG] Gestión de dispositivos Windows Phone con Windows Intune

Introducción

Volvemos a la carga en WPSUG, grupo de usuarios hispanos de Windows Phone, con un nuevo Hangout sobre Windows Phone. En esta ocasión, trataremos un punto vital a nivel empresarial, la gestión de dispositivos móviles con sistemas MDM como Windows Intune. En este Hangout vamos a analizar todas las dudas principales que pueden surgir al gestionar dispositivos Windows Phone desde Windows Intune:

  • Que es el MDM
  • Que posibilidades ofrece Windows Intune
  • Como crear una cuenta
  • Políticas de configuración
  • Como desplegar aplicacionesWPSUG

El evento

El próximo Jueves 26 de Junio, a las 19:30 (GMT+1)  tendra lugar Hangout en el que contaremos con un invitado especial, Jose ángel Fernández, Evangelista Técnico de Infraestructura en Microsoft, que nos contará todos los detalles relacionados con MDM y Windows Phone.

¿Te apuntas?

Más información

I Máster en Desarrollo de Aplicaciones Móviles en Andalucía

DevIntroducción

En la actualidad, hay múltiples plataformas de desarrollo móvil con herramientas de desarrollo, lenguajes e incluso metodologías, formas y factores diferentes. Ante todo esto, estar al día con todo ello es difícil.

Para superar esta dificultad llega…

El máster, creando Apps en la playa

El máster de desarrollo de aplicaciones móviles tendrá lugar en un complejo de las playas de Cádiz abordando las plataformas principales, iOS, Android, por supuesto Windows Phone y apps multiplataforma híbridas.

Cada plataforma móvil tendrá 50 horas de formación intensiva en las que se verán las herramientas de desarrollo asi como toda la parte gruesa del desarrollo de cada una de ellas, desde un “hola mundo” a la publicación.

I Máster en Desarrollo de Aplicaciones Móviles

I Máster en Desarrollo de Aplicaciones Móviles

Además, como 50 horas intensivas son duras para cuerpo y mente, también hay incluidas actividades extras para recuperar el ritmo rapidamente como sesiones de masajes, paseos en bicicleta por la playa, Pádel, etc.

Windows Phone

Sere el encargado de la parte Windows Phone. Con la reciente llegada del SDK de Windows Phone 8.1 junto con la Developer Preview, tenemos la excusa perfecta para aprender Windows Phone a la última. El temario sera el siguiente:

  1. Introducción
    1. Bienvenidos
    2. Herramientas de desarrollo
    3. El emulador
    4. Plataforma de desarrollo
  2. Conceptos básicos de XAML
    1. Layouts
    2. Recursos, estilos y plantillas
    3. Enlace a datos
    4. MVVM
  3. Introducción a la plataforma
    1. Controles básicos
    2. Navegación
    3. Transiciones entre páginas
    4. Control Hub
    5. Control Pivot
    6. CommandBar
  4. Profundizando en la plataforma
    1. El ciclo de vida
    2. Sensores
    3. Storage, Backup y Roaming
    4. Contratos y Pickers
    5. Tiles
    6. SQLite
  5. Extendiendo nuestras apps
    1. Notificaciones
    2. Action Center
  6. Publicación de apps
    1. Maximiza las ganancias
    2. La importancia del diseño
    3. Publicación de apps

Como véis bastante completo, todo cargado de presentaciones, demos y muchos ejemplos prácticos además de algunas sorpresas que ya contaremos.

Hay mucho más

¿Te ha parecido poco?. Tranquilo, hay más. Además de poder aprender el desarrollo en cada una de las plataformas principales, habra horas para puntos también vitales como, el marketing móvil e incluso prototipado y diseño.

En fin, yo ya estoy preparando el equipo cargado de mucho código, Windows Phones preparados y por supuesto mis chanclas… ¿nos vemos allí?

Más información

[Eventos] //Learn/ y //Publish/

Introducción

Recientemente hemos tenido una enorme cantidad de nueva información y anuncios de múltiples tecnologías Microsoft en el //BUILD/.

BUILD 2014

BUILD 2014

Tras el //BUILD/ llegan…

//Learn/

Será un conjunto de webcasts sobre Windows Phone 8.1 organizado directamente por los MVPs de Windows Phone. Durante 6 horas tendremos un track principal en ingles además de otros tracks en otros idiomas como el Francés, Portugues, Chino, Ruso y como no, en Español.

En el track Español contaremos con una agenda muy completa:

  • Introducción a Windows Phone 8.1
  • Empezando a construir apps Windows XAML
  • Controles de layout y transiciones entre páginas
  • Adaptando tu UI a dIferentes pantallas
  • Ciclo de vida de apps WinRT XAML
  • Tiles, badges, notificaciones y el Action Center
  • Tareas en background
  • Windows XAML para desarrolladores Silverlight

Una agenda tan completa viene acompañada de unos ponentes de lujo como Josué Yeray, Sorey García, Roberto Alvarado, Jose Luis Latorre e Ivan Toledo. Asi que, reserva un hueco en tu agenda para el próximo 24 de Abril. Pero cuidado, al ser un evento internacional, los horarios han tenido que adaptarse a múltiples paises donde en España queda el comienzo para la 1:00h del 25 de Abril. De todas formas, todo el evento será grabado y dispondran el material para todos tras finalizar el evento.

//Publish/

Tras el //Learn/ donde se aprenden muchos conceptos básicos de la plataforma, ¿que mejor que lanzarse de lleno?. Para ello se han organizado hackatones donde poner en práctica todo lo aprendido. Organizados por Microsoft y la comunidad MVP en España contaremos con tres sedes en España:

  • Barcelona: Organizada por Microsoft.
  • Madrid: Organizada por la comunidad MVP. Se organiza el día 16 de Mayo y aquí tendre la oportunidad de estar junto a Josué Yeray y Santiago Porras para poder ayudaros en todo lo posible a crear vuestras aplicaciones.
  • Palma de Mallorca: Organizada por la comunidad MVP.

En todas las sedes tendremos grandes premios, dispositivos para que podáis probar las aplicaciones y además no tendréis que preocuparos por la comida, os invitamos.

¿A qué esperáis para apuntaros?

Más información

[WPSUG] Material del hangout “Servicios de almacenamiento en Windows Phone”

WPSUG

WPSUG es el grupo de usuarios hispanos de Windows Phone donde realizamos webcasts periódicos en castellano y con contenido que piden los propios usuarios mediante Google Hangouts.

WPSUG

WPSUG

El evento

El pasado Miérocles 26 de Marzo tuvo lugar un nuevo Hangout de WPSUG en el que nos reunimos Josué Yeray, Santiago Porras, Roberto Luis Bisbé, Pedro Hurtado y un servidor para analizar múltiples servicios de almacenamiento que podemos utilizar en nuestras apps Windows Phone.

El material

La grabación la podéis volver a ver en:

En mi caso, mi parte iba dedicada a analizar como integrar OneDrive en Windows Phone. Tenéis disponible la presentación utilizada:

Asi como el ejemplo de la misma:

Más información

[Evento WPSUG] Servicios de almacenamiento en Windows Phone

onedriveIntroducción

Volvemos a la carga en WPSUG, grupo de usuarios hispanos de Windows Phone, con un nuevo Hangout sobre desarrollo en Windows Phone. En esta ocasión, trataremos un punto interesante de cara al desarrollo en nuestras aplicaciones Windows Phone. En muchas de ellas, necesitamos sincronizar datos entre distintas aplicaciones, necesitamos realizar copias de seguridad, acceder a información alojada en algun almacenamiento remoto, etc. Las opciones a utilizar son muchas y variadas desde Windows Phone. En este Hangout vamos a analizar los principales servicios de almacenamiento que podemos utilizar en nuestros desarrollos:

  • Dropbox
  • Onedrive
  • Box
  • Azure Storage

WPSUG

El evento

El próximo Miérocles 26 de Marzo, a las 19:00 (GMT+1)  tendra lugar Hangout en el que nos reuniremos Josué Yeray, Rafael Serna, Santiago Porras, Quique Martínez, Roberto Luis Bisbé y un servidor para analizar múltiples servicios de almacenamiento que podemos utilizar en nuestras apps Windows Phone.

¿Te apuntas?

Más información