Material Tech Summit 2016

Otro año más una gran evento montado por la gente de Microsoft, con muchos temas interesantes y la posibilidad de ver a gente que de otra manera sería muy complicado coincidir.

Adjunto las slides de mi presentación sobre Xamarin y la APi de Microsoft Cognitive Services.

En breve compartiré el código de la demo y espero poder escribir algún artículo sobre el tema

Material – dotNetSpain2015

Lo prometido es deuda y ya he subido los ejercicios que utilizamos en el Lab de Xamarin.

Ejercicio1

  • Android
    1. ListaSimple : Our first Android list with ListView and the ArrayAdapter
    2. Lista: Complex List with Custom Adapter and Listview
  • iOS
    1. Lista: First iOS list with Custom UITableViewSource
  • Xamarin Forms
    1. Lista: Fisrt List example for all platforms only one view. XAML PAge and ListView with Template.

Ejercicio2

  • MVVM: Example how use MVVM pattern in Xamarin Forms.

Ejercicio3

  • Http services: Example how use HttpClient for consume API REST in Xamarin Forms.

MaterialMaterial

Xamarin Forms & Azure Mobile Services

Después del éxito que ha tenido la última entrega de las 4sessions de Techdencias voy ha ampliar un poco la explicación del ejemplo que utilizamos y compartir los materiales para que todo el mundo pueda jugar un poco ;-)

El Juego de Quien es Quien !!!

Este ejemplo es un sencillo juego de quien es quien utilizando Xamarin Forms con animaciones, que utiliza Azure Mobile Services para validar las preguntas realizadas por el jugador y poder descubrir que personaje de los Simpson está oculto tras la bolsa de papel.

El resultado del juego seria este:

Juego

 

1. Back-end en AZURE

Lo primero que necesitamos es hacer la parte de Back-end de la forma más sencilla posible y para eso tenemos los Mobile Services de AZURE. Sigue leyendo

Xamarin Forms & PCL HttpClient

Esta estrada viene por la consulta realizada por @barbpabl sobre como utilizar httpClient desde una librería PCL. Porque tenia problemas al ejecutar desde Android.

Antes de empezar solo recordar que una librería PCL es aquella que al compilar es compatible con diferentes plataformas y nos ayuda a generar librerías multi-plataforma.

Por ejemplo con la librería PCL generada con un proyecto Xamarin.Forms v.1.0.6186 la librería es compatible con:

PCL

A partir de aquí como reutilizar mis llamadas Http en una sola librería para poder compartir el código en todas las plataformas compatibles con esta librería.

1. Crear el proyecto Xamarin Forms

Lo primero de todo es crear el proyecto móvil con Xamarin Forms, Sigue leyendo

Codemotion 2014 – Xamarin & Azure Mobile Services

Este fin de semana estaremos en la Codemotion Madrid. No te pierdas las charlas de la gente de Techdencias.

1656258_783755725018987_6273104429504835825_n

  • Viernes 21 Xamarin & AZURE Mobile Services
    • Ya no tienes que tener tres equipos de desarrollo para hacer una APP móvil 100% nativa.Con la nueva versión de Xamarin ya podemos construir rápidamente pantallas compartidas para IOs, Android y Windows Phone, crea código compartido por las plataformas en C#. Además puedes consumir servicios de datos especialmente pensado para consumir desde cualquier plataforma alojados en la nube con mobile services.

      NO lo dudes y crea aplicaciones móviles profesionales de la manera más fácil.

  • Sábado 22 ASP.NET vNext: El futuro del desarrollo web en .NET!
    • Quieres conocer las novedades de ASP.NET vNext? En esta sesión veremos todas las novedades de vNext y el cambio radical que supone respecto al modelo «tradicional» del desarrollo web en tecnologías Microsoft. Esta sesión está destinada a desarrolladores web que quieran ver las novedades que presenta .NET al respecto.

Además tienes la Agenda de las otras charlas imprescindibles !!!

Agenda

Curso Xamarin en Pasiona

1932402_770261193035107_3787109473428250430_n

Este fin de semana hemos realizado el curso de Xamarin.Forms en Pasiona con todo un exitazo de asistencia.

Personalmente estoy muy contento de la participación de la gente y sé que se han quedado muchos temas por tratar. El punto más complicado en la formación fue que todo el mundo trajera preparado el entorno con todo lo necesario para empezar a trabajar y eso ralentizó el poder empezar con el temario desde el principio.

Pero creo que la sensación en general ha sido positiva y ya estamos trabajando en la v.2 del curso para tratar todas las cosas que se quedaron en el tintero  y de esa manera poder abarcar todo lo que nos aporta Xamarin en el mundo del desarrollo móvil.

10422440_772253516169208_3905829773160021206_n

Por otro lado no tengo otra cosa que agradecer la visita de nuestro amigo de innumerables batallas José Miguel Torres alias el  «@alegrebandolero» que se pasó a saludarnos y es parte del equipo de Xamarin. Toda una visita VIP para el curso !!!

WP_20141024_001  WP_20141025_001

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

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