1 Mart 2017 Çarşamba

Mobil Uygulama Geliştirmeye Başlangıç

Öncelikle Merhaba

Bu yazı benim bu konuda yazdığım ilk makaledir. Yazılım sektöründe az da olsa tecrübe ettiğim şeyleri işinize yaraması ümidiyle sizlerle paylaşıyorum. Umarım herkes için yararlı bir yazı olacaktır.

Mobil Uygulama Geliştirmek İçin Bazı Alternatifler

Diyelim ki bir mobil uygulama geliştirmek istiyorsunuz. İlk olarak sormanız çok muhtemel olan sorulardan başlayalım.

1 – Uygulama tüm mobil platformlarla mı çalışacak yoksa tek bir platforma özel mi olacak?
2 – Uygulamanın hızlı çalışması sizin için önemli mi?
3 – Uygulamanın boyutu sizin için önemli mi?
4 – Kullanacağınız programlama dili sizin için önemli mi?
5 – Uygulamayı bitirmek için ne kadar süreniz var ?

Şimdi yukarıdaki sorulara hep birlikte cevap arayalım. Öncelikle mobil uygulama geliştirirken önümüzde bir çok seçenek vardır. Mobil uygulama geliştirme teknikleri için 2 prensip olduğunu söyleyebiliriz. Uygulamanız ya Native yada Hibrit olacaktır. İkisininde birbirine karşı üstün ve zayıf yönleri bulunmaktadır.

Native ve Hibrit

Native direkt olarak platform için oluşturulmuş yapıları kullanarak ortaya çıkardığınız uygulamadır. Hibrit ise platform bağımsız olarak tıpkı bir web projesi gibi yazdığımız uygulamadır. Şimdi avantaj ve dezavantajlarına bakalım.

Native Uygulama Avantajları

  • Native uygulama doğrudan işletim sisteminin kaynaklarına erişebilir ve kullanabilir.
  • Native uygulama stabildir. Dışarıdan gelen veri paketlerini Hibrit uygulamalara göre daha hızlı alır.
  • Native uygulama daha performanslı ve güvenilirdir.
  • Native uygulama görsel olarak daha geniş bir yelpaze sunar.
  • Native uygulama cihazın kendi bildirim sistemini kullanmanızı sağlar.

Hibrit Uygulama Avantajları

  • Web programlar gibi mobil uygulama yapabilirsiniz. Dolayısıyla web standartlarına sahiptir.
  • Geliştirme hızı yüksektir. Herhangi bir emülatör kullanmadan web tarayıcısı üzerinde geliştirme yaptığınız için işler hızlı yürür.
  • Zaman ve para maliyeti çok düşüktür.
  • Bir kez yazmanız yeterli olacak ve bu kod tüm platformlarda çalışacaktır.

MOBİL PROGRAMLAMA TEKNİKLERİ

HİBRİT

Hibrit uygulama tüm platformlarda çalışacak uygulamalardır. Bu tür uygulamaları geliştirmek için bir çok framework vardır. Bu frameworkler uygulama geliştirmeyi kolaylaştırdığı gibi kullanıcı deneyimine yakın sonuçlar vermeyi amaçlar. Hibrit uygulamaların geneli HTML CSS ve Javascript kullanılarak yazılır. Fazlaca sayıda olan frameworkleri hız görsellik gibi faktörler birbirlerinden ayıracaktır. Bu konuda çalışmayı düşünüyorsanız ben sizlere Ionic framework’ü öneririm. Ionic görsel açıdan diğer frameworklere göre daha fazla seçenek sunarken AngularJS temelli olduğundan MVVM yapısını uygulamanıza rahat şekilde giydirmenize olanak sağlar. HTML içerisinde döngüler yaratabilir AngularJS in dinamik ve güncel tarafından faydalanabilirsiniz.

NATİVE

Native bir uygulama geliştirecekseniz önünüze iki farklı yol çıkacaktır.
  1. Uygulamayı her platform için ayrı yazıp platform için yazılmış ide nin sunduğu güzelliklerden faydalanmak.
  2. Uygulamayı tüm platformlara tek seferde yazıp ortak native çıktı almak.
Bunlardan birinci yolu seçerseniz android için Android Studio kurup java kod yazmanız , ios için XCode kurup objective-c veya swift dillerinde kod yazmanız gerekecektir. Ayrıca ios uygulama yazabilmek için MacBook bilgisayara sahip olmalısınız. İlk yazımda bahsettiğim para maliyeti bu sebepten ötürüdür. Ama tüm bu işlemlerin dışında bu idelerden uygulama geliştirmek için kaynak seçeneği oldukça fazladır. Ayrıca platform ideleri oldukları için çoğu şey zaten yazılmış ve kullanıma açıktır.
Bunlardan ikinci yolu seçerseniz sadece C# bilerek Visual Studio veya Xamarin Studio ile cross platform uygulama geliştirebilirsiniz. Xamarin C# ile tek kod mantığına sahip olduğundan genelde büyük şirketlerce büyük işlerde tercih edilmektedir. Xamarin native çıktı verir tek seferde android ios ve windows phone uygulamaları çıktıları alabilirsiniz.  2004 yılında linux ta C# yazmayı sağlayan mono altyapısı geliştirilmiş 2011 yılında da Xamarin mono altyapısının üzerine inşa edilmiştir. Buradan anlamanız gerek şey Xamarin geliştirirken hiç olmadık hatalarla karşılaşabilme ihtimalinizin olduğudur. Fazla kararlı bir geliştirme sürecine sahip değildir. Ayrıca yaptığınız projeyi ios ta incelemek isterseniz yine bir macbook id ye sahip olmanız gerekmektedir. Tasarım yönünden çoğu component bulunmamaktadır. Fakat siz yazmak isterseniz bunu sağlayacak altyapısı mevcuttur. C# dilinin güçlü ve esnek yapısını tamamıyla kullanabilirsiniz. Ayrıca Xamarin’de XAML dili de kullanılabilir. Ben yinede Xaml dan olabildiğince uzak durmanızı öneririm. C# ile tam dinamik işlemler yapabilirken XAML ile sadece izin verilen ölçüde işlem yapabilirsiniz.