Solicita tu curso de Xamarin!!


Hace algunos meses atrás tuve el honor de poder brindar un curso de #Xamarin con unos compañeros del trabajo donde laboro actualmente, cabe mencionar que este fue muy solicitado tiempo despues, y a la fecha siguen preguntando sobre cuando se repetirá susodicho. Bueno, dejenme compartirles el siguiente anuncio:

A partir del 1 de Septiembre tenemos fechas abiertas para poder ofrecer cursos, talleres o charlas de Xamarin a cualquier parte de la república, solo debes de mandar un correo a la siguiente dirección:

luciomsp@geeks.ms

Donde nos hagas saber la siguiente información:

  • Empresa o Institución educativa:
  • Nombre de la persona de contacto:
  • Curso / Taller / Charla (conferencia):
  • Fechas:
  • Motivo de la solicitud:

Esto para poder agilizar el proceso, posteriormente me pondré en contacto para concretar la solicitud, cabe mencionar que el curso completo es la preparacion para que los participantes logren acreditar el examen del 50% de Xamarin University, aunado a esto les recuerdo que la unica casa que los certifica como Xamarin Certified Developer Mobile, es la misma empresa de Xamarin a traves de su entrenamiento interno.

Para mayor informacion pueden preguntar por este medio o via twitter: @LucioMSP

No olviden visitar los HT #Xamarin #Xamarin.Forms

Creando una App con Xamarin.Forms [Parte 1]


Durante las siguientes semanas me gustaría compartir con ustedes mis aventuras en el mundo del desarrollo móvil, puesto que en mi trabajo estoy al 100% con Xamarin, pero principalmente con Xamarin.Forms, la cual desde mi punto de vista es la mejor opción a la hora de desarrollar aplicaciones, puesto que el porcentaje de código compartido es mayor.

Cabe mencionar que así como cualquiera de ustedes posiblemente contare con compromisos, restricciones de tiempo que me alejaran un poco del teclado, sin embargo voy a tratar de poder culminar esta serie de temas que les propongo a continuación las cuales se enfocan en la creación de una App con Xamarin.Forms:

Parte 1 : Introducción

Parte 2: Primeros pasos

Parte 3: Como usar Xamarin.Forms

Parte 4: Application Resources

Parte 5: Dependency Injection

Parte 6: View Model – Primera Navegación

Parte 7: Unit Testing

Parte 8: El consumo de un servicio Web REST

Parte 9: Trabajando con alertas y cuadros de dialogos

Parte 10: Diseño y desarrollo de la interfaz de usuario

Las areas en las que me enfocare para el ‘como puedo comenzar’ son las siguientes:

Empezando – Proyecto y estructura de la solución
Recursos de aplicaciones
La manera correcta de usar Dependency Injection
XAML – La vista vs código
MVVM & View Model – Primer acercamiento
Navegación – Modelo de navegación
Consumo de datos de servicios Web

Introducción

Como todos ya sabemos, Xamarin es una plataforma que nos permite crear aplicaciones móviles tanto para Android como para iOS y Windows Phone; Ademas de que nos permite 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
  • Coding compartido
    – El 100% de la logica 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 especificas de la plataforma.
    \\PCL “Portable Class Library: libraries .NET compatibles con diferentes plataformas.
    \\Xamarin.Forms: nos permite crear interfaces nativas con mas de 40 controles compatibles.

Arquitectura Xamarin Clasica

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

1 – Core Library: Xamarin nos proporciona la posibilidad de crear codilgo compartido en C# para reutilizar en todas las plataformas. En 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 codigo repetid y facilitar el mantenimiento.

2 – Specific Platform Layer: Aunque utilicemos codigo compartido siempre necesitaremos acceder a las utilidades nativas de la plataforma y crear una interfaz de usuario especifico para cada plataforma.

Xamarin.Forms

Con la aparición de Xamarin.Forms ha cambiado mucho la forma de afrontar el diseño de las Apps y es que podemos tener una capa de interfaz común para diseñar nuestras propias interfaces multiplataforma, lo que da por resultado los controles nativos de la plataforma.

1- Core Library: Logica compartida
2- Shares UI Code: Interfaz de usuario compartido
3- Specific Platform Layer: Acceso a recursos específicos de la plataforma

Utilidades a conocer…

Algo de lo que verán mucho o deben de conocer es sobre:

CustomRenderers – Nos permite personalizar la visualización y el comportamiento de los controles para cada una de las plataformas.
DependencyServices – Nos permite acceder desde Xamarin.Forms a características nativas de cada plataforma, como podría ser el GPS, cámara, etc.
MessagingCenter – Nos permite publicar y subscribirse a mensajes para comunicar nuestros ViewModels o diferentes componentes.

Ahora ya que estamos un poco empapados de lo que nos enfrentaremos a futuro, les platico de que tratara la aplicación, esta sera de consumir datos reales y que brinden actualizaciones  regulares, y bueno, lo mas usual es brindar conocimiento del clima, se que existen muchas, pero son las que a mi parecer cumplen con todas las demandas de lo que una App debe de tener.

Espero y me sigan en este camino que emprenderemos…

//Recuerden: Cualquier comentario favor de hacerlo en el post relacionado.

#HappyCoding #XamarinForms

Notas: Xamarin {JIT & AOT}


Recordemos que Xamarin ofrece dos productos comerciales: Xamarin.iOS y Xamarin.Android, los cuales están construidos en la parte superior de Mono, una versión de código abierto de .NET Framework basado en los estándares ECMA .NET publicados. Mono ha existido casi tanto tiempo como el marco .NET en sí, y funciona en casi todas las plataformas imaginables incluyendo Linux, Unix, FreeBSD y Mac OS X.

Formas de compilar en Xamarin:

iOS compila directamente a código ensamblador ARM nativo, utilizando Ahead Of Time (AOT). En Android, el compilador de Xamarin pasa a lenguaje intermedio (IL), que luego pasa a ser compilado en “Just-In-Time (JIT)” para el montaje nativo cuando se inicia la aplicación.

Xamarin JIT AOT

JIT
Just In Time compilation (Compilación en tiempo de ejecución)

Esta opción es una especie de híbrido entre un compilado e interpretado. Y es cómo trabajan la mayoría de entornos de ejecución de Java.

La idea detrás de esto es simple. En lugar de compilar todo de antemano, se compila sólo lo que es necesario para la tarea en cuestión.

AOT
Ahead Of Time Compilation (Por delante de la compilación de tiempo)

AOT, significa que en lugar de esperar hasta que el código sea ejecutado, toma el código inicial (por lo general el código de bytes) y lo compila para el dispositivo que se está ejecutando. Al actualizar su dispositivo Android en estos días, se le dirá que es la optimización de las aplicaciones – un proceso que puede tardar varios minutos. En esencia, este es el tiempo por delante de compilación introducido recientemente a Android (conocido como ART).

En ambos casos, las aplicaciones Xamarin utilizan un tiempo de ejecución que se encarga de automatizar tareas, tales como la asignación de memoria, recolección de basura, etc.

[Meetup] ¿Nativo o Cross Platform?, he ahí el dilema…


cross-platform_270x270

Introducción

El cross-platform es un método para desarrollar aplicaciones para nuestros teléfonos móviles con un coste menor de desarrollo. Este se centra en un único desarrollo que exporta a las diferentes plataformas disponibles en el mercado. Gracias a esta práctica, se puede conseguir la presencia de nuestras aplicaciones en todos los sistemas operativos, con un coste mucho menor que si fueran desarrolladas en el lenguaje nativo ya que esto supondría un desarrollo para cada plataforma.

Para el desarrollo de estas aplicaciones hay que tener en cuenta qué plugins y conectores vamos a necesitar y comprobar si están disponibles para todas las plataformas en las que deseamos que nuestra app tenga presencia.

El evento

En esta segunda edición de la comunidad de #XamarinStudentsMexico contaremos con la participacion de dos expertos que han desarrollado Apps de forma Nativa y ahora usando Xamarin, dandonos a conocer su perspectiva sobre que es mejor y por que o cuando usar cada uno, ademas de temas muy interesantes.

Agenda

Bienvenida

Ponente: Juan Carlos Ricalde “Jucaripo” | Desarrollador Sr. | Experiencia de 3 años en #Xamarin | Desarrollador Web

  • Desarrollo de  librerías PCL  en Xamarin.

Ponente: Luis Beltran | #XSP, #MSP & C# Developer. Currently learning #Xamarin and doing a PhD in #EngineeringInformatics

  • Detectando Emociones con Microsoft Cognitive Services y Xamarin

El lugar

NearSoft  – San Luis Potosí 196, Oficina 401, Roma Norte

Hora

Los esperamos a partir de las 19:30, dando comienzo en punto de las 19:45, puesto que finalizaremos con sorpresas.

Más información

Cualquier duda a comentario favor de hacerlo saber la pagina del evento (Meetup).

Notas: Xamarin.iOS / Xamarin.Android


Cuando estaba en la Universidad recordaba que muchos de mis compañeros haciendo resúmenes de todas las diapositivas que los maestros nos brindaban para estudiar, puesto que los exámenes son esto, y bueno, a continuación les quiero proporcionar algunos “Tips” o  notas esenciales que podrían ayudar a estudiar si están a punto de tomar el examen de certificación de Xamarin.

La propiedad Frame (Marco) de UIView en iOS nos permite manipular/mover una vista a una nueva ubicación dentro de su matriz (parent).

“Con UIView se pueden establecer la posición de 2 maneras:  center – frame.origin”

Cuando se usa Shared Projects (proyectos compartidos), NO se deben de proporcionar las interfaces o abstracciones (abstractions ) para cada característica específica de cada plataforma utilizada.

Configurando la propiedad MainLauncher a verdadero (true) en en atributo [ Activity ] se puede especificar tu actividad inicial.

Recordemos que las aplicaciones iOS pueden tener mas de una UIWindow asociada a ellas y que muchas de las propiedades específicas de la aplicación iOS están guardadas en el archivo Info.plist.

Un Bundle en Android es un diccionario para almacenar y pasar información seriada entre actividades.

Para usar el método estático de iOS NSFileManager.SetSkipBackupAttribute en la Librería de Clase Portable (Portable Class Library), se necesita crear una abstracción (abstraction ) e implementarla en el proyecto Xamarin.iOS para dar acceso a esta API.

La forma en que trabajan las aplicaciones de Xamarin.Android a la hora de ejecución es gracias a Mono Runtime, puesto que esta se coloca justo encima del núcleo de Linux, lo cual crea un contexto de ejecución en paralelo al tiempo de ejecución de Android.

Para ocultar la barra de navegación en Xamarin solo se debe agregar la siguiente línea de código en el constructor de las páginas.

 NavigationPage.SetHasNavigationBar(this, false);

Xamarin Test Cloud te permite ejecutar tu aplicación en miles de modelos diferentes y versiones de SO diferidas.

Memoria: .NET/Mono usa Garbage Collector (GC), quien periódicamente detiene el programa y libera la memoria de la App que ya no se utilice. Esto sucede de forma automática tanto como se necesite.

Espero y les ayuden, de ser así, les agradecería sus comentarios.

DisplayAlert(“Hasta luego!!”,”Ok”);