Banners ads con Xamarin.Forms & CustomRenders

Mis compañeros de Pasiona Joan Isaac y Joan Caparrós están trabajando duro en el proyecto con Xamarin.Forms y han querido aportar su granito de arena explicando como agregar publicidad en nuestras app. Esta opción no está ni siquiera en ingles y por eso los he animado ha escribir el artículo. Espero que no sea el último.

Antes de encontrar la solución se realizó una búsqueda para encontrar la mejor solución y que fuese lo más adaptable posible. Decidimos tratar de integrar los anuncios a través de Customs Renderers.

Este método permite poner el anuncio en la mejor posición y hacerlo visible/invisible según la necesidad, por ejemplo, si la aplicación tiene unos usuarios Premium que paga para evitar los anuncios, se podrían hacer invisibles los anuncios, pero si el usuario es un usuario libre, se podría mostrar el anuncio en la aplicación en la mejor posición para evitar problemas con la experiencia del usuario.

Ciertamente el diseño básico Xamarin.forms está limitado (recordemos que Xamarin.Forms intenta compactar en un único control el máximo de propiedades disponibles comunes a las tres plataformas) y si se quiere hacer modificaciones para añadir funcionalidades propias de cada plataforma, es posible hacerlo a través de Customs Renderers. Los customs renderers permiten modificar los controles usados en el PCL añadiéndoles funcionalidades nativas propias de cada dispositivo.

CustomRender

Como se puede ver en la imagen anterior, definiendo un control propio y conectándolo con cada uno de los nativos, se consigue poder modificar el control común en cada una de las plataformas para poder modificarlo con las propiedades y/o funcionalidades propias de cada una de las plataformas que se requieran. Sigue leyendo

Anuncios

Xamarin Forms uno para todos !!!

Hace unos meses que estoy trabajando en un proyecto con Xamarin Forms y creo que es buen momento para empezar a hacer una serie de entradas sobre el tema y explicar mi experiencia utilizando esta plataforma.

Que es Xamarin

Xamarin es una plataforma que nos permite crear Apps nativas para iOS, Mac, Android, Windows Phone, Windows 8 y más. Además nos permite utilizar solo un lenguaje de programación “C#” y  reducir tanto los perfiles como la cantidad de equipos involucrados en el desarrollo.

Ventajas

  • Aplicaciones 100% nativas
    • Interfaces Nativas
    • Acceso a la API nativa del dispositivo
    • Rendimiento 100% nativo
  • Un solo lenguaje de programación C#
  • IDEs sencillos
    • Xamarin Studio: IDE propio
    • Visual Studio
  • Código compartido
    • el 100% de la lógica de negocio puede compartirse entre las plataformas
    • Técnicas para compartir el código:
      • Proyectos compartidos: podemos utilizar directivas de compilación #if para utilizar dependiendo de las necesidades específicas de la plataforma.
      • PCL “Portable Class Library”: librerías .NET compatibles con diferentes plataformas.
      • Xamarin.Forms: nos permite crear interfaces nativas con más de 40 controles compatibles.

Arquitectura Xamarin Clásica

La forma de plantear el diseño de la App tenía que ser parecido a este:

xamarin_old

  1. Core Library:  Xamarin nos proporciona la posibilidad de crear código compartido en C# para reutilizar en todas las plataformas, Este código podríamos tener  toda la lógica de negocio, la capa de acceso a datos y la capa de servicios. De esta manera solo tendremos una librería donde poner nuestra lógica y reducir el código repetido y facilitar el mantenimiento.
  2. Specific Platform layer: Aunque utilicemos código compartido siempre necesitaremos acceder a utilidades nativas de la plataforma y crear un interfaz de usuario específico para cada plataforma.

Sigue leyendo

How to: Insect Invaders

Desde que asistí al Hack-a-thon de Fuengirola sobre Windows Phone, mi intención ha sido aprovechar la cuenta de suscriptor y publicar algún tipo de aplicación.

Le estuve dando muchas vueltas a que tipo de aplicación podría realizar, mi primera intención era hacer una brújula que apuntara a la Meca para que los musulmanes lo tuvieran más fácil a la hora de orientarse, pero mi sorpresa fue mayúscula cuando me di cuenta que ya habían un par de aplicaciones de este tipo y además una era de pago. A partir de ese momento entendí  que cualquier idea que pudiera tener seguro que ya estaba publicado en el MarketPlace.

Pero no desistí en el intento y se me ocurrió hacer un juego en XNA, si tengo que empezar de cero a programar para Windows Phone que mejor que hacer un juego en XNA que no una aplicación con Silverligth que no me gusta nada.

Bueno ya tenía la base y ahora pensar en el juego. Ummm mi primer juego y sin tener ni idea de XNA no puede ser muy complicada de desarrollar. Que mejor que empezar con un clásico que no tiene muchas pantallas y que seguro no puede ser muy difícil de programar como es el Space Invaders.

Cuando tomas una decisión como la mía es ir a la página de Microsoft donde puedes encontrar los ejemplos de todo lo que necesitas para desarrollar tu aplicación.

La Base para el Juego:

  • Pantallas de la aplicación
    • Inicial
    • Juego Principal
    • Menú Pausa
    • Fin de Partida
  • Un fondo que no se tiene que animar
  • Una entidad Nave para el jugador principal
    • Movimiento de derecha a izquierda
    • Disparo “sonido de disparo”
    • Explosión para cuando es alcanzado y Sonido explosión
  • Una entidad Enemigo para crear todos los enemigos con esta base.
    • Movimiento de izquierda a derecha “pero en bloque”
    • Diferentes puntuaciones por tipo de enemigo
    • Disparo
    • Explosión al ser alcanzado y sonido
  • Diferentes niveles para hacer durar un poco el juego
  • Recursos para mostrar las vidas, puntuación y record

¿ Como una persona que nunca ha creado un juego, ni a programado en XNA puede salir exitoso de esta experiencia ?

Yo por ejemplo para mi primer contacto con el tema, miré el curso de un juego con XNA llamado Shootter.

Existe una página web sobre desarrollo en Windows Phone indispensable para todo aquel que quiera introducirse en este mundo con gran cantidad de ejemplos que podremos utilizar en nuestros desarrollo.

Pero tener cuidado no tengáis la tentación de publicar directamente el ejemplo de Microsoft como si fuera vuestro que ya no seríais los primeros XD.

Después de esta experiencia que realmente he aprendido mucho he decidido pasar el juego a HTML5 y JavaScript para poderlo utilizar en diferentes plataformas, ya os informaré como me va y si la experiencia es igualmente positiva “seguro que si”.

No os olvidéis de descargar y probar mi juego ;-)

 http://www.windowsphone.com/es-ES/apps/c2b100ff-45d8-4972-9d33-8bcbc2f148ba