Archivo de la categoría: Cell·SDK

Zombeee

Imagina …

... que te despiertas en tu granja una mañana, como todas las mañanas, y una manada de ovejas zombies han invadido tus tierras.

Mientras llega ese día (ten por seguro que llegará) puedes entrenar con estos juegos en tu móvil. Hemos hecho estos juegos con  Cell·SDK lo que nos ha permitido hacer los juegos una sola vez y publicarlos en los markets de iOS, Windows Phone y Android. El mismo zombie-código en las tres plataformas :).

Zombeee

Descárgatelos y pruébalos :).

Juan María Laó Ramos.

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.