Windows Phone 7

Creación de aplicaciones trial

Una de la mejores características en el desarrollo de Windows Phone es la facilidad para generar versiones trial de nuestras aplicaciones, pudiendo activar la aplicación completa sin tener que mantener 2 versiones de la misma y por ende, tener diferentes proyectos de una aplicación.

Para ello Microsoft.Phone.Marketplace nos provee de la clase LicenseInformation, la cual nos expone la propiedad IsTrial, la cual devolviendo un valor booleano, podemos saber si la aplicación funciona en modo en modo “demo” o completo.

Un pequeño ejemplo, crearemos una aplicación :

Imports Microsoft.Phone.Marketplace

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' Constructor
    Public Sub New()
        InitializeComponent()

        Dim InfoLicencia As New LicenseInformation

        If InfoLicencia.IsTrial Then
            MessageBox.Show("Ejecutando la aplicación en modo DEMO")
        Else
            MessageBox.Show("Ejecutando la aplicación en modo COMPLETO")
        End If
    End Sub
End Class

Nota: Este ejemplo de concepto no es funcional en el emulador, ya que la propiedad IsTrial siempre devuelve False, ya que para que realmente funcione la aplicación debe estar firmado por el marketplace.

Esto esta bien para una aplicación de ejemplo, pero si queremos hacer una buena implementación deberemos hacer que, por lo menos para pruebas, nos pregunte si queremos entrar en modo demo o completo. Para ello vamos a aprovechar el evento Launching y Activated del fichero App.xaml.vb para comprobar en que modo queremos iniciar la aplicación.

    ' Código para ejecutar cuando la aplicación se inicia (p.ej. a partir de Inicio)
    ' Este código no se ejecutará cuando la aplicación se reactive
    Private Sub Application_Launching(ByVal sender As Object, ByVal e As LaunchingEventArgs)
        Comprobar_ModoInicio()
    End Sub

    ' Código para ejecutar cuando la aplicación se activa (se trae a primer plano)
    ' Este código no se ejecutará cuando la aplicación se inicie por primera vez
    Private Sub Application_Activated(ByVal sender As Object, ByVal e As ActivatedEventArgs)
        Comprobar_ModoInicio()
    End Sub

En la rutina de Comprobar_ModoInicio vamos a preguntar por el modo de inicio de nuestra aplicación y vamos a guardarlo en una variable para futuras consultas, esto también vamos a colocarlo en el fichero App.xaml.vb.

    Public _EsDemo As Boolean

    Sub Comprobar_ModoInicio()
        Dim InfoLicencia As New LicenseInformation

#If DEBUG Then
        ' En modo de depuración, preguntamos como deseamos arrancar la aplicación

        ' Si pulsa sobre el botón de Ok entramos en modo demo y sino en modo completo
        If MessageBox.Show("Pulse Aceptar para entrar en modo DEMO o Cancelar para entrar en modo COMPLETO",
                           "Modo Inicio", MessageBoxButton.OKCancel) = MessageBoxResult.OK Then
            _EsDemo = True
        Else
            _EsDemo = False
        End If
#Else
        ' Si no estamos en depuración obtenemos el valor del certificado de la aplicación
        _EsDemo = InfoLicencia.IsTrial
#End If
    End Sub

 

Ahora ya podemos desde cualquier punto de nuestra aplicación comprobar el modo de inicio y limitar por tiempo, número de arranques o cualquier otro método que queramos implementar.

Quedando nuestro primer ejemplo de la siguiente manera.

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' Constructor
    Public Sub New()
        InitializeComponent()

        If TryCast(Application.Current, App)._EsDemo Then
            MessageBox.Show("Ejecutando la aplicación en modo DEMO")
        Else
            MessageBox.Show("Ejecutando la aplicación en modo COMPLETO")
        End If
    End Sub
End Class

Con este pequeño ejemplo podemos utilizar el emulador para probar como se comporta nuestra aplicación de un modo u otro.

Podéis descargar el proyecto de ejemplo desde http://descarga.e-mision.net/test_trial.zip

Actualizar contador del tile

Una manera rápida de mostrar información al usuario es utilizando imagelos “tiles” anclados en el menú de inicio.

Entre la diferentes propiedades que podemos utilizar para mostrar información, está el contador o count, con el que podemos dar una rápida información al usuario.

El siguiente código muestra como actualizar el tile dentro de una aplicación con 2 botones btnSumar y btnRestar.

 

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    Private contadorTile As Integer

    ' Constructor
    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub btnSumar_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btnSumar.Click

        contadorTile += 1

        Actualizar_CountTile()

    End Sub

    Private Sub btnRestar_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btnRestar.Click

        contadorTile -= 1

        Actualizar_CountTile()

    End Sub

    Sub Actualizar_CountTile()
        ' Se busca el primer Tile activo
        Dim appTile As ShellTile = ShellTile.ActiveTiles.First
        Dim tileData As New StandardTileData

        ' Se actualiza el valor del contador
        tileData.Count = contadorTile

        ' Se actualiza el Tile para que refresque la información
        appTile.Update(tileData)
    End Sub
End Class

Apariencia de la aplicación en funcionamiento.

Contador Tile

PD: Hay que recordar que la aplicación no está preparada para multitarea, por lo que si pulsamos sobre la flecha izquierda para salir de la aplicación, la información se perderá. Así que para ver el funcionamiento de está aplicación básica, debéis pulsar sobre la tecla central, tecla de Windows, para ir al menú principal y poder anclar la aplicación.

Podéis descargar el proyecto desde http://descarga.e-mision.net/PhoneApp6.zip

Instalando SDK Windows Phone 7.1

Ya está disponible la versión definitiva del SDK para Windows Phone 7.5, también conocida como Mango, aunque internamente marcada como 7.1.

Os dejo el enlace para la descarga: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27570

Es un instalador “ligero” que se encargará de instalar todo lo necesario.

Destaca la instalación de:

  • Visual Studio 2010 Express Phone Edition, la versión gratuita de Visual Studio 2010
  • Expression Blend para Windows Phone
  • Silverlight 4 SDK
  • Windows Phone Emulator

Por supuesto todas estas herramientas son gratuitas, aunque para publicar aplicaciones en el MarketPlace hay que registrarse y pagar una cuota anual de 99 dólares (a esta fecha). Esta cuota permite la publicación de hasta 100 aplicaciones.