Feliz navidad y próspero 2014!

Felices fiestas!

Queridos amigos, celebréis lo que celebréis,
os deseo a todos unas felices fiestas, que espero que podáis compartir
con vuestros familiares y amigos.

Para el 2014

Para el
próximo año os deseo a todos salud, trabajo y que sea un gran año que os
permita cumplir todos vuestros objetivos y sueños. Este 2013 ha sido un
año donde he podido aprender y descubrir grandes tecnologías, he
conocido a gente excelente y he podido asistir/participar en grandes
eventos. Para el próximo año sólo pido poder continuar aprendiendo lo
máximo posible para compartir con todos vosotros la mayor cantidad de
conocimientos posibles.

Seguiremos “dando guerra”!

Nace WPSUG, grupo de usuarios Windows Phone de habla hispana

Introducción

Este año, Josué Yeray junto a Oscar Gutierrez
crearon una comunidad de desarrolladores Windows Phone en la red social
Google+. A lo largo de todo el año la comunidad ha ido creciendo hasta
llegar a contar con más de 420 miembros aportando temas de desarrollo,
compartiendo aplicaciones, noticias, etc.

WPSUG

Viendo la evolución, el grupo de Google+ se transformará en el grupo de usuarios hispanos de Windows Phone, asi nace WPSUG.

En WPSUG se realizaran webcasts periódicos en castellano y con
contenido que pidan los propios usuarios mediante Google Hangouts. Todos
podrán participar, por supuesto de manera gratuita, esperando conseguir
ofrecer una ayuda muy directa a los desarrolladores Windows Phone.

Comenzamos ya!

No hay que perder el tiempo. Para cerrar el año, queremos compartir nuestra gran ilusión. Hemos preparado un Hangout incial muy especial para el próximo 30 de Diciembre a las 18:00h (GMT+1). Nos reuniremos los cuatro administradores del grupo, Josué Yeray, Rafael Serna, Santiago Porras y un servidor para
charlas sobre todo lo que nos ha dejado este 2013 en cuanto a Windows
Phone, que esperamos para el próximo 2014 asi como responder a todas las
preguntas que surjan. Podéis inscribiros en el Hangout, en la siguiente
URL:

http://bit.ly/1bhStPd

Os esperamos!

Más información

Esperamos
que el grupo de usuarios crezca y ayude a que todos aprendamos y
compartamos conocimientos sobre Windows Phone. Os esperamos a todos en
la web del grupo:

http://www.wpsug.net

También podéis contactar con nosotros de las siguientes formas:

[Windows Phone] Concurso "Gana con App Studio"

Introducción

En estas fechas festivas con algo más de tiempo
libre del habitual, se puede aprovechar para… crear aplicaciones como
no. Crear aplicaciones útiles e interesantes para los demás tiene ya de
por si un punto atractivo. Pero… ¿y si además puedes conseguir
premios?

El concurso

El concurso se basa en el desarrollo de aplicaciones para Windows Phone 8 con la herramienta Windows Phone App Studio (apps.windowsstore.com). El concurso cuenta con tres categorías diferentes para participar:

  • Plantilla: Aplicaciones creadas usando las plantillas ofrecidas por Windows Phone App Studio sin extensiones.
  • Freestyle: Aplicaciones creadas usando Windows Phone App Studio partiendo desde una aplicación desde cero.
  • Desarrollador: Las aplicaciones de inician desde Windows Phone App Studio (desde plantilla o desde cero) y se extienden en Visual Studio.

NOTA: Se puede participar en las tres categorías, no son excluyentes.

Para participar hay que crear al menos una aplicación en cualquiera
de las categorías anteriores, publicarla en la Store y enviar al
concurso el enlace a la misma antes del próximo 28 de  Febrero del 2014.

El concurso cuenta con un jurado de auténtico lujo con la directora
de producto y canal Visual Studio en España, Ethel García-S. Matachana;
con MVPs de Windows Phone como Josué Yeray, Joost Van Schaik o Matteo
Pagani; la directora Senior de Marketing Windows Phone, Desiree
Lockwood; el lider de Nokia Global Champions, Antoine Naaman; y un
servidor. El objetivo del jurado se centrará en evaluar la calidad de
las aplicaciones recibidas.

NOTA: Se realizarán filtros en las aplicaciones
recibidas descartando aquellas aplicaciones de un usuario que posean un
contenido muy similar o que puedan considerarse la misma aplicación.

Los premios

Por cada categoría hay tres ganadores. Hay interesantes premios en cada categoría:

  • Plantilla: Nokia Lumia 720.
  • Freestyle: Nokia Lumia 920 más un cupón de 150€ a utilizar en la Windows Store.
  • Desarrollador: Nokia Lumia 920, licencia de Visual
    Studio Premium (1 año), licencia Indie de Radarc y licencia de VS
    AnyWhere (3 desarrolladores durante 4 meses).

Por si fuese poco, entre todos los concursantes se realizará un sorteo de una tablet con Windows.

¿A qué esperáis para participar?

Más información

Material del webcast “Distribución empresarial en Windows Phone 8″

Christmas Windows Phone Sessions

Las Christmas Windows Phone Session son 12 webcasts cargados de información técnica tratando múltiples temas relacionados con Windows Phone.

El material

Recientemente realizamos el webcast “Distribución empresarial en
Windows Phone 8″ de las Christmas Windows Phone Session y ya tenemos el
material disponible.

La grabación la podéis volver a ver descagándola de la URL de registro.

También tenéis disponible la presentación de la charla:

 

Asi como los ejemplos de la misma:

Más información

Material del webcast “Descubriendo Windows Phone App Studio”

Christmas Windows Phone Sessions

Las Christmas Windows Phone Session son 12 webcasts cargados de información técnica tratando múltiples temas relacionados con Windows Phone.

El material

Recientemente realizamos el webcast “Descubriendo Windows Phone App
Studio” de las Christmas Windows Phone Session y ya tenemos el material
disponible.

La grabación la podéis volver a ver descagándola de la URL de registro.

También tenéis disponible la presentación de la charla:

Asi como los ejemplos de la misma:

Más información

Blog MSDN: Christmas Windows Phone Sessions

[Windows Phone] Rate My App

Introducción

En la Windows Phone Store un factor importante
que suelen tener en cuenta los usuarios para decantarse por descargar
una App u otra son las puntuaciones y las críticas de las mismas. Contar
con un número elevado de críticas manteniendo una nota media elevada
aumenta considerablemente las posibilidades de atraer a usuarios,
destacar en la Store y recibir un más que necesario feedback.

Rate My App

Una
forma efectiva de aumentar el número de críticas de la Aplicación suele
ser el recordar al usuario que realice la crítica tras ciertos usos de
la Aplicación. Rate My App es un componente de Nokia Developer que nos
permite realizar esta acción de una manera sumamente sencilla.
Basicamente muestra un recordatorio al usuario tras haber lanzado la
Aplicación 5, 10 o un número configurado de veces.

NOTA:
Por defecto, cuando una Aplicación con el componente Rate My App se
ejecuta por quinta vez se muestra el recordatorio de añadir crítica a la
misma.

Como solemos hacer, vamos a crear una Aplicación de ejemplo para utilizar y ver las posibilidades de Rate My App:


Creamos un proyecto desde la
plantilla más básica para concentrar nuestra atención en el componente
que nos ocupa en esta entrada.

Tras crear el proyecto lo primero
que vamos a hacer es instalar la librería necesaria para poder usar Rate
My App. Vamos a usar NuGet para ello. Accedemos a:

Tools > Library Package Manager > Manage NuGet Packages for Solution…

Se
nos abrirá una nueva ventana donde podremos buscar el componente.
Buscamos por «RateMyApp» e instalamos la primera opción creada por Nokia
Developer:

NOTA: También podemos instalar la librería usando el Package Manager Console ejecutando el comando: Install-Package RateMyApp

Tras
instalar la librería ya estamos preparados para usar el control. Vamos a
añadir el control en nuestra página principal (MainPage) creada con el
proyecto. Para ello, de entrada, añadimos una referencia a la librería
en el PhoneApplicationPage:

xmlns:rate="clr-namespace:RateMyApp.Controls;assembly=RateMyApp"

El control a utilizar se llamada FeedbackOverlay. Añadiremos el control al final de Grid principal ocupando las dos filas del mismo (propiedad adjunta RowSpan):

<rate:FeedbackOverlay x:Name="FeedbackOverlay"
     Grid.RowSpan="2"
     FeedbackTo="contacto@correo.es"
     ApplicationName="Ejemplo Rate My App"
     CompanyName="Nombre Compañia"/>

Hemos creado el control junto a sus tres propiedades principales:

  • FeedbackTo: Propiedad de tipo string que espera el correo electrónico donde se enviará el feedback escrito por el usuario.
  • ApplicationName: Propiedad de tipo string que mostrará el nombre de la Aplicación en el recordatorio.
  • CompanyName: Propiedad de tipo string que mostrará el nombre de la compañia responsable de la Aplicación.

Todas las propiedades podrían estar en archivos de recursos:

Quedando el control de una manera similar pero realizando bindings a las cadenas del archivo de recusos:

<rate:FeedbackOverlay x:Name="FeedbackOverlay"
     Grid.RowSpan="2"
     FeedbackTo="{Binding Path=LocalizedResources.FeedbackTo, Source={StaticResource LocalizedStrings}}"
     ApplicationName="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}"
     CompanyName="{Binding Path=LocalizedResources.CompanyName, Source={StaticResource LocalizedStrings}}"
     FirstCount="2"
     SecondCount="4" />

En esta ocasión hemos añadidos otras dos propiedades nuevas. El
control FeedbackOverlay muestra el recordatorio para añadir la crítica
al usuario tras la quinta ejecución de la Aplicación volviendo a
mostrarlo en caso de no haberla añadido tras la décima apertura de la
Aplicación.

Las propiedades añadidas:

  • FirstCount: Propiedad de tipo entero que permite indicar tras cuantas ejecuciones se muestra por primera vez el recordatorio.
  • SecondCount:
    Propiedad de tipo entero que permite indicar tras cuantas ejecuciones
    se muestra por segunda vez el recordatorio si no se ha añadido crítica
    previamente.

Hasta este punto tenemos todo lo necesario para
utilizar el control. Para poder probarlo todo de manera adecuadamente
tenemos a nuestra disposición un helper que nos facilita el acceso a
toda la información relacionada con el control. Podemos asignar esa
información como contexto:

#if DEBUG
DataContext = FeedbackHelper.Default;
#endif

Y acceder a ella desdela interfaz:

<StackPanel>
     <TextBlock Text="{Binding FirstCount, StringFormat='Propiedad First count: {0}'}" />
     <TextBlock Text="{Binding SecondCount, StringFormat='Propiedad Second count: {0}'}" />
     <TextBlock Text="{Binding State, StringFormat='Estado: {0}'}" />
     <TextBlock Text="{Binding LaunchCount, StringFormat='Se ha abierto: {0} veces'}" />
     <TextBlock Text="{Binding IsReviewed, StringFormat='Tiene ya crítica: {0}'}" />
     <TextBlock Text="{Binding LastLaunchDate, StringFormat='Última ejecución: {0:G}'}" />
</StackPanel>

El resultado:

Tenemos información de cuantas veces se ha registrado la ejecución de
la Aplicación, cuando fue la última vez que se ejecuto, estado, valores
de las propiedad First Count y Second Count y si se ha añadido ya una
crítica o no. Sin duda, una información muy útil en el desarrollo.

Con
lo visto hasta ahora tenemos todo lo necesario exigible a un control
para gestionar los recordatorios de añadir crítica. Sin embargo, el
control es totalmente personalizable y contamos con muchas más opciones:

<ctrl:FeedbackOverlay Grid.RowSpan="2"
     EnableAnimation="True"
     RatingTitle="RatingTitle"
     RatingMessage1="Rating Message 1"
     RatingMessage2="Rating Message 2"
     RatingYes="Yes"
     RatingNo="No"
     FeedbackTitle="FeedbackTitle"
     FeedbackMessage1="Feedback Message 1"
     FeedbackYes="Yes"
     FeedbackNo="No"
     FeedbackTo="{Binding Path=LocalizedResources.FeedbackTo, Source={StaticResource LocalizedStrings}}"
     FeedbackSubject="Feedback Subject"
     FeedbackBody="Feedback Body"
     CompanyName="MyCompany"
     FirstCount="2"
     SecondCount="4"
     CountDays="False"
     />

Podemos personalizar los textos de cabecera, de los botones, etc. El resultado podría ser algo como:

Si no se añade crítica se pide feedback al usuario:

Podéis descargar el ejemplo realizado del siguiente enlace:


Más información

Material del Webcast "Windows Phone 8 Update 3. Cambios para los desarrolladores"

Christmas Windows Phone Sessions

Las Christmas Windows Phone Session son 12 webcasts cargados de información técnica tratando múltiples temas relacionados con Windows Phone.

El material

Recientemente
realizamos el webcast «Windows Phone 8 Update 3. Cambios para los
desarrolladores» de las Christmas Windows Phone Session y ya tenemos el
material disponible.

La grabación la podéis volver a ver descagándola de la URL de registro.

También tenéis disponible la presentación de la charla:

 

Asi como los ejemplos de la misma:


Más información

Blog MSDN: Christmas Windows Phone Sessions

[Tips and Tricks] Windows Phone. Obtener el operador de telefonía

Introducción

En la entrada actual nos vamos a centrar en las opciones que nos brinda la clase DeviceNetworkInformation.
Esta clase nos expone propiedades que nos ayudan a  identificar y
conocer más sobre las capacidades de la red, como por ejemplo,
identificar la disponibilidad de la red, la disponibilidad de roaming de
datos, de red WiFi, etc.

DeviceNetworkInformation es una clase estática que tenemos disponible dentro del espacio de nombres Microsoft.Phone.Net.NetworkInformation que cuenta con una serie de propiedades booleanas además de los métodos ResolveHostNameAsync y NetworkAvailabilityChanged.

NOTA: Todas  las propiedades son estáticas por lo que no es necesario crear instancia.

Las propiedades son:

  • CellularMobileOperator
  • IsCellularDataEnabled
  • IsCellularDataRoamingEnabled
  • IsNetworkAvailable
  • IsWiFiEnabled

Obtener el operador

Entre el listado de propiedades, contamos con una de ellas, CellularMobileOperator que es bastante interesante. Esta propiedad nos permite obtener el nombre del operador móvil usado en el dispositivo.

NOTA: En el caso del emulador siempre obtendremos el valor “Fake GSM Network”.

Vamos a crear un pequeño ejemplo para probar la clase. Tras crear un
proyecto nuevo, en la interfaz añadiremos un simple botón para tras
pulsarlo obtener el operador:

<Button Content="Ver Operador" Height="100" Click="Button_Click"/>
El resultado visual será algo simular a lo siguiente:

 

Al pulsar el botón, realizaremos:
private void Button_Click(object sender, RoutedEventArgs e)
{
     MessageBox.Show(DeviceNetworkInformation.CellularMobileOperator);
}
Obtendremos el nombre del operador en el mensaje en pantalla:

Podéis descargar el ejemplo desde el siguiente enlace:

Más información