NET Maui ile Mobil Uygulama Geliştirme
- Fatih Baytar

- 30 Kas 2025
- 3 dakikada okunur

NET Maui ile Mobil Uygulama Geliştirme
Mobil uygulama geliştirme, bir çok kişi için belki de zor işlerden birisi ya da öyle görünüyor olabilir. Ancak artık günümüzde bu gerçekten de kolaylaşmış durumda. Bunu kolaylaştıran, hızlıca bazı uygulamalar ortaya çıkarmak için bir çok yöntem ve/veya araç ortaya atılmış bulunuyor. Bunların başında cross platform dediğimiz teknolojiler yer alıyor.
Cross platform uygulama geliştirme yöntemi ile bir dille birden çok platforma uygulama geliştirebiliyorsunuz. Bunlardan bazıları sadece mobil uygulamayı desteklerken (Sadece Android ve iOS'e) bazıları ise televizyonların işletim sistemi olan TizenOS'a kadar geniş bir seçenek sunabiliyor.
Bunlardan bazılarını çoktan duymuş olabilirsiniz. Örneğin; React Native, Flutter, Xamarin ve bir çoğunu saymak mümkün. Peki nedir bunların ana fikri?
Cross platform mobil uygulama geliştirmenin ana fikri: Bildiğiniz bir yazılım dilinden yola çıkarak çok fazla efor sarfetmeye gerek kalmadan (en azından bildiğiniz şeylerden yola çıktığınız için) en azından android ve iOS gibi platformlara mobil uygulama geliştirmektir. Böylece, örneğin sadece C# dilini bilerek android ve ios cihazlara uygulama geliştirebileceksiniz, ya da javascript ile yola devam edip başka bir dil öğrenmeye devam gerek duymadan (dikkat dil diliyorum) yolunuza devam edebileceksiniz. Burada verdiğim iki örnek için (C# dili ile) Xamarin ile (modern adı .NET MAUI) ve (javascript dili ile) React Native ile mobil uygulamalar geliştirebileceksiniz. Meraklısına; Dart dili ile geliştirme yapmak isteyenler Google'ın Flutter teknolojisine bakabilir.
Biz ise bu yazıda Microsoft'un bir teknolojisi olan C# dili ile kodlama yapabileceğiniz .NET MAUI'den bahsedeceğiz (Uzun uzun okumak istemeyenler için videoyu aşağıda paylaşacağım).
Microsoft'un uzun zamandır bizlere sunduğu bu kolaylık eskiden Xamarin ismi ile geçiyordu. Şimdi ise temelde bir şey değişmese de (bahsedeceğim) farklı bir isim ile .NET MAUI ile yolumuza devam ediyoruz.
.NET MAUI de iki farklı kısım yer alıyor. Görsel kısımları XAML dediğimiz bir işaretleme dili ile (eXtensible Application Markup Language) yapıyoruz. Detaylarını parantez içindeki linke tıklayarak görebilirsiniz. Microsoft bu işaretleme dilini bir çok teknolojisinde kullandı (Silverlight dan WPF'e bir çok teknolojisinde). XML dili ile karıştıranlar olsa da mantığı aynı ancak kuralları Microsoft tarafından belirlenen bu dil öğrenmesi gayet kolay bir işaretleme dilidir.
İkinci kısım ise daha çok işlemsel kısımlardır. Bir web uygulamasındaki backend kısmına benzetebiliriz. C# dilinin bol bol kullanıldığı bölümdür ve genellikle MVVM (Model-View-ViewModel) yöntemi ile veriler buradan ön yüze aktarılır (ileriki aşamalarda detaylarına değineceğiz).

Teknik detaylara girmeden bu teknoloji kimler için uygun bundan da bahsetmek istiyorum. Genellikle bazı uygulama sahibi şirketler, kendi uygulamalarını native olarak (yani her ortamın kendi diline özgü olarak) uygulama geliştirmek isteyebilirler. Bunun pahalı olduğu aşikardır (Hem android developer hem iOS developer çalıştırmak gibi). Bu gibi durumlarda genelde cross platform uygulama geliştirmeyi isteyebilirler (şirketler her zaman kazançlarını düşünürler ve düşünmek de zorundadırlar). Şöyle de düşünebilirsiniz; bir e ticaret hizmeti veren yazılım şirketi, müşterilerine özel hızlıca geliştirebilecekleri ve değiştirebilecekleri bir teknikle müşterilerine mobil uygulama hizmeti sunabilir. Böylece e ticaret ile satış yapan bu firmalar hem android hem de iOS tarafında kendilerine özgü mobil uygulamaya sahip olabilirler. Böylece bir çok platformda müşterilerinize tek bir kod temeli ile mobil uygulama hizmeti verebilirsiniz. Her platform için geliştirici aramayı zor bulan şirketlerin tercihi çoğunlukla cross platformlardır. Android için bir deneyimli yazılımcı, iOS için başka bir deneyimli yazılımcı ellerinde bulundurmak yerine .NET MAUI de deneyimli olan bir ya da daha fazla yazılımcıyı elinde bulundurmak bir şirket için avantaj olabilir. Unutmayın yedekli çalışmak da her zaman iyidir.
Peki hiç mi dezavantajı yok? Tabi ki de var. Bunlardan da bahsetmek isterim. Bazen platformların yeniliklerine yetişmek zor olabilir. Bildiğiniz üzere her yıl iOS ve Android tarafında bir sürü yenilik olmakta ve bunun cross platformlara yansıması biraz zaman alabiliyor. Ya da kullandığınız harici bir paket geçerliliğini yitirebilir bu durumda yenisini bulmak zaman alabilir (Geriyi uyumluluk genellikle mümkün ama can sıkıcı olabilir ayrıca bu bahsettiğim sorun native tarafta da mümkün). Ayrıca yaptığınız işlerin bazı regülasyonları da olabilir (Örneğin bankaların native dilde geliştirmesi gerekliliği - ki böyle birşey var mı bilmiyorum sadece örnek olması açısından söylüyorum - gibi durumlarda bu teknolojileri kullanamayabilirsiniz).
Bu konularda anlatacak bir sürü şey var. Ancak yazmaktan çok bir video ile devam etmek çok daha faydalı olabilir.
Bir sonraki yazıda görüşmek üzere esenlikle kalın.


Yorumlar