Flutter sayesinde farklı platformlar arasında mobil, masaüstü ve web uygulamaları oluşturabilirsiniz. Bu uygulamaları tek kod tabanı üzerinden oluşturmanız mümkün. Bu yazı içerisinde hem Flutter’ı hem de oldukça kolay bir kullanıma sahip olan programlama dili Dart’ı inceleyeceğiz.
İçindekiler [Gizle]
Flutter Nedir?
Geliştiriciler bir süreliğine yerel uygulamalar ile evrensel mobil uygulamalar arasında bir tercih yapmak zorunda kaldılar. Evrensel uygulamaların, akıllı telefonlar üzerinde çoğunlukla kötü bir performans sergileyen HTML ve JavaScript web teknolojilerini kullandığını görüyoruz. Yerel uygulamalar ise, kullanılmasını planladığınız her bir platforma ayrı ayrı kodlandığından dolayı çok daha yüksek performans sergiledi. Bununla beraber yüksek fiyatlandırmaya sahipti ve her bir platform için farklı developer ekibi kurmanızı gerektiriyordu. Bu da bütçe ve kaynak sorununa yol açıyordu.
Google’ın geliştirmiş olduğu açık kaynaklı çerçeve, Flutter, yukarıda sayılan sorunları ve yaklaşımları kökten değiştirmiş oldu. Developerlar’ın Ionic, React Native ve Xamarin gibi çok sayıda platform üzerinde hizmet verebilen mobil uygulamalar geliştirmek için daha fazla seçeneğe sahip olduğunu söyleyebiliriz. Flutter ve programlama dili olan Dart, geliştiriciler için oldukça popüler durumda ve geniş kitleler tarafından tercih ediliyor.
Flutter 3’ün lansmanı ile birlikte, Android web, iOS ve Windows platformlarına destek sunarken, bunların yanına macOS ve Linux masaüstü uygulamalarını da desteklemeye başladı. Kullanıcı arayüzünde yaşanan bug sorunlarını çözmek için çok sayıda iyileştirmeyi de beraberinde getirdi.
Flutter, Google’ın geliştirmiş olduğu ve tek kodlama tabanı ile birlikte çok sayıda platformu desteklemeyi başarmış uygulamalar oluşturmaya yarayan açık kaynaklı bir çerçevedir. Flutter 3, 6 farklı platformu destekleyerek, büyük bir ses getirmiştir. Bunlar;
- Android
- iOS
- Windows
- macOS
- Linux
- web
Flutter 3 ve Çoklu Platform Geliştirme
React üzerinden ilham alınarak oluşturulan Flutter widget’leri, modern bir çerçeveye sahiptir. Flutter 3 üzerinde en çok kullanılan widget’lere ve düzenlere baktığımızda, karşımıza çıkanlar; metin widget’ler, Flexbox satır ve sütun düzenleri, konumlandırılmış widget’ler, kap widget’ler ve yığın mutlak konumlandırma düzenleridir.
İOS odaklı bir tasarım oluşturmak isteyenler Cupertino bileşenlerine sahip olan pakete bakabilirler. Flutter tarafından yapılan tavsiyeye göre; Cupertino’nun bileşenleri sadece iOS için oluşturulan uygulamalarda kullanılmalıdır. Birden fazla platformda desteklenen uygulamalar oluşturmak için ise Materyal Tasarım seti gibi başka widget setleri kullanılmalıdır.
Flutter ve Dart
Dart, farklı platformları için optimize edilmiş bir programlama dilidir ve Flutter, Dart tarafından desteklenmektedir. Dart’ın programlama dili yapısına baktığımızda, Java, Swift ve Kotlin’e benzediğini söyleyebiliriz. Nesne yönelim dillerine aşina olduğunuz takdirde, Dart programlama diline hızlı bir şekilde adapte olabilirsiniz.
Dart programlama dilinde basit bir örnek vermek gerekirse;
// İşlevi tanımla
void printInteger(int aNumber) {
print(‘The number is $aNumber.’); // konsola yazdır
}
// Uygulama burada çalışmaya başlar.
void main() {
var number = 42; // değişken bildir ve başlat
printInteger(number); // işlevi çağır
}
Dart, oldukça güçlü bir şekilde yazılmış olsa da tür açıklamaları isteğe bağlıdır. Java ile benzerlik gösterse de public, private ve protected anahtar kelimelerini barındırmaz.
Dart ile birlikte masaüstü ve mobil uygulamalar için ARM ve x64 makine kodu ile birlikte web için JavaScript derleyebilme avantajına sahiptir. Dart üzerinde hata ayıklama moduna geçtiğiniz takdirde, herhangi bir değişiklik yaptıktan sonra uygulamalar çalışırken yükleme yapmanız mümkündür. Dart üzerinde JIT ve AOT derleyiciler bulunmaktadır. JIT, just in time olarak bilinmekte ve Türkçeye tam zamanında olarak çevrilmektedir. AOT ise ahead-of-time olarak karşımıza çıkar ve Türkçe olarak zamanı gelmeden ya da vaktinden önce olarak çevirebiliriz.
Flutter 3 Özellikleri ve Yükseltmeleri
Flutter 3 ile birlikte tek platformlu bir çerçeve yerine çok platformlu bir çerçeveye kavuşmuş oluyorsunuz. Flutter 3 versiyonu ile birlikte eskiden desteklediği 4 farklı platforma ek olarak macOS ve Linux platformlarını da desteklemeye başladı. Bu sayede, büyük bir geliştirme ortaya konmuş oldu. Eksik olan 2 platformun yanı sıra, kullanıcı deneyimini artıran geliştirmeler ile birlikte çok daha stabil hale gelmiştir.
Flutter ve Firabase %100 entegre hale gelmiştir. Apple Silicon için oluşturulan yerel geliştirme desteği ve çok sayıda performans özelliği eklenmiştir. Üretkenlik açısından ortaya konan yükseltmeler ile birlikte, geliştiricilere daha iyi bir deneyim sunulmaktadır.
Flutter Vitrini ve Flutter Galerisi
Flutter ile geliştirilmiş olan uygulamalar hakkında vakaların yer aldığı çalışma koleksiyonu, Flutter Vitrini üzerinden gösterilmektedir. Flutter’ı tercih etmek isteyenler için güzel bir ön izleme olacaktır.
Flutter Galerisi sayesinde, Flutter’ın tam olarak nasıl çalıştığını, hem geliştiricilere hem de tasarımcılara gösteren widget, davranış ve vinyet koleksiyonu sunar. Flutter Galeri’ye web üzerinden ulaşabileceğiniz gibi Flutter Galeri deposunun kullanımı ile birlikte Flutter tarafından desteklenen platformlar üzerinden yerel olarak çalıştırılabilir.
Flutter Galerisi, Flutter’ın ne yaptığını ve nasıl davrandığını gösteren ve geliştiriciler ve tasarımcılar için en yararlı olan bir widget, davranış ve vinyet koleksiyonu içerir. Galeriyi web üzerinde görüntüleyebilir veya Flutter galeri deposunu kullanarak desteklenen platformlardan herhangi birinde yerel olarak çalıştırabilirsiniz.
Flutter’ı Yükleme
Flutter’ı macOS, Linux, Windows ya da Chrome OS’a yüklemeniz mümkündür. Ayrıntılı bir şekilde yükleme süreci sistemden sisteme değişkenlik gösterebilir. Sisteme özel olarak oluşturulan zip dosyasını seçerek yüklemeyi gerçekleştirebilirsiniz. Devamında Flutter Doctor’ı çalıştırmanız gerekir. Aşağıda Flutter Doctor output bilgilerini bulabilirsiniz.
Running “flutter pub get” in flutter_tools… 5.1s
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.1, on Mac OS X 10.15.7 19H1922 darwin-x64,
locale en-US)
[✗] Android toolchain – develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from:
https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK
components.
(or visit https://flutter.dev/docs/get-started/install/macos#android-setup
for detailed instructions).
If the Android SDK has been installed to a custom location, please use
`flutter config –android-sdk` to update to that location.
[!] Xcode – develop for iOS and macOS (Xcode 12.4)
✗ Flutter requires Xcode 13 or higher.
Download the latest version or update via the Mac App Store.
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side’s plugin
code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install see
https://guides.cocoapods.org/using/getting-started.html#installation for
instructions.
[✓] Chrome – develop for the web
[!] Android Studio (not installed)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.1)
[✓] VS Code (version 1.67.1)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
Flutter Genel Değerlendirme
Flutter 3, 6 farklı platformu desteklemesi ile birlikte tüm dikkatleri üzerine çekmeyi başardı. Ayrıca, getirmiş olduğu çok sayıda performan iyileştirme çalışması ile birlikte çok daha stabil bir hale geldi. Uygulama geliştiriciler için birden fazla platform üzerinde çalışacak bir uygulama oluşturulmak isteniyorsa, Flutter kesinlike değerlendirilmelidir.
Geliştiriciler için büyük kolaylık oluşturan Flutter 3, daha yaygın bir şekilde kullanılmaya devam edilmesi bekleniyor.