Archivo de la etiqueta: WP7

¿Veremos en The Windows Phone Developer Conference a WP Apollo?

Dentro de unos meses se cumplen dos años de la salida de Windows Phone 7 y un año de la de  Mango. Como no deja de ser una ciencia, la estadística nos dice que en Octubre estará disponible Windows Phone 8 Apollo.

Entre los días 22 y 24 de Octubre de 2012 también está programado el evento “The Windows Phone Developer Conference”   que en WPCentral  anuncian como el primer ciclo de conferencias de Windows Phone que no está patrocinado por Microsoft.

WPDevcon

En el programa del evento podemos ver la gran cantidad de sesiones sobre WP7. Sin embargo, en la noticia de WPCentral destacan que el gran artista invitado será Apollo, nombre en clave que los de Redmon han dado a Windows Phone 8. En WPCentral destacan que habrá una sesión específica para aprender todo lo que traerá Apollo, como resoluciones de pantalla, los cambios que habrá en el Marketplace,  las características que tendrá el nuevo emulador y se verá cómo migrar las aplicaciones de Mango a Apollo.

Todo un caramelo para desarrolladores, sin embargo si nos vamos a la web del evento y vemos el pdf con el programa no se hace referencia a Apollo en ninguna parte.  Lo que me ha llamado la atención es que en los comentarios de la noticia se han fijado en la fecha de creación y modificación del pdf. Así que parece que han eliminado las referencias a Apollo del documento.

¿Una estrategia de marketing para conseguir más asistentes? Es posible, pero sin duda que por esas fechas ya se tendrán más detalles sobre la nueva versión de Windows Phone y seguramente ese evento sea un lugar privilegiado para enterarnos de cómo adaptar las aplicaciones existentes a la nueva versión del sistema operativo.

Más tiempo para Cell·APP Awards

Las plegarias han sido oídas y  hemos ampliado el plazo para presentar juegos y aplicaciones a Cell·APP Awards:

Cell·App Awards

Desarrolla tu app usando CELL·SDK. Debes rellenar este formulario para participar y enviarnos el formulario de suscripción.

  • Fin de Inscripción: 31/05/2012
  • Último día para enviarnos tu app: 15/06/2012
  • Periodo de votaciones Online: Empezará una vez envíes tu app y nosotros la subamos. Este periodo acabará el 26 de Junio
  • El Jurado valorará las apps más votadas a partir del 28 de Junio.
  • La entrega de premios será el 29 de Junio.

Todavía no tienes Cell·SDK?! O_o

Pues descárgalo aquí.

Cell·SDK y el emulador de Android

Hace unas semanas se publicó una actualización del emulador de Android que muchos estábamos esperando.

Entre otras cosas, la característica fundamental, y una de las más esperadas, es que esta versión del emulador por fin soporta la aceleración de GPU, necesaria para ejecutar aplicaciones que necesitan OPEN GL 2.0. Sigue leyendo

Push Notifications en Cell·SDK

La semana pasada publicamos Cell·SDK 1.2 con un montón de nuevas características y algunas correcciones que hacen del desarrollo multiplataforma en iOS, Android y Windows Phone aún más sencillo.

En el post de hoy vamos a ver cómo enlazar lo que tenemos en el tutorial de Push notifications para Windows Phone y lo que podemos encontrar en la web de Microsoft sobre cómo mandar notificaciones a nuestros dispositivos.

Con el mismo código fuente que tenemos disponible en Github para la aplicación de ejemplo en el  dispositivo nos va a valer para este ejemplo.

Tenemos que tener en cuenta que debemos programarnos una pequeña aplicación/servicio para poder enviar notificaciones al servicio de notificaciones de Microsoft. Tal y como vemos en el diagrama y documentación de Microsoft:

Arquitectura Push

Nosotros tenemos que implementarnos el “Cloud Service” así que vamos a ver un ejemplo de cómo hacerlo según se indica aquí. De este último enlace sólo nos interesa la parte de “Sending a Toast Notification

Vamos a crear un proyecto de ASP.NET vacío y vamos a incluir cuatro controles TextBox y un botón para enviar la notifiación:

Página de envío

Ahora vamos a darle código al evento clic del botón:

protected void SendToast_Click(object sender, EventArgs e)
 {
 try
 {
 // Get the URI that the Microsoft Push Notification Service returns to the push client when creating a notification channel.
 // Normally, a web service would listen for URIs coming from the web client and maintain a list of URIs to send
 // notifications out to.
 string subscriptionUri = TextBoxUri.Text.ToString();

HttpWebRequest sendNotificationRequest = (HttpWebRequest)WebRequest.Create(subscriptionUri);

// Create an HTTPWebRequest that posts the toast notification to the Microsoft Push Notification Service.
 // HTTP POST is the only method allowed to send the notification.
 sendNotificationRequest.Method = "POST";

// The optional custom header X-MessageID uniquely identifies a notification message.
 // If it is present, the same value is returned in the notification response. It must be a string that contains a UUID.
 // sendNotificationRequest.Headers.Add("X-MessageID", "");

// Create the toast message.
 string toastMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
 "" +
 "" +
 "" + TextBoxTitle.Text.ToString() + "" +
 "" + TextBoxSubTitle.Text.ToString() + "" +

" " +
 "";

// Set the notification payload to send.
 byte[] notificationMessage = Encoding.Default.GetBytes(toastMessage);

// Set the web request content length.
 sendNotificationRequest.ContentLength = notificationMessage.Length;
 sendNotificationRequest.ContentType = "text/xml";
 sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "toast");
 sendNotificationRequest.Headers.Add("X-NotificationClass", "2");

using (Stream requestStream = sendNotificationRequest.GetRequestStream())
 {
 requestStream.Write(notificationMessage, 0, notificationMessage.Length);
 }

// Send the notification and get the response.
 HttpWebResponse response = (HttpWebResponse)sendNotificationRequest.GetResponse();
 string notificationStatus = response.Headers["X-NotificationStatus"];
 string notificationChannelStatus = response.Headers["X-SubscriptionStatus"];
 string deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"];

// Display the response from the Microsoft Push Notification Service.
 // Normally, error handling code would be here. In the real world, because data connections are not always available,
 // notifications may need to be throttled back if the device cannot be reached.
 TextBoxResponse.Text = notificationStatus + " | " + deviceConnectionStatus + " | " + notificationChannelStatus;
 }
 catch (Exception ex)
 {
 TextBoxResponse.Text = "Exception caught sending update: " + ex.ToString();
 }

Este código puede estar tanto en una aplicación web, una aplicación de Windows forms, un servicio de Azure, etc…

Tan sólo tenéis que montarlo, desplegar la aplicación de ejemplo de github en el dispositivo ó en el emulador y copiar el Channel ID que saldrá en la ventana de Output de Visual Studio:

Channell ID en Visual Studio

Este código lo introducimos en la página web que hemos creado en el textbox primero y recibiremos en el dispositivo o emulador una notifiación Toast:

Toast Notification

Hay tres tipos de notificaciones para Windows Phone que podemos enviar:

  • Toast: Con documentación y ejemplos aquí
  • Tile: Con documentación y ejemplos aquí.
  • Raw: Con documentación y ejemplos aquí.

Os recomiendo que probéis a enviar otro tipo de notificaciones, en este ejemplo hemos usado el ejemplo de envío de notificaciones Toast.

Para ver el código fuente de la aplicación y cómo es la API Unificada para Android, iOS y Windows Phone de Cell·SDK no tenéis más que pasaros por aquí

Espero que os sirva.

Juan María Laó Ramos.

Lanzamos Cell·SDK1.1

Hace unos días publicamos la nueva versión de Cell·SDK. Podéis descargarlo totalmente gratis y probarlo aquí.

En esta versión hemos incluido un montón de nuevas características que nos facilitan aún más la vida y podéis verlas aquí. Entre otras características nuevas tenemos:

-          Status API: Esta API unifica la forma de acceder a la información de todos los dispositivos Android, iOS y Windows Phone, como por ejemplo al estado de la batería, el ID del dispositivo, la plataforma y un largo etcétera. Podéis descargar Cell·SDK ahora y aprender cómo usarlo en el tutorial de la Status API aquí.

-          Acceso a la cámara: Ahora podemos jugar de manera unificada en todas las plataformas con el nuevo sensor de cámara de una manera sencilla. Leed el tutorial, es muy sencillo.

-          Sistemas de análisis: Hemos incluido una API preparada para integrar diferentes sistemas de analítica para poder ver cómo los usuarios usan las aplicaciones. A día de hoy tenemos disponible la opción que ofrece Localytics pero pronto habrá más. Aquí podéis aprender a usarlo.

Aún hay más características nuevas pero en el post de hoy vamos a ver en detalle las nuevas funcionalidades añadidas con el ScreenManager.

Y es que a la hora de hacer un juego o aplicación es muy importante ofrecer una forma atractiva de crear los diferentes menús que vamos a mostrar. Con la experiencia y el feedback que nos habéis aportado hemos decidido incluir este ScreenManager que muchos os lo habréis implementado varias veces. Pues ahora ya no tenéis que implementarlo ya que lo ofrecemos de fábrica.

El uso es bien sencillo, para verlo en acción descargaos el ejemplo que tenemos en GitHub llamado ScreenManager aquí.

Vamos  a ver el código:

En la clase StaticContent tenemos una nueva variable estática llamada ScreenManager. Esta variable es la que nos va a permitir pasar de una pantalla (o Screen) a otra en nuestro juego o aplicación. Consiste en una colección de las diferentes pantallas que vamos a tener disponibles y que debemos ir añadiendo para poder ir de una pantalla a otra.

Cuando creamos un proyecto nuevo con la plantilla de Cell·SDK se crea la primera pantalla MainScreen.cs y se añade a esta colección por defecto en el archivo Application.cs

///
<summary> /// The main method for loading controls and resources.
/// </summary>
public override void Initialize()
{
    base.Initialize();

    StaticContent.Graphics.IsFullScreen = true;
    StaticContent.Graphics.ApplyChanges();

    StaticContent.ScreenManager.GoToScreen(new MainScreen());
}

Vamos a ver cómo se usa directamente en la clase MainScreen del ejemplo. En la clase MainScreen.cs hemos definido unas cuantas variables del tipo Image que nos permitirán cargar los diferentes recursos del ejemplo para usarlo luego  como fondo de pantalla y como imágenes de los botones que tendremos en nuestra aplicación.

Pantalla de Inicio

Pero lo que realmente nos interesa es el uso de la variables StaticContent.ScreenManager así que veamos los eventos de release de los diferentes botones. Empezemos por el botón de opciones:

///
<summary> /// Go to options screen.
/// </summary>
///
private void bOptions_Released(Component source)
{
    StaticContent.ScreenManager.PushScreen(new OptionsScreen(), StaticContent.TransitionFactory.FadeBlackTransition);
}

Estamos añadiendo al ScreenManager una nueva pantalla, en este caso la de opciones, y con una transición FadeBlackTransition.Hay un montón de transiciones y añadiremos más en un futuro.

Ahora, en la pantalla de opciones (OptionsScreen.cs):

Pantalla de Opciones

Para seguir el flujo de navegación que estamos haciendo hemos añadido un botón para volver al a pantalla de inicio y en el evento Pressed hemos hecho un PopScreen, para eliminar la pantalla de la colección:

public override void BackButtonPressed()
{
    StaticContent.ScreenManager.PopScreen(StaticContent.TransitionFactory.FadeBlackTransition);
}

¡También con una transición!

Resumen

Hemos visto cómo podemos añadir diferentes pantallas a nuestra aplicación de una manera muy sencilla. Con este ScreenManager ya no tenemos que implementarnos nosotros mismos este tipo de mecanismos. Además tenemos un conjunto de transiciones por defecto bastante interesante que cubre la mayoría de efectos que podemos añadir a la hora de pasar de una pantalla a otra.

Os animo a que os descarguéis el código y probéis las diferentes transiciones que vienen por defecto y si tenéis alguna sugerencia sobre alguna transición que creéis podría aportar valor a las que ya vienen por defecto no dudéis en abrir un hilo en el foro sobre ello y lo estudiaremos.

Espero que sirva.

Juan María Laó Ramos (sígueme en twitter @juanlao)

Cell·APP Awards

No debe ser nuevo para vosotros Cell·SDK, un nuevo framework para crear aplicaciones multiplataforma en el que hemos trabajado durante mucho tiempo y que hace poco os presentamos.

Hoy lanzamos un concurso para animaros a todos a probarlo y conseguir fantásticos premios. Presentamos

Cell·APP Awards

Cell·APP Awards

Tan sólo tenéis que descargarlo  y empezar a programar la aplicación o juego que tengáis en mente, pero tened en cuenta una cosa, cuando lo hagáis, será totalmente multiplataforma, es decir, programaréis el juego no sólo para una de las plataformas más extendidas, sino que lo tendréis listo para desplegar en iOS, Android y Windows Phone. Algo que no muchos pueden decir.

Una vez que los descarguéis sólo tendréis que "aprender" a usarlo. Y lo pongo entre comillas porque es realmente fácil, gracias a la potencia que ofrece C# y a los fantásticos tutoriales y ejemplos que tenemos disponibles es realmente fácil.

El concurso comienza el 1 de Marzo y tenéis toda la información disponible aquí.

Si todavía te lo estás pensando, presta atención a los premios:

 1º Premio: Licencia CellSDK Starter + Ipad2 + Nokia Lumia 800 + $250 Publicidad Inmobi + Promoción en MarketPlace (Microsoft)

2º Premio: Licencia Starter CellSDK + Nokia Lumia 800 + $150 Publicidad Inmobi

3º Premio: Licencia Starter CellSDK+ Nokia Lumia 800 + $100 Publicidad Inmobi

4º Premio: Licencia CellSDK Basic + $75 Publicidad Inmobi

5º Premio: Licencia CellSDK Basic + $75 Publicidad Inmobi

¿De verdad que te lo estás pensando todavía?

Resumiendo, increíbles premios, tutoriales, ejemplos y un foro donde poder preguntar dudas sobre el desarrollo de Cell·SDK.

Espero veros por los foros y ... que gane el mejor ;-).

P/D: Sígueme en twitter @juanlao.

 

El juego de la vida en XNA para Windows Phone

Me ha parecido muy interesante el post de Shawn Hargreaves preguntándose si el SpriteBatch es una máquina de Turing, implementado para demostrarlo el juego de la vida y lo ha hecho en http://blogs.msdn.com/b/shawnhar/archive/2011/12/29/is-spritebatch-turing-complete.aspx.

Aquí tenéis la traducción: Sigue leyendo

Sorteo de Nokias Lumia 800

Por fin podemos ganar un Lumia 800.

Todas las semanas, empezando el 5 de diciembre de 2011 hasta el 29 de enero de 2012, sortearemos cinco Nokia Lumia 800 entre las aplicaciones que se hayan presentado al concurso durante la semana correspondiente. Las            aplicaciones para poder presentarse tienen que haberse publicado en la semana correspondiente al sorteo:

http://msdn.microsoft.com/es-es/windowsphone/hh553489.

Juego Silverlight 5 con XNA

Un juego Silverlight 5 con XNA.

¿Podría ser el primer juego 3D en Silverlight?

Aquí tenéis un shooter que creó para la AppWeek 2010 usando las nuevas características 3D de Silvlerlight 5. Tendréis que instalar el plugin de Silverlight 5 RC (si no lo tenéis aún). Y jugar al juego aquí.

Una vez que termine la animación inicial, podréis empezar a disparar a los enemigos:

Juego Silverlight 5 con XNA

Juego Silverlight 5 con XNA

 

Espero que os guste.

Juan María Laó Ramos.

Ejemplo de Silverlight 5

Silverlight 5 nos trae XNA 3D a la web.

Vamos a ver un poquito de historia sobre esto:

  • En el MIX 11 en Abril se anunció que Silverlight 5 iba a incluir una nueva API 3D. Está basado en XNA, por lo que incluye tipos familiares como GraphicsDevice, VertexBuffer y Texture2D, pero no era un port completo de XNA. No incluía muchas funcionalidades como BasicEffect, SpriteBatch, Content Pipeline.
  • En Septiembre, la release candidate Silverligth 5 RC añadío nuevas características incluyendo los cinco efectos integrados en XNA 4.0, además de una librería de matemáticas compatible con XNA. David Catahe cuenta estos cambios.
  • Ahora, el Silverlight toolkit ofrece una compatibilidad increible con XNA, incluyendo ContentManager, Model, SpriteBath, Ratón, Teclado, y nuevas plantillas de Visual Studio para empezar con Silverlight 3D. Y cómo no, David ha hecho una gran introducción.

Si, de acuerdo, sigue sin ser un port completo de XNA, pero con esta nueva toolkit, se han portado las suficientes partes como para portar fácilmente juegos de Xbox y Windows Phone a la web. Como muestra uno de tantos ejemplos que se han portado muy rápidamente y que están incluidas en el toolkit (Toolkit/Sep11/Source/Sample source code.zip):

Ejemplo de Silverlight 5

Ejemplo de Silverlight 5

Para usar el Content Pipeline en una aplicación Silverlight 5, tendréis que instalar XNA Game Studio 4.0 en vuestra máquina de desarrollo. Pero tranquilos, esto no significa que tengáis que distribuir XNA en vuestros clientes web, recordad el diagrama sobre el Content Pipeline:

Diagrama del Content Pipeline

Diagrama del Content Pipeline

En Silverlight 5 esto funciona de la siguiente forma, la parte azúl se ejecuta en tiempo de compilación en el PC de desarrollo, usando los assemblies de XNA Game Studio 4.0. Sólo las cajas rojas se ejecutarán en la máquina del cliente. Es exáctamente igual cuando creamos juegos XNA para Xbox o Windows Phone, pero el dispositivo remoto ahora es un navegador web.

Espero que os sirva.

Juan María Laó Ramos.

 

Sácale más provecho a tus desarrollos con WP7

Microsoft está empezando a desarrollar su plataforma de anuncios y está dando pasos uno detrás de otro.

Desde la nueva iniciativa en Microsoft Advertising pubCenter ya es posible darnos de alta y empezar a incluir anuncios en nuestras aplicaciones para WP7 para sacar más rendimiento de nuestros desarrollos sin coste para el usuario final siguiendo la línea de otros Markets como el de Apple o Android.

Cómo es la vida, el copiado se ha convertido en copiador, 😉

Y dentro de poco estará disponible una versión para poder hacerlo en nuestras webs.

Espero que os guste.

ShareBill, la e-Servilleta

¿Estáis cansados de salir con “amigos” y a la hora de pagar nunca salen las cuentas? Ya tienes una solución mucho más cómoda, manejable y con menos errores que la calculadora de tu Smartphone.

Imagen digital de una servilleta de bar

Ha llegado Sharebill, la e-Servilleta(para los de la LOGSE servilleta electrónica) y totalmente gratuita desde el Marketplace de Microsoft.

Imagen de la interfaz de usuario de la aplicación Sharebill

Espero que os sirva.

Juanma