Xamarin ile CrossPlatform Development

Any Developer, Any Device, Any App

Xamarin ile CrossPlatform Development

Xamarin Nedir?

Native ve CrossPlatform kavramlarını dürüst bir yaklaşımla bir araya getiren ve C# diliyle mobile başvuru geliştirmenizi karşılayan tek platformdur.  Xamarin Hybrit değildir.

%100 native başvuru formu cross başvuru formu üretir. Xamarin yazdığınız kodu ortalama %75 oranında ortaklaştırır platform bazında.  Lakin Xamarin.Forms kullanımında ise bu oran %90 üzerine çıkıyor.

Swift, Java, Objective C ile yapabildiğimiz her şeyi C# ile yapabiliyoruz Xamarin baştan sona.  Visual Studio kullanıcıları yeni bir IDE öğrenmek zorunda kalmıyor ve CrossPlatform Native Development ’I da Visual Studio üzerinde devam ettirebiliyor. Xamarin ’in tanımını yaparken değinmemiz gereken bir diğer konu CrossPlatform derken yalnızda mobile uygulama zeki telefonlar ile sınırlı yok development ortamı, zeki saatler , akıllı televizyonlar gibi bir çok platforma tatbik yazabildiğiniz bir etraf. Şuan da 15.000 işyeri da  kullanılmakta.

Xamarin + Xamarin.Forms Proje Tipleri

Bu noktada platform farklılıklarına değinmemiz gerekecek. Xamarin ’in iki farklı tür de proje tipi bulunmakta.

Microsoft Xamarin Platformu ile yeni karşılaşan kullanıcıların soracağı ilk soru Traditional Xamarin Approach mı ya da Xamarin.Forms arabirimi mi olacağı.

 

 

 Hangisini neye kadar nasıl kullanacağım?

Hangi proje tipinin kullanılacağı ihtiyaçlarınıza kadar belirleyeceğiniz bir durum. Bütün proje tiplerini bilmemiz manâlı karar aşamasında. İhtiyaçlarınız hangi proje tipine karşılık geliyorsa o ptoje tipini seçmelisiniz. Bu iki proje tipi birbirinden çok öbür.

Proje Tiplerinin Tanımı:

 

Traditional Xamarin

C# ile Android başvuru formu , C# ile IOS uygulama olarak özetle tanımlayabiliriz.

Gerçekten Traditional Xamarin yapısı ’nın avantajları  ios ve android platformlarının doğal geliştirme ortamlarını kullanarak (App.Delegate,UI gibi), Android tarafında MainActivity class ’I gibi platformlara özel kavramları C# ile kullanmamıza ihtimal sağlıyor. Traditional Xamarin projesi açtığımızda bu proje Android projesiyse android ortamını C# ile kullanmamıza olanak sağlıyor. IOS projesi açtığımızda ios ortamını C# ile kullanabiliyoruz.

 

Xamarin.Forms Arabirimi

Temel olarak tek bir katmanda kod yaz ve tüm platformlar bu kodlar üzerinden çalışsın mantığı ile CrossPlatform render ederek arayüz nesnelerinin deploy edildiği platforma özgü görünmesini karşılayan bir proje tipidir.

Xamarin platformunda prıje açtığınızda tek katmanda kod yazıyorsunuz, kod yazdığınız tabaka Android, WinPhone, IOS kaç tane katman platform tercih etmek istiyorsanız ekleyebilirsiniz. Bu katmanlar 

tek bir kod üzerinden çalışıyor.   Ve yazdığıznız kodları öteki katmanlar ile paylaşıyoruz. fаkаt bir seçim de Xamarin.Forms tarafında var Xamarin.Forms projesi açmak istediğimde karşıma 2 tane seçenek çıkıyor. Bunlar; Shared mı Portable Class Library mi olacağı. Xamarin tarafında bu dek proje tipi varken hangisini nasıl seçeceğim diyebilirsiniz.

16-10/09/xamarin2.PNG

 

Her iki yaklaşımında odağı aynı işi yapcak olan kod blocklarının, her platform için ortaklaştırarak her platform için ayrı olarak yazmamak keza de bunu tekilleştirerek vizyon süreçlerinin yönetilmesini kolaylaştırmak için kullanılıyor bu iki tabaka.

Birbirleri arasındaki farklılıklar 

 

Portable Class Library ele aldığımızda Portable Class Library projesi açtığınızda projeyenin referanslarına .dll ekleyebiliyorsunuz.

Örnek Süreklilik; Projeye Web Service implement etmek istiyorsunuz referans ’lara gelip endpoint url gösterip web referance  ekleyebiliyorsunuz.

 

Bunu Portable Class Library ’de yapabiliyorken, Shared proje de yapamıyoruz.

Shared proje tipi ise bir referans ağacı olmayan .dll ekleyemeyeceğiniz yapıdadır.

Shared tabaka şöyle bir huzur sağlıyor; Platform specific durumları shared katman ile fazla basit handle edebiliyoruz. Alt оysа portable da bunu handle edebiliyor. Lakin portable katmanından daha sıcacık kontrol edebiliyorsunuz. Ekstra operasyonel bir şeyler yapmaya gerek kalmıyor.

Xamarin Kod Yapısı

Native çıktı üretiyor demiştik. Peki bunu nasıl yapıyor?

Xamarin C# ile yazılı kodları .App uzantılı IOS Arm Binary kodlarına dönüştürmek  için Apple ’ın AOT ( Ahead of Time ) derleyicisini kullanır.

Apk uzantılı Android kodlarına dönüştürmek için ise JIT ( Just in Time ) derleyicisini kullanarak yapıyor.

Desteklediği Sürümler

 

  • Android 4.0 ve üzeri
  • iOS 6.1 ve üzeri
  • Windows Phone 8 ve üzeri

 

Yeni bir Android ya da iOS sürümü çıktığında Xamarin güncellemesi ne süre gerçekleşir?

 

  • Benzer gün destek paketi sürümü çıkıyor.

Yeni bir Andoid ya da iOS sürümü çıktığında update aldığınızda Xamarin tarafınıda update alıyorsunuz.

Benzer gün hаttа aynı saatler içerisinde update almanız muhtemel. Xamarin bu konuda çok iyi ve seri. 

Xamarin’in 2016 yılı düzenlediği Keynote etkinlik içeriğine aşağıdaki video’dan erişebilirsiniz.