Xamarin ile Mobil Uygulama Geliştirmeye Kısa Bir Bakış
Xamarin, C# programlama dili ile cross platform native uygulama geliştirmeyi sağlayan platformun adıdır. Genelde Xamarin ile Android ve iOS uygulaması geliştirildiği yönünde bir algı var, ancak bu platformda Android ve iOS uygulamalarına ek olarak Universal Windows Platfrom(UWP), Mac, Apple Watch, Android Wear uygulamaları da geliştirilebilir
Xamarin’in en önemli ve onu diğer hybrid kütüphanelerden ayıran özelliği native çıktı üretmesidir. Xamarin ile geliştirdiğiniz tüm uygulamalar, ilgili platformun native arayüz kontrollerini ve API’larını kullanır. Xamarin, geliştiricilere ortak IDE, ortak dil, ortak kod ve kolay bakım imkanları sağlamaktadır. Windows kullanıcıları Xamarin için ücretsiz olan Visual Studio Developer Edition kullanabilirler. OS X kullanıcıları ise ücretsiz olarak Xamarin Stuido IDE’sini indirip kullanabilirler.
Xamarin, geliştiricilere uygulama geliştirmek için Traditional ve Forms olmak üzere iki yol sunmaktadır.
Traditional Xamarin dediğimiz şey, mobil platformların geleneksel uygulama yöntemlerinin C# ile kullanılmasıdır. Bu durumda, geliştiricinin Android ve iOS geliştirme hakkında bilgili olması, AppDelegate, UIView ya da Activity, Intent gibi platformlara özel kavramlara hakim olması gerekmektedir. Tranditional Xamarin için Xamarin.İOS ve Xamarin.Android olmak üzere iki parçadan oluşur diyebiliriz.
Xamarin.iOS
C# ile iOS uygulamaları geliştirmek için kullanılan altyapıdır. Yazdığınız C# kodları Ahead-of-Time(AOT) adı verilen derleyici ile ARM assembly koduna çevrilir, bu sayede native uygulama geliştirmiş olursunuz. Tüm iOS API’ları C# ile kullanılabilir hale getirilmiştir. Aynı zamanda daha önce yazdığınız Objective-C kodlarını da Xamarin.iOS projesinde kullanmanız mümkündür.
Xamarin iOS uygulamalarınızı test edebilmeniz için Mac bilgisayarınızın bulunması gerekiyor, çünkü şu an için Windows’ta çalışan iOS similatörü bulunmuyor. Build 2016’da konferansında Windows için bir iOS simülatörünün geliştirildiği duyurulmuştu.
Xamarin.Android
C# ile Android uygulamaları geliştirmek için kullanılan altyapıdır. Yazdığınız C# kodları Just-inTime (JiT) compiler ile native Android kodlarına dönüştürülür. Xamarin Android’de de tüm Android API’ları C# ile kullanılabilir. Daha önce yazdığınız Java kodlarını da kullanılabilirsiniz.
Xamarin Forms
Xamarin Forms ise iOS, Android ve UWP uygulamaları arasında paylaşılan arayüzler tasarlamanızı sağlayan kütüphanedir. Xamarin Forms’un size sağladığı component’ler ile hazırladığınız arayüzler, iOS, Android ve UWP tarafında native arayüz kontrollerine dönüştürülür. Aynı zamanda component’lerin ekrandaki yerleşimi de platforma göre otomatik ayarlanır. Aşağıdaki görselde aynı uygulamanın farklı cihazlardaki görünümü var. Dikkat ederseniz, menü ikonu iOS ve Android’de sol üst köşedeyken, Windows Phone’da ekranın altında yer almaktadır. Bu tarz yerleşimleri Xamarin’in kendisi yapmaktadır.
Görsel: https://www.pinterest.com/pin/537054324293029264/
Xamarin Forms ile ortak kod kullanımını arttırmış, geliştirme ve bakım sürelerini azaltmış olursunuz. Xamarin Forms uygulamalarında platforma özel kod yazmanız mümkün, hatta bazen bu durum gerekli olabiliyor.
Xamarin.iOS ve Xamarin.Android, platforma özel arayüz ihtiyacı ve API gereksinimlerinin daha çok olduğu durumlarda kullanılabilir.
Xamarin Forms ise veri odaklı uygulamalarında, düşük miktarda platforma özel kod gerektiren, uygulamada kod paylaşımının platforma özel arayüz geliştirmekten daha önemli olduğu durumlarda kullanılabilir. Aşağıdaki linklerde Xamarin Forms ile yapılmış birkaç uygulamayı görebilirsiniz.
http://forums.xamarin.com/discussion/56713/list-of-published-xamarin-forms-apps
http://forums.xamarin.com/discussion/15779
15000’den fazla şirketin Xamarin’i kullandığı söylenmektedir. Türkiye’de de son zamanlarda Xamarin’in bilinirliği ve Xamarin Developer iş ilanlarının sayısı artmaktadır. Xamarin C# kullanan ve web/masaüstü yazılımcıları için alternatif bir iş alanı oluşturmaktadır.
Xamarin’in hikayesi ve geleceğiyle ilgili Muhammet Tahiroğlu’nun yazısını okuyabilirsiniz: http://devnot.com/2016/xamarin-microsoftu-nereye-tasiyacak/ . Ayrıca Xamarin Türkiye grubunu da takip edebilirsiniz. http://www.xamarintr.com/
3 Comments
Tolga AYKURT
9 Kasım 2016 at 12:08“Xamarin Forms ile ortak kod kullanımını arttırmış, geliştirme ve bakım sürelerini azaltmış olursunuz.” tanımı bir fark yaratmıyor gibi geldi bana. Bu durum servis kullanımı ile de gerçekleştirilebilir. Bu konuyu biraz daha açmanız mümkün mü? Xamarin hiç kullanmadığım için öğrenmek amacı ile soruyorum. Xamarin anlatılan kaynaklarda hep benzer tanım geçiyor.
Paylaşım için çok teşekkürler.
Yakup Buğra Bozkurt
19 Kasım 2016 at 01:10Xamarin Forms ile arayüz tarafında da ortak kod kullanımı sağlanıyor. Android için ayrı, ios için ayrı arayüzler oluşturup, bu arayüzlere veri yüklemek için ayrı ayrı kodlar yazmıyorsunuz. Yani daha basit olarak, tek bir uygulama yapıyorsunuz, xamarin bu uygulamayı ios ve android’ çeviriyor diyebiliriz.
Traditional Xamarin’de ise ios ve android için farklı arayüz tasarımı, farklı binding kodları yazmanız gerekiyor. Her bir platform için ayrı ayrı uygulama yapıyormuş gibi düşünebilirsiniz. Servis katmanı ortak ama arayüz katmanları ayrı.
Gökhan İkisivri
28 Nisan 2017 at 13:34Güzel bilgiler. Teşekkürler Yakup Buğra Bozkurt.