Xamarin Dependency Services

Xamarinde cross platform çalışırken bazen farklı platformlarda farklı davranışlar sergilenmesini isteyebiliriz. Bunun için Xamarin bize dependency services ile çözüm sunuyor. Kullanımının oldukça basit olduğunu söylemek gerek. Bunun için bir örnek yaptım ben. Tabi bu örnekleri Yiğit Özaksüt’ün Xamarin Eğitimleri derslerini izleyerek sizde yapabilirsiniz. Xamarin derslerini izlemek için Microsoft Açık Akademi , youtube veya Xamarin Türkiye sitelerine girip izleyebilirsiniz.

Anlatacağım bu örnekte cross-platform çalıştığımız için aynı kodun her yerde çalışmasının yanı sıra platformlara özel olarak da çalışmasını sağlamak için bir takım kodlar eklemeniz gerekiyor. Bunun için öncelikle projemizin portable katmanında bir “helper” adında interface oluşturmamız gerekiyor. Bu interface ile platformlara özel olarak hangi işlemi yaptırmak istiyorsak bu interfacede tanımlamak zorundayız. Şimdi yapacağımız örnekte eğer projemiz android bir ortamda çalışıyorsa ekrana “0” değerini iOS’da çalışıyorsa “1” değerinin dönmesini sağlayan bir uygulama yapacağız.

İlk olarak portable katmanında bize yardımcı olması için bir interface açmamız gerekiyor. Sonrasında bu interfacei diğer platformlarda kalıtım olarak alıp implementa edeceğiz. Bize yardımcı olması için açacağız bu interface dosyasına “Helper” adını verdim ben. Sonrasında hangi işlemi yapmak istiyorsak buna göre bir fonksiyon tanımlamamız gerekiyor. Ben platformlardan birer sayı alacağım için buna göre bir fonksiyon oluşturuyorum.

Bu interfacei oluşturduktan sonra diğer platformlardan numara almak için her platformda yine “Helper” adında birer sınıf oluşturuyorum. Bu sınıfları portable kısmında oluşturduğumuz interfaceden kalıtım alacak şekilde implemente ediyoruz. Android kısmında 0 değerini döndüreceğim.

Tabi bu sınıfın bir dependency services olduğunu belirtmek için sayfanın başında bir takım kod yazmamız gerekiyor. Bu işlemi mutlaka yapmamız gerekiyor. Android platformunda 0 dçndürdükten sonra aynı şeyleri iOS platformu için de yapmamız gerekiyor. Başına tabi ki bir dependency services olduğunu belirtmemiz gerekiyor.

Bu işlemleri hallettikten sonra portable kısmında bulunan App sınıfında Main Page içinde bir takım kod yazmamız gerekiyor. Numara alacağımız için number adında bir değişken tanımlıyoruz. Bu değişkeni bir dependency services sınıfından alacağımız için get metodunu kullanıp bu metodun tipini hangi tür interfaceden aldıysak onu veriyoruz. Sonrasında ise interfacede bulunan fonksiyonlardan istediğimizi seçiyoruz.

Sonrasında ise klasik Xamarin işlemleri. Eğer projeye github üzerinden erişmek istiyorsanız buradan erişebilirsiniz. Sorularınız olursa mail atabilirsiniz veya yorum yazabilirsiniz.

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.