Msp Kick Off-2: Cross Platform Mobile App Development

Kadir Alan
4 min readApr 15, 2017

--

Bu yazı serisinde yeni nesil teknolojilerden bahsederek vizyonumuzu genişletmeyi hedeflediğimizi ilk yazı da belirtmiştim. Msp Kick Off yazı serisinin 2. sinde Cross Platform mobil uygulama geliştirmenin ne olduğunu , buna neden ihtiyaç duyulduğu üzerinde konuşalım.

Cross Platform mobil uygulama geliştirmeye değinmeden önce bazı kavramları bilmemiz gerektiğini düşünüyorum. Zira bu alanda ilerlemek ilgilenmek istiyorsanız bu kavramları çok duyacaksınız demektir. Nedir bu kavramlar?

Native Uygulama Geliştirme

Uygulama , çalıştığı sistemin donanımsal ve yazılımsal olanaklarına doğrudan erişebiliyor , cihazın kendi platformu tarafından desteklenen dil ile yazılmış ve derlenmiş uygulamalara Native Uygulama denir. Daha somut bir şekilde ifade etmek için örneklemek gerekirse ; Java ile geliştirilen bir Android uygulaması Native’dir. Objective C veya Swift ile geliştirilen IOS uygulamaları da yine Native’dir.

Hybird Uygulama Geliştirme

Uygulama, Native olarak geliştirilmiş ve onun üzerine başka dillerle modüler olarak eklenerek çalışabilen uygulamalardır. Cihaz üzerinde çalışan bridge (köprü) uygulama üzerine bundle olarak eklenen geliştirme dosyalarının çalışması, UI ve Native API lara erişirken bir NativeModule ile erişip sonucu üst katmanda göstermektedir. Örnek olarak Cordova, UI katmanını İşletim Sisteminin Browser ı üzerinden derler. Sensor ve Native API lara erişimler ise işletim sistemine uygun yazılmış native moduleler ile çalışmaktadır. Ara katmanın olması ve Native API lara erişilmesi Hybird adını getirmiştir.

Cross Platform Mobil Uygulama Geliştirme

Geliştirdiğiniz uygulamanın birden fazla platform üzerinde çalışmasını sağlamak adına geliştirilmiş dil/araç olarak geçmektedir. Geliştirdiğiniz uygulama Native veya Hybird olabilir. Bu seçtiğiniz araç ve dilin sağladığı avantajlar ve dezavantajlar ile beraberinde gelir. Örneğin Xamarin, Native Cross Platform aracı iken, Cordova Hybird Cross Platform aracıdır. React Native, her ne kadar adında Native geçse de Bir bridge kullandığı için Hybird Cross Platform olarak geçmektedir. Bunun dışında Game Developer ların popüler araçlarından bir tanesi ise Unity dir. Unity, çıktı olarak en geniş Cross Platform Tool udur.

Kafadaki Sorular

Android mi ? IOS mu?

Klasik bir soru olan ; “Android mi yazmalıyım IOS mu yazmalıyım?” Sorusuna yanıt bulalım…
Aslında bakılırsa her iki platformda eşit ve farklı sebeplerden ötürü harika. Sonuç itibariyle her iki platformda da yüz milyonlarca kullanıcı var ve uygulamalarda akıcı deneyimler bekliyor. Bunun üzerinde çok fazla durmayacağım fakat detaylıca üzerinde düşünmek isterseniz bu yazıyı okumanızı tavsiye ederim.

Cross Platform mu ? Single Platform mu? Native mi? Hybird mi?

Genellikle bu soru sıkça sorulan sorulardan bir tanesidir. Bu sorunun cevabı aslında sizin ihtiyacınız olan gereklilikler ve geliştirici takımına göre şekillenmelidir. Öncelikle Native mi Hybird mi? Sorusuna cevap vermek gerekiyor. Geliştirdiğiniz uygulamanın içerisinde animasyonlar ne derecede kullanılıyor? Bunun performansı ne kadar önemli? UI mı daha çok önemli yoksa Native API ların stabil çalışması mı önemli? Bu tarz sorulara vereceğiniz cevaplar ile Hybird veya Native i seçebilirsiniz. Bir sonraki level ise Cross Platform veya Single Platform seçimi olacaktır. Eğer hybird i seçtiyseniz zaten Cross Platform olarak seçmiş oluyorsunuz. Çünkü Hybird olan çözümler aynı zamanda Cross Platform u da desteklemektedir. Gelelim Native seçen arkadaşların Cross Platform mu yoksa Single Platform mu olsun sorusuna. Burada geliştirici ekibiniz ne derece geniş veya kuruyorsanız ne kadar maddi imkanınız var bunları belirlemeniz gerekir. Her platform için ayrı developer bulmanız ya da muhteşem bir mobile developer ın her iki platformu da bilmesi gerektiğini düşünürsek her iki platforma da ciddi bir şekilde efor sarf etmesinin ne kadar süreceğini hesaplamanız gerekir. Bu konuda büyük şirketlerin neden Cross Platform araçlarını seçtiklerinin hikayelerini okuyabilirsiniz. Örneğin Soundcloud, Airbnb vs

Native Cross Platform Mobile Development-Xamarin

Xamarin, yaptığı çalışmalar ile C# ile Native Mobile App Development a odaklanmış durumdadır. İlk çıkışı olarak Single Platform C# App Development idi. Hybird Cross Platform araçlarında eğer native de özel bir işlem yapmanız gerektiğinde Native Module geliştirmeniz gerekir. Bu da Android için Java Native Module, iOS için Swift/Objective-C Native Module geliştirilmesi gerekir. Xamarin ise bunu ne kadar derine insen de yine C# ile bunları geliştirmeni sağlamak için bir çalışma ile başladı ve başarılı bir çalışma oldu. Ardından Xamarin.Forms ile artık bunu Cross Platform olarak geliştirmesini sağlamak için çıkarılmış bir Framework olarak düşünebilirsiniz. Xamarin.Forms ile geliştirilen projelerde aslında native projeler mevcut. Bunun üzerine ortak bir proje eklenip 3 platformda ortak olarak çalışmaktadır. Burada Xamarin.Forms ile UI Componentleri ve Native Service leri içerisinde bulundurmaktadır.

Msp Kick-Off yazı serisinin ilkini okumadıysanız : AI-Machine Learning — Cognitive Services

Bu yazıya verdiği büyük destekten dolayı Barış Ceviz’e çok teşekkür ederim.

--

--

Kadir Alan
Kadir Alan

No responses yet