Skip to content

DotNet2019Challenge - intentando mejorar el rendimiento#3

Open
mhernanrobledo wants to merge 15 commits intojsuarezruiz:masterfrom
mhernanrobledo:master
Open

DotNet2019Challenge - intentando mejorar el rendimiento#3
mhernanrobledo wants to merge 15 commits intojsuarezruiz:masterfrom
mhernanrobledo:master

Conversation

@mhernanrobledo
Copy link

Hola quería participar en el reto para seguir practicando con Xamarin. Solamente he utilizado el emulador de Android y en el dispositivo físico Android.

Los cambios que he introducido son:

  • Actualicé los paquetes Nuget de:

Upgradde Android from 27.0.2.1 to 28.0.0.1
Upgradde Xamarin.Forms 2.5.1.527436 to latest preview 4.0.0.346134-pre9
Upgradde Xamarin.FFImageLoading.Forms 2.4.4.859 a latest stable 2.4.5.922

  • Actualicé la versión de Android target a la 9.0

  • Añadí los flags: global::Xamarin.Forms.Forms.SetFlags("Shell_Experimental", "Visual_Experimental", "CollectionView_Experimental", "FastRenderers_Experimental");

  • Añadí el Inversion of Control Container de Autofac en el patrón MVVM añadiendo sus correspondientes ViewModelLocator, ViewModelBase, NavigationServices

  • Cambie los controles Image por ffimageloading:CachedImage usando cache

  • En MoviesView reemplace controls:HorizontalList por CollectionViews ya que usa automáticamente la virtualización.

  • Añadi glidex.forms al Android Project.

  • Use el MoviesService que hizo MookieFumi para utilizar streams. (gracias por la ayuda)

  • Cambie las vistas para utilizar Compiled Bindings usando [XamlCompilation(XamlCompilationOptions.Compile)]

  • Añadí un a pantalla de inicio SplashScreen para distraer la atención mientras se carga la app.

Screenshot_1556665606
Screenshot_1556665636

@mhernanrobledo mhernanrobledo changed the title DotNet2019Challenge - intenando mejorar el rendimiento DotNet2019Challenge - intentando mejorar el rendimiento Apr 30, 2019
@jsuarezruiz
Copy link
Owner

Muchas gracias por participar!.
Recuerdo que vamos a analizar solo cambios que impacten en el rendimiento.
Vamos a ello:

  • Si, usabamos una versión muy antigua de Forms. Hemos recibido varias mejoras relacionadas con el rendimiento (Fast Renderers, etc).
  • La gestión de imágenes es mejorable. FFImageloading y GlideX mejoran este aspecto.
  • Compilación de XAML. Es sorprendente lo que puede mejorar en algunos casos. Otra buena mejora en rendimiento.
  • Con CollectionView (que también podías usarlo con la versión 3.6.x) se pueden hacer listados horizontales y la mejora en rendimiento con lo que tenemos (que también se podía simplificar con BindableLayouts) es considerable.
  • Etc

Enhorabuena has añadido más de 3 mejoras que impactan en el rendimiento. Ya hay una PR previa que también cumple los requisitos. En caso de no querer la entrada, por orden pasaría a ti. En cualquier caso, espero que te haya resultado divertido y que nos veamos en la DotNet 2019.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants