Flutter Nedir ve Neden Flutter?

Google tarafından geliştirilen ve ilk olarak Mayıs 2017’de I/O konferansında duyurulan flutter, 1.0 sürümü ile birçok büyük firmayı cezbetti hatta beta aşamasındayken bazı firmalar flutter üzerinden uygulama geliştirdiklerini duyurdu bu firmalardan bazıları Groupon, Philips Hue, Alibaba ve Tencent firmalarıdır ayrıca açık kaynak kodlu olup Dart dili üzerinden geliştirme yapmaya imkan tanımaktadır.


Flutter Nedir ve Neden Flutter?

flutter

Google mobil tarafta cross platform’un cazibesini keşfetmiş olacakki cross platform mobil geliştirme yapabileceğimiz bir framework üretmiş ve karşılaştırmalara göre şimdiye kadar ki en hızlı cross platform framework’ü olarak adını piyasaya çok hızlı duyurdu ayrıca benim gibi mobil uygulama geliştirme platformu evresi cordova < Xamarin < ReactNative olan biri içinde cezbettiğini belirtmeliyim. Sonraki mobil uygulamalarımı açıkçası Flutter ile geliştmek istiyorum neden böyle bir tercihte bulunduğumuda Neden Flutter? kısmında anlatmaya çalışacağım tabi farklı sorunlarda yer alabilir hem Flutter hemde ReactNative tarafında fakat ben sadece kendi tecrübelerim sonucunu aktarmaya çalışacağım.

Flutter nedir sorusuna cevap olarak daha önce Geliştirici Bülteni 7 – Haftalık Geliştiriciye Özel Gelişmeler bültenimizde de sizlerle paylaştığımız flutter tanıtım videosuna altta sizlerle tekrar paylaşıyorum “nedir” sorusuna cevap olacağını düşünüyorum.

Flutter ve Benzeri Cross Platform Araçlarının Amacı Nedir?

Şöyle ki Android geliştirmek için Java veya Kotlin gibi dillerden birini bilmeniz yada iOS geliştirmek için Swift veya Objective-C gibi dillerden birini bilmeniz gerekiyor bu her iki dilin ve SDK’sının öğrenmeye kalktığınızda çok büyük bir zaman gerekiyor diyelim ki öğrendik her ikisi için aynı ortak yapıyı ve tasarımı oluşturmaya çalıştığınızda o birebir çıktıyı yakalayamadığınız durumlar olacak yada yakalamak için ekstra efor ortaya koyulması gerekecek. İşte tam olarak bu gibi durumlar için tek yerden yazdığınız kodların çıktısının hem ios hem de android’de aynı olmasını istiyorsanız bir cross-platform geliştirme aracına ihtiyacınız var.

Nasıl Öğreniriz?

Çok fazla efor sarf etmeden öğreneceğiniz bir geliştirme aracı olduğunu belirtmek isterim ayrıca Türkçe kaynak konusunda da birçok geliştirici arkadaş tarafından medium yada kendi blog sayfalarından yayınladıklarını görmeye başladım buda Türkçe kaynak konusunda sevindirici bir durum. Öğrenmek için kaynak ihtiyaçlarınızı alttaki Faydalanabileceğiniz Kaynaklar kısmında paylaştığım linklerden faydalanabilirsiniz.

Neden Flutter?

  • Dart dili üzerinde geliştirme yapmanız ve compile edilebilir bir dil olması dolayısıyla yapacağınız en ufak bir sözdizimi gibi durumlarda compile edilmediğini göreceksiniz bu durum react-native tarafında oldukça can sıkıyor eğer typescript üzerinden react-native geliştirmesi yapmıyorsanız o zaman daha da can sıkan durumlar ortaya çıkabiliyor özetle Dart ile geliştirme yapmanın ayrı bir keyif verdiğini belirtmek isterim.
  • Flutter cross-platform olduğundan farklı mobil işletim sistemleri için bir yerden yazacağınız kod ile çıktı alabilirsiniz.
  • Flutter widget olarak çok zengin olduğunu belirtmek isterim ayrıca tasarım olarak Android için Material Design ve iOS içinde Cupertion tarzı stile sahip widget’lara sahip olduğundan platform özelinde tasarımsal çıktılar alabileceksiniz.
  • Daha önce sıklıkla React Native tarafında kullandığımız ve Flutter tarafında daha optimize olarak çalışan “Hot Reload” özelliği sayesinde geliştirme esnasında yazdığınız kodların anlık olarak mobil ortamda çıktısını görebiliyoruz.
  • React Native gibi araya bir Javascript Bridge(Javascript Köprüsü), Xamarin Gibi araya Mono Compiler’ını ve son olarak cordova gibi araya bir webview koymadan native olarak çıktı almanızı sağlayan şuan için en başarılı mobil cross platform geliştirme araçlarından biri olma ünvanını elinde bulunduruyor.

Flutter mı React Native mi?

Aslında bir üstteki Neden Flutter kısmında bu karşılaştırmaların bazılarına değindim ama burada her iki karşılaştırma için derlenmiş olarak bulabileceksiniz.

  • Flutter araya herhangi bir ekstra arayüz dönüştürücü koymadığından performans olarak React Native’den daha üstün. React Native .jsx yada .tsx dosyaları içerisindeki tanımlamalarımız arayüz’e dönüştürürken bir Javascript Bridge adını verdiği mekanizma ile asenkron olarak ekran çıktısı ürettiğini biliyoruz bu durumda çok küçük ve orta ölçekli uygulamalarınızda react-native üzerinde bir performans sorunu ile karşılaşacağınızı düşünmüyorum. Diğer bir konu ise çalışma zamanında React Native’in tür dönüşümlerinden çok can sıkıcı hatalar verdiğine şahit oldum ve varolan uygulamalarım üzerinden de şahit olmaya devam ediyorum.
  • Flutter üzerinden yerleşik olarak gelen daha fazla widget yer alıyor. React native tarafında basic seviyedeki button, view, listview dışındaki herşey için component indirmeniz gerekiyor buda büyük projelerde component yığını oluşmasına sebep olabiliyor, tecrübe ile sabittir.
  • Cross platform geliştirme araçlarının sloganı genellikle “Bir kez yaz, her yerde kullan” olsa da özel tüm ihtiyaçlar için ekstra bileşen yada component indirmeniz gerekiyor ama Flutter tarafında bu en aza indirilmiş seviyededir.
  • React Native 2015 yılında, Flutter ise 2017 yılında piyasaya sürülmüştür o yüzden Ekosistem olarak React Native daha büyük bir kaynağa sahip iken Flutter yeni yeni React Native’e yetişmeye başladı ve çok hızlı bir şekilde aradaki açığı da kapatıyor.

Mobile Cross Platform Geleceği Ne Yönde?

Eskisi gibi sadece tek bir dil yada teknoloji öğrenerek iş hayatımızı idame ettiremiyoruz her gün çıkan yeni gelişmelere ayak uydurmamız gerekiyor. Bu her çıkan yeni gelişmeyi benimsemeniz gerektiği anlamına gelmiyor eğer yeni olarak sunulan bir gelişme üstüne bir şeyler koyabilmiş ise ve gerçekten bize kazandırdıkları(zaman, maliyet, özellik) daha fazla ise o zaman tercih etme ve öğrenme gereksinimine sahip olduğunu bilmeliyiz. Mobile cross platform konusunda React Native şuan liderliği elinde bulundururken Cross Platform’lardan En Popülerleri kısmında görebileceğiniz üzere aradaki farkı sonrasında çıkmış olmasına rağmen ciddi ciddi kapattığını görüyoruz.

Cross Platformlardan En Popülerleri

Alttaki grafik Google Trends tarafından son 12 aylık veri anlık olarak verilmektedir ve karşılaştırmaya Sadece React Native, Flutter, Cordova ve Xamarin dahil edilmiştir.

Hot Reload

Makalenin bu kısmına kadar birçok defa “Hot Reload” dan bahsettik peki gerçekten nedir bu “Hot Reload”? Alttaki görsel bu sorunun cevabını makale içerisinde “Hot Reload” için yazdıklarım üzerine ekleyerek daha anlaşılır olacağını düşünüyorum.

hot reload

Etkileyici Arayüzler Tasarlama Olanağı

Makalenin önceki kısımlarında Flutter’ın arayüz geliştirme noktasında çok zengin ve özgür olduğu belirtmiştik ve diğer geliştirme araçlarına göre hazırda birçok widget’ın halihazırda yer aldığını belirtmiştik bu doğrultuda alttaki örnek ekran görüntülerinde olduğu gibi etkileyici tasarımlar oluşturabilirsiniz.

image2a
screenshot 3screenshot 2screenshot 1

Yapılabilecek örnek uygulamalar konusunda alttaki videoyuda seyretmenizi tavsiye ederim.

Flutter ile Hangi Ortamlarda Geliştirme Yapılabilir?

Flutter ile geliştirmeye karar verdiniz ama işletim sistemi olarak hangi işletim sistemlerinde çalıştığını öğrenmek istiyorsanız şunu söyleyebiliriz Windows, Linux ve Mac ortamlarında özgürce Flutter ile mobil uygulamalar geliştirebilirsiniz Flutter Ortam kurulumunu Windows ve Mac üzerinde nasıl yapıldığını ayrı bir makale olarak sonraki haftalarda ele alacağım aktif olarak bu iki platform’u kullandığımdan sadece windows ve mac üzerinden Flutter geliştirme ortamının nasıl kurulduğuna ve neler gerektiğine bakacağız.

Minimum Hangi SDK Sürümleri ve Donanımı Desteklemektedir?

Flutter ile uygulama geliştirdiğinizde diğer cross platformlarda olduğu gibi geliştirme yapabileceğiniz minimum bir SDK(Software Development Kit) sürümü ve donanım özelliği kısıtlaması yer alıyor. Android tarafında Jelly Bean(v16) 4.1.x ve daha yeni sdk sürümleri üzerinden geliştirme yapmaya izin veriyorken iOS tarafında iOS 8 ve daha yeni SDK sürümleri için uygulama geliştirmeye izin vermektedir Donanım olarak Android’in ARM işlemcilerini desteklemektedir. iOS tarafında ise 64-bit işlemci mimarisini desteklemesi ile iPhone 5s ve üstü cihazlara uygun uygulama geliştirmeye imkan tanıyor.

Web Çıktısı Almak

Flutter daha yeni yeni release’i yayınladığını söylemişken hiç durmadan hemen Hummingbird adlı yapısını duyurdu, Hummingbird flutter projenizde ekstra bir değişiklik yapmadan web ortamında çalışmasını sağlayan bir yapıdır. Örnek bir flutter projesinin web’de nasıl çalıştığı ile ilgili demo animasyonlu görüntüye altta sizlerle paylaştım.

puzzle new design2
HummingBird ile ilgili detaylı bir makaleyi ayrıca yayınlamayı düşünüyorum.

Buraya kadar Flutter Nedir ve Neden Flutter gibi sorulara cevap aradık umarım gerekli cevapları verebilmişizdir. Bir sonraki makale olan Flutter Ortamı Nasıl Kurulur ve Neler Gerekiyor? adlı makaleden Flutter Ortamı Nasıl kurulur ve ortamı kurmak için neler gerekiyor bu soruların cevabını bulabilirsiniz.

Faydalanabileceğiniz Kaynaklar


✍ Flutter Nedir ve Neden Flutter? makalesi için lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.

🔗 Flutter Nedir ve Neden Flutter? makalesini sosyal medya kanallarından paylaşarak destek olursanız çok sevinirim.

👋 Bir sonraki makalede görüşmek dileğiyle.

5/5 - (23 votes)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et