Developers http://stvansolano.github.io/blog Twitter: @stvansolano • ¡Xamarin Dev DaysCosta Rica! – Octubre 2016 • Día completos de entrenamiento • Expertos y profesionales Xamarin • Principiante – Intermedio – Avanzados • Sesiones de código y aprendizaje
• Estrategias de código compartido • Xamarin.Forms vrs. Desarrollo tradicional • Apps en el mundo real. • Arquitectura REST y servicios web • Apps conectadas y desconectadas. • Rifa. > Meetup: Mobile CR Developers http://stvansolano.github.io/blog Twitter: @stvansolano
Twitter: @stvansolano • Desarrollo tradicional o en Silo (diferentes totalmente) • Desarrollo híbrido (WebView + código web) • Desarrollo multi-plataforma (Xamarin) • Mixtos (JavaScript + Nativo) Enfoques actuales
Framework multi-plataforma para la creación de aplicaciones móviles con .Net • Navigation • Data Binding • Styles, Triggers • Standard Controls Desarrollomulti-plataforma
@stvansolano • Casos de máxima re-utilización requerida entre Android, iOS y Windows. • Apps rápidas enfocadas en entradas de datos o bien pruebas de concepto. • Apps que requieren poca personalización de UI en cada plataforma (> pixel-perfect). • Poco o mínimo uso de Renderers y personalizaciones ¿Cuándo utilizar Xamarin.Forms?
Twitter: @stvansolano Ventajas • Permite tener código de diferentes plataformas en una misma sección de código • Permite utilizar directivas de compilación • Menos código que mantener en una misma ubicación Desventajas o Bifurcación de código entre plataformas (#ifANDROID) o No genera DLLs para compartir Shared Projects
http://stvansolano.github.io/blog Twitter: @stvansolano Ventajas • Permite compartir código enre multiples proyectos y plataformas. • Refactorings afectan los proyectos referenciados. • Permite referenciar otros proyectos como DLLs. Desventajas • No es posible usar directivas de compilación (#if ANDROID) • Deja por fuera sub-conjuntos del framework de .Net que no son comunes (FileSystem) PCLs (Portable Class Library)
REST está diseñado para tomar ventaja de la arquitectura de la WWW • Operaciones implementadas por verbos HTTP • Utiliza URLs que representan recursos accesibles C = Create R = Read U = Update D = Delete
@stvansolano • Clase propia .Net para comunicación HTTP • Namespace System.Net.Http.HttpClient • Compilable y extendible entre las aplicaciones Android, iOS y WinPhone. • Un único código puede manejar las solicitudes en cada plataforma.
• Librería especializada para la serialización/deserialización de JSON • Se utiliza mayormente para deserializar contenidos (string->Objecto) • Provee código re-utilizable para el manejo de JSON en aplicaciones .Net de todo tipo (DRY – Don’t Repeat Yourself) • Y por supuesto, disponible para Xamarin
@stvansolano Desarrollandocon Xamarin • Habilitar permisos de internet para la aplicación. • http://json2csharp.com: Generar C# desde Json • Precaución: HttpClient implementa IDisposable, por lo que requiere liberar recursos de forma responsable • Utilizar IsBusy/ActivityIndicador para interacciones con el usuario • Utilizar ConfigureAwait(false) para llamadas en segundo plano
@stvansolano Tips para tu aplicación • Prevenir el estado de la conexión (CrossConnectivity.Current.IsConnected) • Caching para reducir llamadas y agilizar respuestas. • Offline data & sync-up • Mantener la seguridad en mente (tokens) • Segmentar llamadas según las necesidades (Carga, Segundo plano y solicitud de usuario)
Twitter: @stvansolano • Permiten re-utilizar elementos y aspectos importantes mediante código multi-plataforma existente. • Disponibles open-source y mayormente desarrollados por Xamarin / Microsoft • Recomendados: Connectivity, FileSystem, Geolocator, Share y muchos más. Xamarin Plugins