Flutter nedir sorusunu yanıtlamak için çok geç kalmış olabilirim fakat Flutter nedir sorusuna en iyi şekilde yanıt verebilecek durumda olabilirim. 🙂 Flutter açık kaynak olarak geliştirilen bir UI toolkit’tir. Bu UI toolkit, Dart programlama dilini kullanarak iOS/Android/Web/Windows/Linux/macOS/Embedded Devices üzerinde uygulamalar geliştirmenize olanak sağlıyor. Yani kısacası Flutter’ı kullanarak tüm platformlara uygun uygulama geliştirebilirsiniz. Yakında Flutter ve IoT cihazlarının isimlerini beraber anarsak hiç şaşırmayacağım. 🙂 Bir bakmışsınız Toyota Corolla‘ya uygulama geliştirirken, benzer bir uygulamayı buzdolabınızda çalıştırmak Flutter ile mümkün.
Flutter nasıl çalışır? Arkasındaki mühendisliğin boyutu ve karmaşıklığı nedir?
Flutter uygulamaları, Flutter engine üzerinde çalışır. Debug modda VM (sanal makine) üzerine çalışan Flutter uygulamaları, release alındığında binary koda çevrilir ve üzerindeki cihazın anlayabileceği bir hale dönüştürülür. Bu işlem Flutter engine üzerinde gerçekleşir ve bu yapı C/C++ ile yazılmıştır.
Üzerinde çalıştırılan makine kodu yani binary kod sayesinde Flutter uygulamaları, Flutter engine ile beraber piksel piksel ekrana çizilir. İçerisinde güçlü bir render motor barındıran Flutter bu sayede tüm platformlarda 60 fps animasyonlar sunabiliyor ve Native hissiyatında UI sunabiliyor.
Fazlasıyla basit bir sürece benzeyen ama anlatılması basit olduğu kadar arkasında kompleks ve karmaşık bir sistem barındıran Flutter framework’unun temel mimari yapısını buradan öğrenebilirsiniz.
Flutter neden tercih ediliyor?
Flutter, tek bir projeyle yaptığınız uygulamayı birden çok platforma sunabilmeniz açısından çok avantajlı. Ayrıca Hot Reload özelliğiyle yaptığınız değişiklikleri anlık olarak cihazınızda veya Simulatorunuzde görüntüleyebiliyorsunuz. Daha önce eğer Android Studio ile Android uygulaması geliştirmişseniz dakikalarca süren build alma işlemine de aşinasınızdır. Fakat Flutter ile bu sorun tarihe karışıyor. Material kütüphanesi ile birlikte isterseniz Android uygulama hissiyatını yakalayabilir, isterseniz Cupertino kütüphanesi ile uygulamanıza iOS uygulama hissiyatı verebilirsiniz.
Topluluğun geliştirdiği paketler sayesinde uygulama geliştirme sürenizi fazlasıyla kısaltabilmeniz bir başka olumlu yönü Flutter ekosisteminin. Bu ekosistemde geliştiriciler yaptıkları paketlerle beraber sizi saatlerce kod yazmaktan kurtarıyor ve hızlıca çıktı alabilmenizi sağlıyor.
Google’ın geliştirdiği ve Microsoft gibi şirketlerin dışardan desteklediği Flutter teknolojisinin geleceğini merak ediyorsanız bu yazımı okuyabilirsiniz.
Birden çok platforma uygulama geliştirebileceğinizi söylemiş miydim? 🙂
Flutter Geliştiricisi nasıl olunur?
Basit yapısından ötürü hızlıca öğrenilebilen bir teknoloji olan Flutter’ı ilk duyduğumda direkt olarak Udemy’den Angela Yu’nun kursunu satın alarak öğrenmiştim. Kursun ortasına doğru gelirken, zaman kaybetmeden kendimi gerçek uygulama yazmaya alıştırmıştım ve StatefulWidget nedir, StatelessWidget nedir gibi konseptlere takılmadan deneyerek öğrenme yöntemine başvurmuştum.
Daha önce hangi programlama diline aşina olursanız olun, hangi framework’leri kullandığınız fark etmeksizin Flutter’ı en iyi öğrenmenin yolu öncelikle declarative code yazmayı öğrenmektir. Birçok geliştirici imperative code yazdığı için Flutter’da farklı perspektiflerden bakmayı çözemiyor ve aslında declarative code yazmayı bilmediğinden öğrenemediğini değil, fazla karmaşık olduğunu düşünerek öğrenemediğini düşünüyor. Bu yüzden ilk önce Android veya iOS gibi platformlardaki geliştiricilere declarative code yazmayı öğrenmelerini tavsiye ediyorum.
Eğer bir kurs satın aldıysanız ve bu kursu sonuna kadar izleyip, ödevleri yaptıysanız tam olarak Flutter dünyasına atılmaya hazırsınız demektir. Eğer aklınıza bir uygulama fikri gelmiyorsa, Flutter örnek uygulamalar yazıma göz atabilirsiniz.
Flutter nedir sorusunun cevabını verdiğim bu yazıda umarım bir geliştiricinin dikkatini daha Flutter’a çekebilmişimdir. 🙂 İyi kodlamalar!
Okuyucuya Not
Merhaba okuyucu! Blogum son zamanlarda yüksek trafik almaya başladı ve bu durumdan memnunum fakat aynı zamanda siz ziyaretçileri tatmin edememekten endişeliyim. 🙂 Eğer yazılarım ile ilgili bir tavsiyeniz olursa mail adresimden bana ulaşabilir veya Twitter üzerinden direct message gönderebilirsiniz. Github’ta örnek olarak yaptığım projelere göz atmak isterseniz de bu linki kullanabilirsiniz. Umarım bu ziyaretinizle size bir şeyler katabilmişimdir.
Sağlıcakla kalın!