A la hora de desarrollar aplicaciones con Xamarin.Forms el rendimiento suele ser un factor a tener en cuenta. En Xamarin.Forms, ¿sabes el ciclo de vida de un Layout?, ¿qué opciones de Layout son más óptimas?, ¿cómo afectan los Bindings al rendimiento y como tratarlos?, ¿qué debemos hacer para optimizar el trabajo con imágenes?, ¿ListView o CollectionView?, ¿y qué ocurre con Shell? A estas y otras preguntas habituales de rendimiento daremos solución, con datos y pruebas en forma de sencillos consejos a tener en cuenta a la hora de desarrollar una aplicación con Xamarin.Forms.
Este documento presenta una introducción a la creación de controles personalizados en Xamarin.Forms. Explica cómo crear controles utilizando Custom Renderers, permitiendo personalizar la apariencia y comportamiento de controles existentes en cada plataforma. También explica cómo crear controles utilizando SkiaSharp, dibujando directamente en un canvas para obtener un alto rendimiento de forma multiplataforma. Finalmente, cubre aspectos como la creación de propiedades enlazables y el rendimiento al crear controles.
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsJavier Suárez Ruiz
Este documento proporciona información sobre Xamarin.Forms y cómo mejorar el rendimiento de las aplicaciones desarrolladas con este framework. Se discuten temas como el uso adecuado de layouts, views, listviews y bindings para optimizar el rendimiento. También se mencionan técnicas como fast renderers, custom renderers y behaviors que pueden acelerar el desempeño de las aplicaciones. Finalmente, el documento brinda consejos adicionales como el uso de AOT, la optimización de recursos y el caching de imágenes.
In this session we are going to see in depth the new .NET MAUI handlers, a comparison with the Xamarin.Forms renderers as well as other related aspects such as the possibilities when extending or customizing a handler, performance, etc.
Analizando interfaces de usuario avanzadas con Xamarin.FormsJavier Suárez Ruiz
Este documento presenta las características avanzadas de interfaz de usuario que se pueden lograr con Xamarin.Forms, incluyendo interfaces compartidas entre plataformas, lógica de negocios compartida y renderizadores personalizados. También muestra varios ejemplos de aplicaciones como My Trip Countdown, Pulse Music y Netflix.
Este documento presenta sobre Xamarin.Forms y sus nuevas características en Xamarin.Forms 3.0. Ahora se puede crear aplicaciones para nuevas plataformas como Linux (usando GTK#), WPF, y la web. También hay soporte para nuevos dispositivos como wearables y Internet de las Cosas. Con nuevas características como SkiaSharp, FlexLayout y VisualStateManager es posible crear aplicaciones con una interfaz más atractiva.
¿Sabes el ciclo de vida de un Layout?, ¿qué opciones de Layout son más óptimas?, ¿cómo afectan los bindings al rendimiento y como tratarlos?, ¿rendimiento en listados?, ¿fast renderers?. A todas esas preguntas y a otras tantas, intentaremos dar solución en esta sesión.
Xamarin.Forms Shell introduce una nueva jerarquía para la organización de la interfaz de usuario de las aplicaciones móviles que maximiza la reutilización de código y facilita la creación de diseños consistentes entre plataformas. La nueva API de navegación basada en URLs mejora la experiencia de usuario y permite funcionalidades como deep linking. Además, Shell proporciona nuevas opciones de diseño visual para conseguir la misma apariencia en iOS y Android sin necesidad de código específico de plataforma.
Este documento introduce Embeddinator-4000, una herramienta que permite convertir librerías .NET en librerías que puedan ser consumidas desde aplicaciones iOS con Objective-C, Android con Java, macOS, Linux y Windows. Embeddinator-4000 toma código C# compartido y genera código y archivos para cada plataforma objetivo, permitiendo reutilizar lógica entre plataformas.
Este documento presenta una introducción a la creación de controles personalizados en Xamarin.Forms. Explica cómo crear controles utilizando Custom Renderers, permitiendo personalizar la apariencia y comportamiento de controles existentes en cada plataforma. También explica cómo crear controles utilizando SkiaSharp, dibujando directamente en un canvas para obtener un alto rendimiento de forma multiplataforma. Finalmente, cubre aspectos como la creación de propiedades enlazables y el rendimiento al crear controles.
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsJavier Suárez Ruiz
Este documento proporciona información sobre Xamarin.Forms y cómo mejorar el rendimiento de las aplicaciones desarrolladas con este framework. Se discuten temas como el uso adecuado de layouts, views, listviews y bindings para optimizar el rendimiento. También se mencionan técnicas como fast renderers, custom renderers y behaviors que pueden acelerar el desempeño de las aplicaciones. Finalmente, el documento brinda consejos adicionales como el uso de AOT, la optimización de recursos y el caching de imágenes.
In this session we are going to see in depth the new .NET MAUI handlers, a comparison with the Xamarin.Forms renderers as well as other related aspects such as the possibilities when extending or customizing a handler, performance, etc.
Analizando interfaces de usuario avanzadas con Xamarin.FormsJavier Suárez Ruiz
Este documento presenta las características avanzadas de interfaz de usuario que se pueden lograr con Xamarin.Forms, incluyendo interfaces compartidas entre plataformas, lógica de negocios compartida y renderizadores personalizados. También muestra varios ejemplos de aplicaciones como My Trip Countdown, Pulse Music y Netflix.
Este documento presenta sobre Xamarin.Forms y sus nuevas características en Xamarin.Forms 3.0. Ahora se puede crear aplicaciones para nuevas plataformas como Linux (usando GTK#), WPF, y la web. También hay soporte para nuevos dispositivos como wearables y Internet de las Cosas. Con nuevas características como SkiaSharp, FlexLayout y VisualStateManager es posible crear aplicaciones con una interfaz más atractiva.
¿Sabes el ciclo de vida de un Layout?, ¿qué opciones de Layout son más óptimas?, ¿cómo afectan los bindings al rendimiento y como tratarlos?, ¿rendimiento en listados?, ¿fast renderers?. A todas esas preguntas y a otras tantas, intentaremos dar solución en esta sesión.
Xamarin.Forms Shell introduce una nueva jerarquía para la organización de la interfaz de usuario de las aplicaciones móviles que maximiza la reutilización de código y facilita la creación de diseños consistentes entre plataformas. La nueva API de navegación basada en URLs mejora la experiencia de usuario y permite funcionalidades como deep linking. Además, Shell proporciona nuevas opciones de diseño visual para conseguir la misma apariencia en iOS y Android sin necesidad de código específico de plataforma.
Este documento introduce Embeddinator-4000, una herramienta que permite convertir librerías .NET en librerías que puedan ser consumidas desde aplicaciones iOS con Objective-C, Android con Java, macOS, Linux y Windows. Embeddinator-4000 toma código C# compartido y genera código y archivos para cada plataforma objetivo, permitiendo reutilizar lógica entre plataformas.
La plataforma Universal Windows facilita gran cantidad de tareas a los desarrolladores para cubrir múltiples escenarios entre diferentes familias de dispositivos. Para facilitar esto, nos llegan novedades en controles XAML además de algunos nuevos, pero además nos llegan gran cantidad de novedades en el sistema de enlace a datos, rendimiento, herramientas, nueva API de perspectiva 3D, además de algunas novedades de peso más. En esta sesión vamos a realizar un repaso sobre todas las novedades en XAML recibidas.
Xamarin.Forms es un framework que nos añade una capa de abstracción permitiendo desarrollar la interfaz de nuestras aplicaciones móviles multiplataforma una única vez, compartiendo el código de la UI. Veremos como crear aplicaciones con Xamarin.Forms además de centrarnos en cómo acceder a características propias de cada plataforma mediante la creación de servicios o Custom Renders.
El documento presenta una introducción a Xamarin.Forms, un framework que permite desarrollar aplicaciones móviles multiplataforma compartiendo código C# entre iOS, Android y Windows. Xamarin.Forms incluye más de 40 controles y layouts preconstruidos, data binding bidireccional, navegación y animaciones. Permite escribir la interfaz de usuario una sola vez y ejecutarla en múltiples plataformas de forma nativa.
Este documento presenta las novedades y mejoras recientes en Xamarin.Forms y las herramientas de Xamarin. Entre las novedades se incluyen mejoras en las herramientas como Hot Reload y Hot Restart para reducir los tiempos de iteración, la introducción de Shell para simplificar la navegación, y nuevos controles como CarouselView y CollectionView. También se discuten las mejoras planificadas como soporte para GIFs, gradientes y nuevos controles.
Este documento describe un taller sobre el desarrollo de aplicaciones móviles con Xamarin.Forms empleando Machine Learning. El taller mostrará cómo crear la estructura de un proyecto Xamarin, diseñar interfaces de usuario, acceder a código específico de plataforma, realizar peticiones HTTP y más. La aplicación que se construirá podrá tomar fotos y analizarlas con Custom Vision para identificar si contienen perros calientes. El taller resolverá dudas y proporcionará recursos adicionales.
Ante la llegada de Windows 10, en XAML recibimos nuevos controles para poder dar la mejor experiencia posible en cada dispositivo. En consecuencia, hay novedades en XAML, mejoras en rendimiento, nuevas herramientas, nuevas APIs de perspectiva 3D, etc. En esta sesión veremos todas las novedades.
¿Tienes una aplicación iOS?, ¿quieres reaprovechar tus conocimientos y código Objective-C para acceder a la plataforma universal Windows?. En esta sesión conoceremos el Bridge de Windows para iOS, convertiremos algunas aplicaciones iOS a UWP e incluso veremos como añadir características específicas de la plataforma Windows como el uso de Live Tiles por ejemplo.
El documento presenta las nuevas características y mejoras de .NET Core, incluyendo el soporte para Windows Desktop, IoT y AI en .NET Core 3, así como nuevas tecnologías como Blazor, ML.NET y Azure DevOps. También destaca el crecimiento continuo de la plataforma .NET y C# con más de un millón de nuevos desarrolladores .NET activos en el último año.
Este documento presenta una agenda para una sesión sobre la plataforma Universal Windows Platform (UWP). La sesión cubrirá temas como las mejoras en los estados visuales en XAML, el nuevo control RelativePanel, las vistas adaptativas y las vistas específicas para familias de dispositivos. El objetivo es mostrar opciones para crear interfaces adaptables en UWP.
Ruby on Rails es un marco de trabajo para el desarrollo de aplicaciones web basado en el lenguaje de programación Ruby. Usa convenciones sobre configuración y patrones de diseño como MVC, ActiveRecord y ORM. Fue desarrollado para ser práctico, resolver problemas reales y dar flexibilidad a través de límites.
Este documento presenta una introducción a WPF. Cubre temas como el desarrollo declarativo usando XAML, animaciones, databinding, estilos, plantillas de control y herramientas. También menciona las ventajas de usar XAML para la interfaz de usuario y proporciona algunos ejemplos prácticos de conceptos como animaciones, estilos y recursos.
El ecosistema Xamarin no cesa en las herramientas de desarrollo. Tenemos a dispositivos una gran variedad de servicios destinados a complementar el mismo, analíticas, testing, análisis de rendimiento, etc. En esta sesión vamos a hacer un repaso por todos los servicios disponibles realizando demos de cada uno de ellos.
Este documento describe cómo configurar la integración continua con TeamCity para aplicaciones móviles multiplataforma desarrolladas con Xamarin. Explica los beneficios de la integración continua, como encontrar errores más rápido, consistencia en los builds y poder desplegar en cualquier momento. Luego, detalla los pasos para configurar TeamCity para compilar, empaquetar, restaurar paquetes y ejecutar pruebas unitarias de las aplicaciones Xamarin de forma automática.
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas
Presentación en Jornadas de Actualización Tecnológica del IUTEP en Acarigua, Edo. Portuguesa. (Tanto Ruby como Rails tienen ahora versiones más nuevas)
7 Gemas de Ruby on Rails que podrían salvarte el diaFrancisco Aranda
Devise es un módulo de autenticación para Rails que incluye módulos para autenticación, confirmación de cuentas, recuperación de contraseñas y más. CanCanCan proporciona autorizaciones de control de acceso basadas en roles de usuario. Acts_As_Api facilita la representación de modelos como JSON. Kaminari implementa paginación a nivel de base de datos. Factory_Girl simplifica la creación de objetos de prueba.
Xamarin Dev Days Málaga 2017 - Apps conectadas con AzureJavier Suárez Ruiz
Este documento presenta las diferentes opciones de plataforma móvil de Azure, incluidas las API móviles de Azure, la autenticación con proveedores de identidad de terceros, las notificaciones push con Azure Notification Hubs y la sincronización de datos offline. Se proporcionan ejemplos de código para crear una API móvil de Azure y usarla para obtener y modificar datos, así como para configurar la sincronización de datos offline.
Comenzaremos viendo las posibilidades del control RelativePanel, nuevo control de layout que permite posicionar a los elementos de forma relativa con respecto al panel y ellos mismos facilitando además la adaptación de los elementos de la interfaz ante cambios de orientación o tamaño de pantalla. Además, daremos un vistazo a los Adaptive Triggers utilizados en XAML para detectar condiciones de entorno como distintos tamaños de pantalla permitiéndonos aplicar distintos estados visuales para adaptar la interfaz a cada dispositivo.
Segunda charla de la Xamarin4Party de Sevilla, en la que hablo de las novedades de Xamarin.Forms 2.0 y 2.1 pre
Las demos de todos los puntos se pueden descargar en:
http://www.github.com/josueyeray/xamarinforms2
Este documento presenta una aplicación de ejemplo en Java Server Faces (JSF) que permite personalizar los colores de un currículum vitae. La aplicación incluye páginas para personalizar los colores, mostrar mensajes de error si los colores seleccionados son iguales, y previsualizar el CV con los colores y datos seleccionados. El documento explica cada archivo JSP que compone la aplicación y muestra fragmentos de código para ilustrar el uso de etiquetas JSF.
La plataforma Universal Windows facilita gran cantidad de tareas a los desarrolladores para cubrir múltiples escenarios entre diferentes familias de dispositivos. Para facilitar esto, nos llegan novedades en controles XAML además de algunos nuevos, pero además nos llegan gran cantidad de novedades en el sistema de enlace a datos, rendimiento, herramientas, nueva API de perspectiva 3D, además de algunas novedades de peso más. En esta sesión vamos a realizar un repaso sobre todas las novedades en XAML recibidas.
Xamarin.Forms es un framework que nos añade una capa de abstracción permitiendo desarrollar la interfaz de nuestras aplicaciones móviles multiplataforma una única vez, compartiendo el código de la UI. Veremos como crear aplicaciones con Xamarin.Forms además de centrarnos en cómo acceder a características propias de cada plataforma mediante la creación de servicios o Custom Renders.
El documento presenta una introducción a Xamarin.Forms, un framework que permite desarrollar aplicaciones móviles multiplataforma compartiendo código C# entre iOS, Android y Windows. Xamarin.Forms incluye más de 40 controles y layouts preconstruidos, data binding bidireccional, navegación y animaciones. Permite escribir la interfaz de usuario una sola vez y ejecutarla en múltiples plataformas de forma nativa.
Este documento presenta las novedades y mejoras recientes en Xamarin.Forms y las herramientas de Xamarin. Entre las novedades se incluyen mejoras en las herramientas como Hot Reload y Hot Restart para reducir los tiempos de iteración, la introducción de Shell para simplificar la navegación, y nuevos controles como CarouselView y CollectionView. También se discuten las mejoras planificadas como soporte para GIFs, gradientes y nuevos controles.
Este documento describe un taller sobre el desarrollo de aplicaciones móviles con Xamarin.Forms empleando Machine Learning. El taller mostrará cómo crear la estructura de un proyecto Xamarin, diseñar interfaces de usuario, acceder a código específico de plataforma, realizar peticiones HTTP y más. La aplicación que se construirá podrá tomar fotos y analizarlas con Custom Vision para identificar si contienen perros calientes. El taller resolverá dudas y proporcionará recursos adicionales.
Ante la llegada de Windows 10, en XAML recibimos nuevos controles para poder dar la mejor experiencia posible en cada dispositivo. En consecuencia, hay novedades en XAML, mejoras en rendimiento, nuevas herramientas, nuevas APIs de perspectiva 3D, etc. En esta sesión veremos todas las novedades.
¿Tienes una aplicación iOS?, ¿quieres reaprovechar tus conocimientos y código Objective-C para acceder a la plataforma universal Windows?. En esta sesión conoceremos el Bridge de Windows para iOS, convertiremos algunas aplicaciones iOS a UWP e incluso veremos como añadir características específicas de la plataforma Windows como el uso de Live Tiles por ejemplo.
El documento presenta las nuevas características y mejoras de .NET Core, incluyendo el soporte para Windows Desktop, IoT y AI en .NET Core 3, así como nuevas tecnologías como Blazor, ML.NET y Azure DevOps. También destaca el crecimiento continuo de la plataforma .NET y C# con más de un millón de nuevos desarrolladores .NET activos en el último año.
Este documento presenta una agenda para una sesión sobre la plataforma Universal Windows Platform (UWP). La sesión cubrirá temas como las mejoras en los estados visuales en XAML, el nuevo control RelativePanel, las vistas adaptativas y las vistas específicas para familias de dispositivos. El objetivo es mostrar opciones para crear interfaces adaptables en UWP.
Ruby on Rails es un marco de trabajo para el desarrollo de aplicaciones web basado en el lenguaje de programación Ruby. Usa convenciones sobre configuración y patrones de diseño como MVC, ActiveRecord y ORM. Fue desarrollado para ser práctico, resolver problemas reales y dar flexibilidad a través de límites.
Este documento presenta una introducción a WPF. Cubre temas como el desarrollo declarativo usando XAML, animaciones, databinding, estilos, plantillas de control y herramientas. También menciona las ventajas de usar XAML para la interfaz de usuario y proporciona algunos ejemplos prácticos de conceptos como animaciones, estilos y recursos.
El ecosistema Xamarin no cesa en las herramientas de desarrollo. Tenemos a dispositivos una gran variedad de servicios destinados a complementar el mismo, analíticas, testing, análisis de rendimiento, etc. En esta sesión vamos a hacer un repaso por todos los servicios disponibles realizando demos de cada uno de ellos.
Este documento describe cómo configurar la integración continua con TeamCity para aplicaciones móviles multiplataforma desarrolladas con Xamarin. Explica los beneficios de la integración continua, como encontrar errores más rápido, consistencia en los builds y poder desplegar en cualquier momento. Luego, detalla los pasos para configurar TeamCity para compilar, empaquetar, restaurar paquetes y ejecutar pruebas unitarias de las aplicaciones Xamarin de forma automática.
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas
Presentación en Jornadas de Actualización Tecnológica del IUTEP en Acarigua, Edo. Portuguesa. (Tanto Ruby como Rails tienen ahora versiones más nuevas)
7 Gemas de Ruby on Rails que podrían salvarte el diaFrancisco Aranda
Devise es un módulo de autenticación para Rails que incluye módulos para autenticación, confirmación de cuentas, recuperación de contraseñas y más. CanCanCan proporciona autorizaciones de control de acceso basadas en roles de usuario. Acts_As_Api facilita la representación de modelos como JSON. Kaminari implementa paginación a nivel de base de datos. Factory_Girl simplifica la creación de objetos de prueba.
Xamarin Dev Days Málaga 2017 - Apps conectadas con AzureJavier Suárez Ruiz
Este documento presenta las diferentes opciones de plataforma móvil de Azure, incluidas las API móviles de Azure, la autenticación con proveedores de identidad de terceros, las notificaciones push con Azure Notification Hubs y la sincronización de datos offline. Se proporcionan ejemplos de código para crear una API móvil de Azure y usarla para obtener y modificar datos, así como para configurar la sincronización de datos offline.
Comenzaremos viendo las posibilidades del control RelativePanel, nuevo control de layout que permite posicionar a los elementos de forma relativa con respecto al panel y ellos mismos facilitando además la adaptación de los elementos de la interfaz ante cambios de orientación o tamaño de pantalla. Además, daremos un vistazo a los Adaptive Triggers utilizados en XAML para detectar condiciones de entorno como distintos tamaños de pantalla permitiéndonos aplicar distintos estados visuales para adaptar la interfaz a cada dispositivo.
Segunda charla de la Xamarin4Party de Sevilla, en la que hablo de las novedades de Xamarin.Forms 2.0 y 2.1 pre
Las demos de todos los puntos se pueden descargar en:
http://www.github.com/josueyeray/xamarinforms2
Este documento presenta una aplicación de ejemplo en Java Server Faces (JSF) que permite personalizar los colores de un currículum vitae. La aplicación incluye páginas para personalizar los colores, mostrar mensajes de error si los colores seleccionados son iguales, y previsualizar el CV con los colores y datos seleccionados. El documento explica cada archivo JSP que compone la aplicación y muestra fragmentos de código para ilustrar el uso de etiquetas JSF.
Este documento presenta una introducción a los patrones de diseño de software. Explica que un patrón describe un problema común de diseño y una solución probada a ese problema en un contexto particular. Luego, describe algunos patrones comunes como el patrón MVC y cómo separa la lógica de la interfaz de usuario del modelo de datos subyacente. Finalmente, discute el patrón de fábrica y cómo permite crear objetos de manera flexible sin acoplar las clases concretas.
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
Buenas prácticas en el desarrollo para Android.
Consejos sobre:
- Organización del código
- Trucos en programación Java
- Reutilización
- Rendimiento
- Compartición de datos
- Usabilidad
- Etc.
Este documento explica el framework Struts mediante un ejemplo práctico de creación de una aplicación web para gestionar calzados. Se describe la estructura de Struts basada en el patrón MVC, y se explican los pasos para crear el modelo, el controlador y la vista en la aplicación de ejemplo.
Este documento describe Backbone.js, una librería JavaScript que permite organizar mejor el código del lado cliente. Proporciona modelos, colecciones y vistas con capacidad de manejo de eventos. Se usa comúnmente para aplicaciones de una sola página donde el lado cliente interactúa con un servidor RESTful.
El documento describe la experiencia de Mixplay.tv al desarrollar aplicaciones utilizando Silverlight. Mixplay.tv experimentó problemas al desarrollar para múltiples plataformas con tecnologías tradicionales. Silverlight permitió el desarrollo multiplataforma sin recodificar y mejoró la colaboración entre desarrollo y diseño. Aunque Silverlight tuvo algunas limitaciones iniciales, ayudó a Mixplay.tv a crear interfaces más dinámicas y flexibles.
Aplicacion mvc entity_framework_login_membershipJose B Flores P
Este documento describe el desarrollo de una aplicación web utilizando Entity Framework, Visual Studio 2012 y SQL Server 2012. El objetivo general es desarrollar una aplicación que permita el acceso a datos de forma orientada a objetos. Se explica el contexto y la problemática, y se establecen objetivos específicos relacionados con el aprendizaje de Entity Framework y el desarrollo de la aplicación. Finalmente, se espera que el proyecto permita adquirir experiencia en el uso de frameworks para el desarrollo de aplicaciones orientadas a datos.
Este documento describe los Lightning Components de Salesforce. Los Lightning Components son componentes reutilizables que permiten construir aplicaciones frontend con tecnología JavaScript. Ofrecen una alternativa a Visualforce para crear experiencias de usuario más interactivas e inmersivas aprovechando el modelo de componentes. Los Lightning Components pueden insertarse en aplicaciones de Salesforce como en sitios externos y son altamente configurables. Sin embargo, su desarrollo es más complejo que Visualforce debido al uso de eventos asíncronos y al framework Aura subyacente.
Este documento describe la arquitectura Java Web utilizando el patrón MVC. Explica que el controlador administra la navegación, el modelo almacena los datos y la vista presenta los datos. Luego introduce los principales frameworks para implementar MVC como Struts, describiendo cómo funciona y cómo se configura para crear formularios, acciones y validaciones. Finalmente, explica las librerías de etiquetas de Struts para generar la interfaz de usuario.
Este documento discute los diferentes componentes que afectan el rendimiento de las aplicaciones web que usan JavaScript, incluyendo el motor JavaScript, objetos del modelo, XMLHttpRequest, el navegador, DOM, CSS y renderizado. Explica que mejorar solo una capa como JavaScript no es suficiente, ya que todo el stack del navegador afecta el rendimiento. Recomienda equilibrar el rendimiento en cada capa para lograr aplicaciones eficientes.
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
Seminario sobre Spring Roo y monitorización con Spring Insight organizado por Paradigma Tecnologico y Javahispano, impartido en Madrid el 14 de octubre de 2010 por Federico Caro
ZanPHP es un framework PHP de código abierto que facilita el desarrollo rápido de aplicaciones web siguiendo el patrón MVC. Usa patrones de diseño y mejores prácticas para producir código escalable y de alta calidad. Proporciona características como integración con bases de datos, controladores, vistas y modelos, así como documentación y proyectos de ejemplo.
Planificando las bases de una aplicación windows phoneSorey García
El documento describe la importancia de planificar las "Vistas Modelo" como base para una aplicación Windows Phone. Las Vistas Modelo son clases que enlazan las vistas (páginas XAML) a los datos y permiten separar la lógica de negocio de la interfaz. El autor ilustra cómo planificar las Vistas Modelo para una aplicación de productividad usando diagramas de flujo y clases de modelo. Luego muestra cómo implementar las Vistas Modelo planificadas usando Blend para generar datos de muestra y enlazar las páginas a los
Este documento presenta un tutorial sobre el desarrollo de aplicaciones con JavaFX. Explica cómo crear una aplicación de contactos usando JavaFX, incluyendo el diseño de la interfaz gráfica con Scene Builder, la estructuración de la aplicación siguiendo el patrón MVC, el uso de ObservableList y TableView para la visualización y actualización de datos, y la persistencia de datos mediante XML.
Este documento describe una aplicación de ejemplo Java EE 6 para la gestión de una tienda web. La aplicación consta de tres capas: una capa de lógica de negocio implementada con EJB y JPA, una capa de presentación web basada en JSF, y una aplicación Swing. El objetivo es mostrar el uso de estas tecnologías Java EE para crear una aplicación con capacidad de acceso web y de escritorio.
Msdn Webcast InyeccióN De Dependencias Con Spring FrameworkGabriel Oliva
Este documento presenta una introducción al patrón de inyección de dependencias (IoC) y cómo se implementa a través del framework Spring. Explica los problemas de dependencias entre clases, alternativas como interfaces y fábricas de objetos, e introduce Spring como un contenedor IoC que resuelve dependencias mediante configuración. Spring ofrece características adicionales como AOP y soporte para datos, web y escritorio.
Similar a DotNet 2019: Optimizando Apps con Xamarin.Forms (20)
Cape Town MS Developer User Group: Xamarin Community ToolkitJavier Suárez Ruiz
In this session we are going to talk about the Xamarin Community Toolkit, a collection of Animations, Behaviors, Converters Effects and Controls for mobile development with Xamarin.Forms.
We will see what it gives us, how to use it and also how you can contribute!
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsJavier Suárez Ruiz
Xamarin.Forms es un framework de código abierto de Microsoft para crear aplicaciones multiplataforma para iOS, Android y Windows desde una base de código común en C#. .NET MAUI es la evolución de Xamarin.Forms que permitirá crear interfaces de usuario nativas para múltiples dispositivos desde un solo proyecto de código con acceso a las API nativas de cada plataforma.
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Javier Suárez Ruiz
In this session we are going to know the Xamarin Community Toolkit (XCT) along with all the options it offers like controls, converters, behaviors, etc.
Crear interfaces de usuario atractivas con Xamarin.FormsJavier Suárez Ruiz
This document discusses creating attractive interfaces with Xamarin.Forms. It covers current mobile app design trends, using resources and styles to customize themes, animations and transitions, using Lottie for simple animations, gradients as a current design trend, using the SkiaSharp graphics engine, new Xamarin.Forms controls, and third party libraries with common design templates. The document includes code examples and links to resources and the speaker's GitHub projects. It concludes with asking if there are any questions.
This document contains a summary of presentations for a Xamarin UI event in July. It lists over 30 presenters who will be sharing topics like creating banking apps, Uber clones, custom controls, animations, data entry, maps, and more using Xamarin Forms. The event will take place from July 1-31.
Este documento presenta las nuevas características de Xamarin.Forms 3.0, incluyendo FlexLayout, VisualStateManager, estilos con CSS, soporte para RTL y nuevas plataformas como Linux y WPF. FlexLayout permite diseños flexibles mediante propiedades como dirección, envuelto y alineación. VisualStateManager facilita la gestión de estados visuales. Los estilos CSS permiten aplicar estilos a elementos mediante selectores y propiedades. También se mejora el soporte para idiomas de derecha a izquierda y se añaden Linux y WPF como
El documento habla sobre el desarrollo de aplicaciones móviles con Xamarin. Explica que Xamarin permite crear aplicaciones nativas multiplataforma para iOS, Android y Windows. También menciona algunas herramientas de Xamarin como Xamarin Profiler e Inspector que ayudan a depurar y probar aplicaciones, y App Center que facilita el despliegue y gestión de las apps.
El documento introduce Xamarin, una plataforma que permite a los desarrolladores crear aplicaciones móviles nativas compartiendo código entre iOS, Android y Windows. Xamarin usa C# y Visual Studio para escribir una vez el código compartido y ejecutarlo en múltiples plataformas, dando acceso a las APIs nativas de cada sistema. El documento también describe las ventajas de Xamarin como la experiencia de desarrollo integrada en Visual Studio y la capacidad de compartir grandes porciones de código entre plataformas.
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con XamarinJavier Suárez Ruiz
El documento describe un evento técnico organizado por Plain Concepts el 20 de diciembre de 2017. La agenda incluye charlas sobre CSS Grid Layout, desarrollo multiplataforma con Xamarin, Docker, Azure Relay y .NET Core, Swagger Code Generation y entrega continua con Visual Studio Team Services. Javier Suárez dará una presentación sobre desarrollo de aplicaciones multiplataforma con Xamarin.
El documento resume las novedades presentadas en Xamarin Connect(); 2017, incluyendo Visual Studio Live Share para desarrollo colaborativo en tiempo real, mejoras en Xamarin.Forms para aprovechar características nativas en iOS y Android, y la introducción de Xamarin Live Player y Visual Studio App Center para agilizar el desarrollo móvil multiplataforma.
El documento describe un taller sobre el desarrollo de aplicaciones multiplataforma con Xamarin. En el taller, los participantes crearán una aplicación de películas para Android, iOS, UWP y otras plataformas usando C# y compartiendo código entre plataformas. El taller cubrirá conceptos como la estructura de proyectos, diseño de interfaces, navegación y el acceso a APIs nativas de cada plataforma.
El documento presenta información sobre las HoloLens de Microsoft, incluyendo sus características principales como cámaras, procesador, memoria, almacenamiento, duración de batería y más. También describe cómo desarrollar aplicaciones para HoloLens usando el SDK de Microsoft con Visual Studio y Unity, así como las diferentes formas de interactuar con hologramas como mirada, gestos, voz y sonido espacial.
El documento describe Embeddinator-4000, una herramienta que convierte código .NET en bibliotecas nativas para que pueda reutilizarse en proyectos de Android, iOS, macOS y otros frameworks. Embeddinator-4000 exporta código .NET a varias plataformas como frameworks de iOS y Jars de Android, permitiendo que el código se consuma desde otros lenguajes como Objective-C, Swift y Java. La herramienta ayuda a reutilizar grandes bases de código existentes sin tener que empezar proyectos nativos desde cero.
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Javier Suárez Ruiz
Este documento presenta una sesión sobre integración continua y entrega continua para aplicaciones móviles. Explica qué es la integración continua y sus beneficios como encontrar errores más rápido y minimizar problemas al fusionar código. Luego muestra demostraciones de cómo usar Visual Studio Team Services y HockeyApp/Mobile Center para habilitar la integración continua, pruebas automáticas, distribución de versiones beta y monitoreo continuo de aplicaciones móviles. El objetivo final es automatizar el proceso de desarrollo para entregar actual
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
Uso de las Tics en la vida cotidiana.pptx231485414
Las Tecnologías de la Información y las Comunicaciones (TIC), son el conjunto de recursos, herramientas, equipos, programas informáticos, aplicaciones, redes y medios.
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
4. Oops!. Problema con
el rendimiento
•Normalmente, el rendimiento es un punto
que se suele tener en cuenta “al final” y “si es
necesario”.
•El objetivo de esta sesión sera que te quedes
con consejos, ideas y factores a tener en
cuenta para que la preocupación por el
rendimiento se traslade durante todo el
desarrollo.
6. Suma y sigue. No hay
“magia”.
• Vamos a ver una sucesión de ideas y
consejos relacionadas con Xamarin.Forms.
de los puntos vistos os daran pequeñas
mejoras en el rendimiento. No hay “líneas
mágicas”, hablamos de un “suma y sigue”.
• Cambio a cambio si se consiguen
resultados.
7. Xamarin Classic
Base de código C# compartido
100% de acceso a APIs nativas
Alto rendimiento
iOS C# UI Windows C# UIAndroid C# UI
Código compartido C#
Interfaces dependientes de código
nativo
8. Xamarin.Forms
Más código compartido. UI XAML o C#
Data Binding & MVVM
Abstracciones (Navegación, etc.)
iOS C# UI Windows C# UIAndroid C# UI
Código compartido C#
Rendimiento < Xamarin.Classic
UI Compartida
9. A tener en cuenta...
•Hay que tener en cuenta la capa de abstracción.
•No se puede desarrollar absolutamente todo sin pensar en que
hay “debajo”.
•Hay que utilizar los controles adecuados en cada caso.
•El árbol visual debe ser parte de nuestra responsabilidad.
•A veces es necesario código nativo en forma de Custom
Renderers o Effects.
Las claves.
10. Step
VS 2017
15.8
VS 2019 16.0 Diferencia
Primera Build 01:04.20 00:50.13 -21.95%
Incremental Build
(Cambios en
XAML)
00:10.62 00:07.47 -29.66%
Despliegue
(Cambios en
XAML)
00:09.03 00:04.44 -50.83%
SmartHotel Reference App
12. Compilación de XAML
Si defines la interfaz de usuario de la aplicación Xamarin.Forms con XAML tienes la
opción de utilizar XamlCompilationOptions.
Cuenta con dos valores:
• Compile.
• Acelera la carga de elementos visuales.
• Reduce el tamaño del paquete.
• La compilación (AOT) es más larga.
• Skip.
• Valor por defecto para mantener retocompatibilidad.
• No hay validación en tiempo de ejecución de XAML.
XAMLC
13. Compilación de XAML
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
Detalles:
• TipCalc en Android.
• JIT.
• Tiempo calculado
con
InitializeComponent()
.
• Tiempo medio de 5
medidas.
• Oneplus 6.
15. Bindings y MVVM
• Binding es una características incluida en Xamarin.Forms.
• Permite crear asociaciones entre una Fuente y un destino.
• Permite aplicar MVVM desacoplando Modelo y Vista
interponiendo una capa intermedia, la ViewModel.
Propiedad pública
BindableProperty
Source
TargetBinding
OneWay
TwoWay
OneWayToSource
16. Bindings, el funcionamiento
public abstract class BindableObject : INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
//...
}
“No enlaces cosas que se pueden establecer de forma estática”
Jason Smith - Evolve 2016
17. Bindings
Detalles:
• El sistema de Bindings es
rápido, pero tiene un
costo en el rendimiento.
• Los errores de enlace a
datos tienen impacto en el
rendimiento.
• En ocasiones, evitar el
enlace a datos ayuda a
mejorar el rendimiento
(Ejemplo: listado con celda
personalizada).
19. Fast Renderers
Hablamos de cambios realizados en Xamarin.Forms con el
objetivo de reducir a mínimos el número de operaciones y
cálculos a realizar para renderizar el control y gestionar su
tamaño y posición.
¿Qué aporta?
20. Pre Fast Renderers (Label)
OnLayout();
OnLayout();
ViewRenderer
MeasureAndLayout();
ViewRenderer
OnLayout();
ViewElementRenderer
UpdateLayout();
LabelRenderer
22. Fast Renderers
Detalles:
• Tiempo de incialización
y creación de la vista.
• Android.
• JIT.
• Tiempo tomado de 5
medidas.
• One Plus 6.
• Se usan por defecto en
Xamarin.Forms 4.0!
24. Images
Detalles:
• La opción más sencilla y directa
de mejorar la gestión de
imágenes es usando
FFImageLoading.
• GlideX tiene mejor rendimiento
que FFImageLoading en Android.
• Gracias a IImageSourceHandler
se puede personalizar que usar
para la gestión de ImageSource
en cada plataforma. Por ejemplo,
usar FFImageLoading en iOS y
GlideX en Android.
• Se esta trabajando activamente
en mejorar la gestión de
imágenes en Xamarin.Forms.
Reducción en un 15% de media
en el uso de memoria en la v4.0
en comparación a v3.6.
25. IImageSourceHandler
Desde Xamarin.Forms 2.3.5, tenemos la interfaz IImageSourceHandler. Permite implementar ImageSource en
la plataforma.
Las claves.
public class ImageSourceHandler : IImageSourceHandler
{
public Task<UIImage> LoadImageAsync(
ImageSource imageSource,
CancellationToken cancellationToken = new CancellationToken(),
float scale = 1)
{
return LoadUsingFFImageLoading(
imageSource, cancellationToken);
}
...
} ExportImageSourceHandler
28. Layout
• Un Layout representa un nodo en el árbol
visual.
• Un Layout cuenta con propiedades y eventos
que permiten definer su comportamiento.
• Es el responsible de gestionar la ubicación y el
tamaño de nodos secundarios.
• Ejemplos: StackLayout, Grid, etc.
29. El ciclo de vida de un Layout
La creación de un Layout en Xamarin.Forms pasa por dos
fases diferentes:
• Ciclo de invalidación: En el árbol visual, el ciclo de
invalidación es el proceso de notificación
recursivamente hacia el nodo padre.
• Ciclo de Layout: Tras invalidar, se procede a la
reorganización de elementos marcados como
“invalidados”.
32. Grid
El Grid organiza los elementos hijos en filas y columnas.
Permite crear estructuras complejas sin necesidad de grandes
anidaciones.
El tamaño de cada fila y columna es importante, y afecta al
rendimiento. Hay que cuidar la utilización de celdas y filas.
33. Consejos Grid
El Grid organiza los elementos hijos en filas y columnas.
La invalidación de una de las View hijas provoca la
invalidación en cadena del árbol visual de la rejilla.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button
Text="Button 1"/>
<Label
Grid.Row="1"
Text="Button 2"/>
</Grid>
34. Consejos Grid
El Grid puede organizar los elementos con tamaño
proporcional a la View. El Grid ignora cualquier notificación
de invalidación de sus hijos.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button
Text="Button 1"/>
<Button
Grid.Row="1"
Text="Button 2"/>
</Grid>
35. Consejos Grid
El Grid puede organizar los elementos con tamaño fijo. El
Grid ignora cualquier notificación de invalidación de sus
hijos.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="150"/>
<RowDefinition Height="150"/>
</Grid.RowDefinitions>
<Button
Text="Button 1"/>
<Button
Grid.Row="1"
Text="Button 2"/>
</Grid>
36. StackLayout
El StackLayout organiza los elementos hijos una sóla
fila o columna.
Ideal para la creación sencilla y de forma rápida de
forma secuencial.
CUIDADO!, puede llevar a la anidación excesiva.
37. Consejos StackLayout
El StackLayout organiza los elementos hijos una sóla
fila o columna.
La invalidación de un View hijo provoca la
invalidación en cadena en el árbol visual hasta el
StackLayout.
<StackLayout>
<Button
Text="Button 1"/>
<Button
Text="Button 2"/>
</StackLayout>
38. RelativeLayout
El RelativeLayout organiza los elementos hijos en
base a relaciones entre los diferentes elementos y
el contenedor.
Ideal cuando el tamaño o el posicionamiento dbe
ser dinámico y adaptarse a diferentes condiciones.
Rendimiento bajo. Alto consume de CPU.
39. Layouts
Detalles:
• No uses un StackLayout para un
único hijo.
• No uses un Grid cuando el
StackLayout hace el trabajo.
• No uses varios StackLayout
cuando un Grid cumple.
• RelativeLayout tiene el peor
rendimiento. Alto consumo de
CPU.
• FlexLayout, no es el vencedor en
cuanto a rendimiento aunque
dada su flexibilidad y
rendimiento es una opción
altamente recomendada.
• En caso de posicionar pudiendo
usar posiciones absolutas,
AbsoluteLayout no tiene rival.
41. ListView
• Salto cualitativo con Xamarin.Forms 2.0 donde se
añadieron opciones como la reutilización de celdas.
• La reutilización de celdas viene definida por la propiedad
ListViewCachingStrategy que cuenta con dos posibles
valores:
• RecycleElement
• RetainElement
<ListView CachingStrategy="RecycleElement"/>
42. Consejos ListView
• En determinadas ocasiones se requiere contenido
adicional al ListView en la parte superior y/o inferior. Es
recomendable utilizar las propiedades HeaderTemplate y
FooterTemplate para ello.
• Envolver al control ListView en un ScrollView rompe la
virtualización!
44. Consejos ListView
• Se recomiendo utilizer IList<T> como ItemsSource en
lugar de IEnumerable.
• Si se utiliza RecycleElemement, se aumenta el
rendimiento eliminando el Binding de la celda y utilizano
OnBindingContextChanged.
• No uses un TableView si puedes utilizar un ListView.
45. • Soporta layouts Horizontal/Vertical
• Soporte a multiples columnas/filas de elementos
• Es como una versión moderna de ListView
• No es necesario usar Cells
• Se usan Views y DataTemplates
• Mejora considerable en el rendimiento.
https://github.com/xamarin/Xamarin.Forms/issues/3172
46. CollectionView
Detalles:
• Media de 5 medidas.
• La gestión de celdas es mucho
más eficiente en
CollectionView, es la clave.
• El consumo de memoria es
inferior al usar CollectionView
con respecto a ListView.
• Los tiempos necesarios para
renderizado de celdas, es más
óptimo en CollectionView.
• Tras medir también el tiempo
de arranque de la App, es
también ligeramente mejor en
CollectionView.
48. Actualmente, muchas aplicaciones se ven a nivel estético exactamente
igual en todas las plataformas. En Xamarin.Forms, para conseguir este
resultado, en ocasiones hacen falta Custom Renders o efectos (código
específico de plataforma) para conseguirlo.
Por ese motivo, llega una nueva opción para conseguir la misma interfaz
de usuario en diferentes plataformas sin necesidad de requerir tanto a
Custom Renders o efectos.
50. ¿Cómo usar Visual?
FormsMaterial.Init();
<ContentPage Visual=“Material”>
…
</ContentPage>
Los valores posibles de la propiedad Visual:
• Default : indica que la vista debe presentarse mediante el representador predeterminado.
• MatchParent : indica que la vista debe utilizar el representador mismo como su elemento primario directo.
• Material : indica que la vista debe representar con un procesador de material.
51. Visual
Detalles:
• Media de 5 medidas.
• Todos los renderers de Visual
son Fast Renderers.
• Los renderers de Visual tienen
un rendimiento general mejor
que los de por defecto (salvo el
Entry).
• La gestión de recursos
(eventos, dependencias, etc.)
es mejor en los renderers en
Visual, impacta en el consumo
de memoria. Mejor con Visual.
55. Facilita la creación de la estructura de la aplicación
• Un lugar común donde describir la estructura de la
aplicación.
• Servicio de navegación con deep linking.
• Gestión de búsquedas integradas.
56. • Mejor rendimiento
• Facilitar crear Layouts complejos
• Navegación con Flyout y pestañas
• URL routed navigation, deep linking
• Mejoras en la navegación, gestion de
navegar atrás
• Search handler
• Snackbar
• Bottom Sheet
• Floating Action Button
• Left Bar Button
• Screen segues
• Transiciones de páginas
• Nueva API de gestos
• Además de todo lo que ya era posible
con Xamarin.Forms antes
57. Shell
Detalles:
• Datos tomados de 5 medidas
en Android.
• Rendimiento mejor en iOS que
en Android.
• Shell tiene un consumo de
memoria medio más bajo.
• El tiempo de arranque es
ligeramente mejor en iOS y a
su ves ligeramente peor en
Android que sin usar Shell.
59. Startup
• La opción compilación AOT habilita la compilación Ahead Of Time de los
ensamblados. Cuando esta opción está habilitada, la sobrecarga de inicio
Just-In-Time (JIT) se minimiza al precompilar ensamblados antes del tiempo
de ejecución. El código nativo resultante se incluye en el paquete (APK)
junto con los ensamblados sin compilar. Esto da como resultado un tiempo
de inicio de la aplicación más reducido, pero a costa de tamaños APK más
grandes.
• A costa de tiempos de compilación más lentos, el compilador de
optimización de LLVM debe crear un código compilado más pequeño y
rápido.
60. Startup (tiempo de arranque)
Detalles:
• AOT reduce casi a la mitad el
tiempo de arranque!.
• AOT incrementa el tamaño del
paquete!.
• La optimización LLVM tiene un
ligero impacto en el tiempo de
arranque, aunque nos ayuda a
tener un paquete más ligero.
63. Peticiones Http
Detalles:
• La reutilización de HttpClient nos ayuda
a reducir drásticamente los tiempos.
Esto se debe a que segregará las cosas
de las que cada servidor puede
depender, como las cookies o
DefaultRequestHeaders.
• Un error común al trabajar con
HttpClient es descargar el contenido del
Json en una cadena. El problema es que
esto crea una cadena de todo su
documento JSON innecesariamente.
Impacta en el tiempo y la memoria a
utilizar. Usar Streams directamente.
• Usar GZIP siempre que sea posible.
• Usar Xamarin's Native
HttpMessageHandlers.
65. IoC
Detalles:
• Valor tomado de la media de 5
medidas.
• Aunque con limitaciones,
DependencyService de
Xamarin.Forms tiene un
rendimiento muy bueno.
• Entre las librerías más
utilizadas, TinyIoC o DryIoC
entre otras destaca como una
de las más rápidas.
66. Custom Renderers
protected override void OnElementChanged (ElementChangedEventArgs<NativeListView> e)
{
base.OnElementChanged (e);
if (Control == null) {
// Instantiate the native control
}
if (e.OldElement != null) {
// Unsubscribe from event handlers and cleanup any resources
}
if (e.NewElement != null) {
// Configure the control and subscribe to event handlers
}
}
67. Compresión de Layout
• Layout Compression permite indicar elementos con anidamiento
innecesario y optar a no crear layout. Con esta opción habilitada los layouts
se optimizarán en tiempo de compilación permitiendo obtener un mejor
rendimiento en tiempo de ejecución.
• Layout Compression elimina layouts encargados de gestionar aspectos
como gestos, etc. Si tu Layout utiliza las propiedades Rotation, Scale,
TranslationX o TranslationY (entre otras), no es un buen candidato.
<Grid
CompressedLayout.IsHeadless="true">
</Grid>
69. Recuerda!
• Muchos de los puntos vistos os daran
pequeñas mejoras en el rendimiento. No hay
“líneas mágicas”, hablamos de un “suma y
sigue”.
• Cambio a cambio si se consiguen resultados.
72. One more thing
Concurso.
Al final del evento habrá un concurso. ¡No te lo
pierdas!.
Entre todos los tweets del evento relacionados
con la charla, sortearemos una licencia de:
• LiveXAML www.livexaml.com
• Aurora Controls www.auroracontrols.app
• MFractor www.mfractor.com
73. Thanks and …
See you soon!
Thanks also to the sponsors.
Without whom this would not have been posible.