Xamarin Nedir?

Native ve CrossPlatform kavramlarını doğru bir yaklaşımla bir araya getiren ve C# diliyle mobile uygulama geliştirmenizi sağlayan tek platformdur.  Xamarin Hybrit değildir.

%100 native uygulama cross uygulama üretir. Xamarin yazdığınız kodu ortalama %75 oranında ortaklaştırır platform bazında.  Fakat 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 sayesinde.  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 akıllı telefonlar ile sınırlı değil development ortamı, akıllı saatler , akıllı televizyonlar gibi bir çok platforma uygulama yazabildiğiniz bir ortam. Şuan da 15.000 firma 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ğı.

 

16-10/09/xamarin4.jpg

 

 Hangisini neye göre nasıl kullanacağım?

Hangi proje tipinin kullanılacağı ihtiyaçlarınıza göre belirleyeceğiniz bir durum. Tüm proje tiplerini bilmemiz önemli 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 ayrı.

Proje Tiplerinin Tanımı:

 

Traditional Xamarin

C# ile Android uygulama geliştirmek, C# ile IOS uygulama geliştirmek olarak kısaca tanımlayabiliriz.

Aslında 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 olanak 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.

 

16-10/09/building-ios-applications-with-xamarin.jpg

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 sağlayan bir proje tipidir.

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

tek bir kod üzerinden çalışıyor.   Ve yazdığıznız kodları diğer katmanlar ile paylaşıyoruz. Fakat 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 kadar 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ı ayrı yazmamak hem de bunu tekilleştirerek vizyon süreçlerinin yönetilmesini kolaylaştırmak için kullanılıyor bu iki katman.

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 Senaryo; Projeye Web Service implement etmek istiyorsunuz referans’lara gelip endpoint url gösterip web referance  ekleyebiliyorsunuz.

16-10/09/xamarin-3.PNG

 

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 katman şöyle bir kolaylık sağlıyor; Platform specific durumları shared katman ile çok kolay handle edebiliyoruz. Tabi ki portable da bunu handle edebiliyor. Fakat portable katmanından daha rahat 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ılmış 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 veya iOS sürümü çıktığında Xamarin güncellemesi ne zaman gerçekleşir?

 

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

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

Aynı gün hatta aynı saatler içerisinde update almanız mümkün. Xamarin bu konuda çok iyi ve hızlı. 

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

 

#video_13200#