Herkese merhaba, bugün sizlere bir Flutter geliştiricisi olarak beni fazlasıyla ilgilendiren ve heyecanla karşıladığım bir gelişmeden bahsetmek istiyorum.
24 Ekim’de Flutter Silicon Valley Meetup’ta Flock duyuruldu. Meetup’ın video linkini bırakıyorum.
Duyurunun hemen öncesinde ise geliştiriciler Matt Carroll (@SuprDeclarative) ve Jesse Ezell (@jezell) bunu neden yaptıklarını detaylıca açıkladıkları resmi yazılarını yayınladılar. Ben de bu yazıyı siz okuyucularım için mümkün olduğunca basitleştirerek özetlemek ve konuyu paylaşmak istedim. Umarım faydalı olur. O zaman hadi başlayalım!
Flutter, başlangıçta yalnızca iOS ve Android için bir mobil UI kiti olarak ortaya çıkmıştı. Ancak zamanla web ve ardından Mac, Windows ve Linux desteğiyle kapsamını genişletti. Bu genişlemenin yanında, Flutter ekibinin büyüklüğü çok fazla artmadı. Bugün tahminen 1 milyon Flutter geliştiricisi varken, ekibin sadece yaklaşık 50 kişi olduğu düşünülüyor. Bu durum, her bir ekip üyesinin 20.000 geliştiriciye hizmet etmesi gerektiği anlamına geliyor ki bu sürdürülebilir bir durum değil.
Google’ın 2023’teki genel işe alım duraklaması ve 2024’teki küçük çaplı işten çıkarmalar, ekibin büyümesini daha da zorlaştırdı. Ayrıca, Google’ın yapay zekaya odaklanmasıyla birlikte masaüstü platformlar için çalışmalar öncelik olmaktan çıktı ve bu alanlar neredeyse durma noktasına geldi. İşte bu zorlukları aşmak için Flutter’ın bir çatalı olan “Flock” geliştiriliyor.
Flock Nedir?
Sınırlı iş gücünün maliyeti, hızla genişleyen bir kullanıcı tabanına ve kapsamına sahip bir araç kiti için büyük sorunlara yol açabiliyor. Az sayıda geliştirici nedeniyle, birçok talep yıllarca geri planda kalabiliyor veya hiç ele alınmıyor. Flutter ekibi bir talebi incelemeye başladığında, bu talep yıllar önce oluşturulmuş olabiliyor ve ekibin daha fazla bilgi istemesi olağan. Bu süre zarfında sorunu bildiren kişi genellikle projeyi unutmuş veya başka projelere geçmiş oluyor, bu da detayların hatırlanmasını zorlaştırıyor ve sorunun çözümsüz kalmasına neden oluyor. Bu durum, yalnızca hataların kök nedenini bulmak ve çözmek için değil, aynı zamanda ürün yönetimi açısından da büyük bir sorun teşkil ediyor. Örneğin, bir şirketin yeni sürümü kritik bir Flutter hatası nedeniyle ertelenirse ve bu hata 2 yıl boyunca çözülmezse, o şirketin Flutter’ı kullanmayı bırakması gerekebilir. Bu tür deneyimlerin yaygınlaşması, Flutter’ın geleceğini tehlikeye atıyor.
Topluluğun Önemi
Flutter, açık kaynaklı bir proje olması ve Flutter uygulamalarıyla aynı dilde yazılmış olması sayesinde topluluk katkılarına oldukça açık. Bu özellikler, deneyimli Flutter geliştiricilerinin ve paket geliştiricilerinin Flutter çerçevesine katkıda bulunmasını kolaylaştırıyor. Dünya genelinde, Flutter çerçevesine etkin bir şekilde katkıda bulunabilecek yaklaşık 1.000 geliştiricinin olduğu düşünülüyor. Eğer bu geliştiriciler düzenli olarak katkıda bulunursa, Flutter ekibi için geliştirici sayısı 1:20.000 oranından 1:1.000’e düşebilir. Dış katkıların artması, diğer geliştiricileri de katkıda bulunmaya teşvik eder ve bu da destek oranını iyileştirir. Ancak, Flutter’a doğrudan katkıda bulunmak yerine bir çatal oluşturma fikri, topluluğun ortak bir çaba ile Flutter’a katkı sağlaması için daha iyi bir yol olarak görülüyor.
Flutter ekibiyle çalışmak, birçok geliştirici için beklenenin aksine zorluklarla dolu bir deneyim olabiliyor. Bazı geliştiriciler başarılı olurken, diğerleri sınırlı inceleme süresi ve iletişim sorunları gibi nedenlerle hayal kırıklığına uğrayabiliyor. İnceleme için gereken zaman ve iş gücü yetersizliği, katkıların uzun süre beklemesine neden olurken, iletişim tarzı da herkes için uygun olmayabiliyor. Bu sorunlar sonucunda, Flutter çerçevesine katkıda bulunan kişi sayısı 1.500’ün altında kalıyor ve bu rakam, yalnızca bir kez katkıda bulunanları da kapsıyor. Flutter ekibi, dış katkıları destekleme niyetinde olsa da, katkı süreçleri ve ekibin mevcut durumu, bu katkıların yönetilmesini zorlaştırıyor. Ayrıca, ekip üyeleri genellikle Flutter’ı kullanmadıkları için dış katkıların önemini ve aciliyetini tam olarak anlayamıyorlar.
Eğer Flutter ekibi bu katkı sorununu tanımazsa ve çözmek için adım atmazsa, alternatif bir yol olarak Flutter’ın çatallandığını duyurmuşlardır. Bu çatal, iş gücü sorununu çözmeye yönelik bir adım olarak düşünülmektedir.
Flock’un Misyonu
Flock, “Flutter+” olarak adlandırılıyor ve amacını şöyle tanımlıyor: Flutter topluluğunu bölmek istemiyor; aksine, Flutter ile sürekli güncel kalacak ve Flutter ekibinin uygulayamadığı veya istemediği önemli hata düzeltmeleri ve popüler topluluk özellikleri ekleyecek. Flock ile hangi değişikliklerin birleştirileceğine karar verme imkanı sunuluyor; bu da kaliteyi düşürmeden daha geniş bir katkıcı kitlesini desteklemeyi ve daha hızlı inceleme süreleri sağlamayı mümkün kılıyor. Flock, ayrıca katkı süreçlerini optimize etmeyi, sosyal olarak daha fazla katkı teşvik etmeyi ve kullanıcıların ihtiyaçlarını daha iyi karşılamak için pazar önceliklerini belirlemeyi hedefliyor. Flock, önemli hata düzeltmeleri ve özellikler gönderdiğinde, Flutter ekibi bunları kendi zamanlamalarına göre Flutter’a dahil edebilir. Bu sayede topluluk, Flutter ekibinin mevcutlığından bağımsız olarak ilerleyebilir.
Flock’a Katkıda Bulunma Fırsatları
Flock’un gelişimi, topluluğun desteği ile mümkün olacak. İlk adım olarak, Flock, Flutter’ı otomatik olarak yansıtmayı ve tüm sürüm etiketlerini çoğaltmayı planlıyor. Geliştiricilerden, Flock ile uygulama oluşturmaları ve Flock’un Flutter ile arasında hiçbir fark olmamasını bekleniyor.
Flock, kaliteli katkıları sağlamak için birçok inceleme görevlisi (reviewer) arıyor. İnceleme görevlileri, Flutter’ın kalite standartlarına uygun bir şekilde katkıları değerlendirecek ve bu süreçte katkı yapanları yönlendirecek. Amaç, katkıların yalnızca kabul edilmesini sağlamak değil, aynı zamanda katkıda bulunanlara destek olmaktır.
Flock, uzun ömürlü bir çatal olarak sürdürülebilmesi için belirli alanlarda uzmanlık sağlayacak liderlere de ihtiyaç duymaktadır. Örneğin, Flutter CLI aracı için bir lider ve her platform (Android, iOS, Mac, Windows, Linux) için ayrı bir motor (engine) lideri aranmaktadır.
Birlikte Flock Olmak
Flock, Flutter’ı evrensel bir UI toolkit’i haline getirmek için topluluk desteğine ihtiyaç duyuyor. Topluluğun bir araya gelerek bu hedefe ulaşması isteniyor. Flutter’ın potansiyeli, alternatiflerinden çok daha fazla, ancak bunun için topluluğun Flock olarak birlikte hareket etmesi gerekiyor.
Şimdi gelelim Flock’u nasıl kullanacağımıza.
Flutter projemizi Flock kullanacak şekilde yapılandırabiliyoruz. Burada bahsedilen önemli bir nokta var, o da Flock’un şimdilik Flutter’ın doğrudan bir kopyası olduğu ve Github senkronizasyonunu düzeltmeye çalışıyorlar. Bu yüzden ilk olarak Flutter’ın master branch’ı ile eşleşen güncel versiyonunu kullanmamızı öneriyorlar.
FVM (Flutter Version Manager)
Flutter Version Manager (FVM), aynı makineye birden fazla Flutter sürümü yüklememizi ve kullanmamızı sağlıyor. Flock’u kullanmak için FVM’yi yükleyerek başlamak zorunda olduğumuzu söylüyorlar.
Projemizde FVM’yi Yapılandırma
Flock’u kullanmak istediğimiz bir Flutter projesinin kök dizininde .fvmrc adında yeni bir dosya oluşturuyor ve .fvmrc’yi aşağıdaki gibi yapılandırıyoruz:
{
"flutter": "master",
"flutterUrl": "https://github.com/Flutter-Foundation/flutter.git"
}
Flock’u Yükleme
Proje dizininde bir terminal açıp fvm flutter — version komutunu çalıştırın. FVM bize bu noktada “Master ”ın yüklü olmadığını bildirecek ve ardından yüklememizi isteyecek.
Flutter SDK: Channel: Master is not installed.
? Would you like to install it now? (y/n) › yes
Flutter’ın Flock sürümünü FVM önbelleğine yüklemek için “evet” seçeneğini seçerek yüklemeyi başlatıyoruz.
Flock Kurulumunu Doğrulama
Flock kurulumunun çalıştığını doğrulamak için fvm flutter — version komutunu çalıştırabiliriz.
Burada Flutter git URL’sinin https://github.com/Flutter-Foundation/flutter.gitadresini gösterdiğinden emin olmamız gerekiyor.
Flutter 3.27.0-1.0.pre.200 • channel master • https://github.com/Flutter-Foundation/flutter.git
Framework • revision 452ef96537 (16 hours ago) • 2024-10-22 12:37:14 +0000
Engine • revision e6856502b5
Tools • Dart 3.7.0 (build 3.7.0-47.0.dev) • DevTools 2.40.1
Flock Kullanımı
Bu adımdan sonra artık tüm olağan Flutter komutlarımızı FVM üzerinden çalıştırarak Flock’u kullanmaya başlayabiliyoruz.
Örneğin
fvm flutter --version
fvm flutter pub get
fvm flutter run
fvm flutter build
# etc.
Artık projemizde, FVM komutları Flutter’ın Flock sürümüne gönderilecek şekilde yapılandırılmış oluyor.
Nest nedir?
Meetup’ta duyurulan bir de Nest projesi var. Onu da, herkesin bir Flutter çatalı oluşturmasına ve sürdürmesine yardımcı olmak için tasarlanmış bir komut dosyaları, uzantılar ve eğitim koleksiyonu olarak tanımlıyorlar.
Ancak şu an için paylaşabilecekleri herhangi bir araçlarının olmadığını söylüyor, güncellemeleri takip etmemizi öneriyorlar.
Sonuç olarak Flock, kullanıcı ihtiyaçları ve geliştirme kaynakları arasındaki boşluğu doldurmayı amaçlayan, katkıların memnuniyetle karşılandığı ve desteklendiği, işbirlikçi bir ortamı teşvik eden ve Flutter topluluğu için umut verici olan bir adımı temsil ediyor gibi duruyor. Bu proje geliştikçe, Flutter’ın daha sağlam ve çok yönlü bir araç seti haline getirme potansiyeline sahip olacağı ve sonuçta hem geliştiricilere hem de kullanıcılara fayda sağlayacağı öngörülüyor. Flutter’ın geleceğinin parlak olduğu ve Flock ile topluluk bir araya gelerek Flutter’ın gelişmesini ve lider bir UI çerçevesi olarak parlamaya devam etmesini sağlayabileceği vurgulanıyor. Umarım genel çerçevede yeterli bilgi verebilmişimdir.
Okuduğunuz için teşekkürler.
Selin.
Hiç yorum yok:
Yorum Gönder