Posted in

Nedir Bu Flutter: Cross-Platform Uygulama Geliştirmeye Başlarken

Merhabalar, Flutter’ı araştırma yoluna girdiğinize göre yazılım alanında az çok bilgi sahibi olduğunuzu varsayıyorum. Bu yazıda Dart dilinden ve Flutter framework’den bahsediyor olacağız. Şimdi gelin bu iki konuyu yakından inceleyelim.

Dart Nedir?

Dart, Google‘ın 2011 yılında web tabanlı uygulamalar geliştirmek üzere piyasaya sürdüğü bir yazılım dilidir.

Flutter Nedir?

Flutter, Dart yazılım dili üzerinde çalışan Google‘ın geliştirdiği bir framework’dür. Flutter ilk olarak 2015 yılı Dart Geliştirici Zirvesinde tanıtıldı. İlk kararlı sürümü ise 2017 yılında geliştiricilere dağıtılmaya başlandı.

Nedir Bu “Framework”?

Dart bir yazılım dili ve Flutter da bu dili kullanarak çalışan bir framework’dür. Framework, yazılım geliştirmeyi kolaylaştıran, önceden yazılmış kodlar ve kurallar içeren bir yapı veya çatıdır. Geliştiricilere belirli bir düzen ve standart sunarak kod yazım sürecini hızlandırır ve hataları azaltır. Örneğin,

  • Flutter, Dart dili ile mobil uygulama geliştirme için bir framework’tür,
  • .NET Core, C# dili ile web uygulamaları için bir framework’tür.

Bir de kütüphaneler var ki framework’ler ile kütüphaneleri (library) birbirine karıştırmamalıyız.

Kütüphane (Library) ile Framework Arasındaki Fark Nedir?

Bir kütüphane, belirli bir işlevi yerine getirmek için bir araya getirilmiş kodlardan oluşur. Framework gibi bütün bir iskeleti oluşturmaz. Bunun yerine kod içerisinde ihtiyaç duyulduğu yerde önceden yazılmış kodların kullanılmasına imkan sağlar. Bu sayede tekrar tekrar kod yazmak zorunda kalınmaz ve kod paylaşımı daha kolay bir hâle gelir. Framework’ler içerisinde de kütüphaneler kullanılabilir.


Ben Bir Mobil Uygulama Geliştirmek İstiyorum, Ne Yapmalıyım?

Mobil uygulama geliştirmek için öncelikle hedef işletim sistemlerimizi belirlemek gerek. Bu işletim sistemlerine göre Native (bir işletim sistemine özgü) veya Cross-Platform (birden fazla işletim sistemini destekleyen) olarak uygulamamızı geliştirebiliriz.

İşletim sisteminden başlayalım: Android, IOS veya HarmonyOS(Huawei).

Android cihazlara uygulama geliştirebilmek için Kotlin veya Java dillerinden birisi seçilerek Android Studio üzerinden bir mobil uygulama geliştirilebilir. Bu yöntem ile geliştirilen uygulamalar aynı zamanda HarmonyOS cihazlar için de yayınlanabilmektedir.

IOS işletim sistemi ile çalışan iPhone ve iPad cihazları için bir mobil uygulama geliştirmek istiyorsanız ise Swift veya Ojective-C dillerinden birisini seçerek XCode üzerinden bir mobil uygulama geliştirebilirsiniz. Geliştirdiğiniz bu uygulamayı daha sonra App Store üzerinden yayınlayabilirsiniz.

Android ve HarmonyOS için Kotlin dilini, IOS için de Swift dilini seçtiğimizi varsayalım. Bu durumda 2 farklı platformda uygulamamızı geliştirmemiz gerekecek. Uygulama geliştirme süreci daha fazla zaman isteyen ve daha maliyetli bir sürece dönüşecektir. Bu aşamada karşımıza “Cross-Platform” seçeneği çıkıyor.

Cross-Platform Uygulama Nedir?

Cross-Platform frameworkler, birden fazla işletim sistemi için sadece bir defa kod yazarak projeler üretmemize imkan tanırlar. Temel mantığı, framework’ün desteklediği dilde yazdığımız kodları her platform için o platforma özgü kodlara dönüştürmektir. Tabiki her framework’ün çalışma prensibi birbirinden farklıdır. Ve tam da bu yüzden framework’ler arasında özellikle çalışma performansı, uygulama boyutu gibi konularda farklılıklar olmaktadır.

Cross-Platform frameworklere örnek olarak; Flutter (Dart), React Native (JavaScript), Xamarin (C#) ve nispeten daha yeni olan Kotlin MultiPlatform frameworkleri verilebilir.

Cross-Platform frameworkler arasında seçim yaparken bir çok farklı kritere dikkat etmemiz gerekiyor. Bu kriterlerin başında çalışma performansı ve geliştirme kolaylığı gelmesi gerektiği kanaatindeyim. Tabiki bu ihtiyaçlarınıza, beklentinize ve taleplerinize göre değişiklik gösterebilir. Cross-Platform frameworkler arasında benim tercihim Flutter’dan yana. Nitekim Flutter özellikle çalıma performansı ile diğer rakiplerinden en az bir adım önde…


Kaynakça

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir