MehmetX.com

Xamarin.Forms Performans ve Açılış Hızlandırma Yöntemleri - Xamarin Serisi Bölüm 3

1.10.2017 21:12:22 | Okunma Sayisi : 206 | Yorum Sayisi : 0


Yeni bir Xamarin.Forms projesi açıp, aynı şekilde yeni bir Xamarin.Android projesi açıp, hiç bir kod eklemeden her iki uygulamanın açılış sürelerini kontrol edecek olursanız, Xamarin.Android uygulamasının daha hızlı açıldığını (load) göreceksiniz. Yani; Xamarin.Forms ile geliştirdiğiniz uygulama, Xamarin.IOS ya da Xamarin.Android ile geliştirdiğiniz uygulamaya göre biraz daha yavaş açılmaktadır (yüklenmektedir).
Uygulama açılış hızını artırmak için yapabilecekleriniz arasında şunları sıralayabiliriz.

İlk olarak offline içeriği yükleyin

Uygulama başlangıcında mümkün ise; API call, veritabanı bağlantısı gibi işlemlerden kaçının. Uygulamanızın offline mod özelliği varsa -ki olması avantajdır- ilk olarak bu offline içeriği ilk açılış ekranı olarak yükleyin. Uygulama açıldıktan sonra API call, veritabanı bağlantılarını kullanın.

 

İçeriklerinizi optimize edin (uygun hale getirin)

Uygulamanızda göstereceğiniz resim ve videolar -yüklenme hızı açısından- maliyetli içeriklerdir, haliyle ekranın render edilmesini yavaşlatırlar. İçerikleri işletim sistemine yeniden boyutlandırmak (resize) yerine, bu işi kendiniz yapın.
Android için farlklı density' leri temsil eden klasörler bulunmaktadır.
  • ldpi (low) ~120dpi
  • mdpi (medium) ~160dpi
  • hdpi (high) ~240dpi
  • xhdpi (extra-high) ~320dpi
  • xxhdpi (extra-extra-high) ~480dpi
  • xxxhdpi (extra-extra-extra-high) ~640dpi
120dpi (ldpi) klösörüne koyduğunuz bir resmi, 480dpi (xxhdpi)' lık bir ekranda kullanacak olursanız, Android bu resmi ölçeklendirecek ve bu da yavaşlığa neden olacaktır, hatta kimi zaman uygulamanızın çakılıp kapanmasına...
Bu ölçeklendirmeleri yapabilmeniz için bir çok online ürün bulunmaktadır.  Kısacası, işletim sistemine ölçeklendirme yaptırmak yerine, ölçeklendirmeyi kendiniz yapın.

Kullanılmayan hiç bir şeyi projede tutmayın ve Lazy Load yapın

App.xaml (Resources) dosyası; fontları, stilleri ve diğer resource' ları (kaynakları) saklamak için uygun bir yerdir, ancak bu dosyadakilerin tamamı uygulama açılışında yüklenir. Kullanmadığınız tüm resource' ları (font, stil vb.) buradan silin ve bunlara ihtiyaç duyulduğu zaman yükleyin (Lazy Load yapın).

 

XAML Compilation' ı aktive edin

XAMLC (XAML Compilation)' ı aktive etmeniz, XAML kodunuzun IL (Intermediate Language)' e derlenmesine ve derlenmiş assembly içerisine eklenmesine olanak sağlar. Böylece daha hızlı bir uygulama açılışı ve runtime (çalışma zamanı) performansı elde etmiş olursunuz.
XAML Compilation' ı class seviyesinde ya da uygulama seviyesinde belirtebilirsiniz. Uygulama seviyesinde belirtmek için namespace üzerine aşağıdaki satırı eklemeniz gerekmektedir.
using Xamarin.Forms.Xaml;
...
[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace Uygulama1
{
    //...
}
 

Bu işlemi class seviyesinde yapmak için ise aşağıdaki satırı eklemeniz gerekmektedir.
using Xamarin.Forms.Xaml;
...
[XamlCompilation (XamlCompilationOptions.Compile)]
public class MainPage : ContentPage
{
    //...
}
XAMLC' nin aktive edilmesi, UI' ın daha hızlı render edilmesini sağlayacaktır (dosya boyutu artabilir).

 

Assembly sayısını düşürün

İşinizi kolaylaştıran kimi NuGet paketleri başka kütüphaneleri de beraberinde yüklerler ve projeniz assembly cennetine döner. Mümkün olduğunca az assembly bulundurmaya çalışın.

 

Ahead of Time Compilation (AOT) kullanın

IOS, varsayılan olarak zaten AOT' yi ve LLVM (Low Level Virtual Machine) derleyiciyi kullanmakta. Android tarafında ise AOT henüz deney aşamasında. Deneysel aşamada olmasına rağmen Android için AOT' yi kullanarak açılış süresini hızlandırabilirsiniz. Tabii bu açılış hızı size APK boyutunda artış olarak geri dönecektir. Açılış hızı ile APK boyutu arasında tercih size kalmış.
Android için AOT' yi aktif hale getirmek için;
Android projesine sağ tıklayıp Properties seçin. Gelen pencerede Android Options sekmesinde Code Generation and Runtime kısmında AOT Compilation ve Use LLVM Optimizing compiler seçeneklerini işaretleyin (sürüm farklılıklarından dolayı farklı ifadeler görebilirsiniz kendi ayarlarınızda).
xamarin_forms_aot_compilation_llvm_optimizing_compiler
 

Doğru Layout' u seçin

Birden fazla element barındırabilen bir Layout içerisine tek bir element koymaktansa, o elementi Layout' suz kullanın.
Örnek: Aşağıdaki gibi ekranda yalnızca bir Image gösterecekseniz yani ikinci bir element olmayacaksa bu Image' ı StackLayout içerisine almak yerine, yalnız başına kullanın.
xamarin_forms_layout_performance
Doğrusu;
xamarin_forms_layout_performance2.png

Gereksiz Binding' leri azaltın

Statik olarak kolayca set edilebilen (değer atanabilen) içerikler için binding kullanmayın. Binding' ler maliyetlidirler ve bazı durumlarda avantajlı da değillerdir. Mesela; bir butonun Text özelliğine değer atamak için Button.Text = "Tıkla"; ifadesini kullanmak, buton' un Text özelliğini bir ViewModel içerisindeki Tıkla değeri olan bir string property' ye (özelliğe) bind etmekten çok çok daha doğru bir kullanımdır.

 

0 Yorum




page-top