İçeriğe geç / Skip to content / Zum Inhalt

En İyi Flutter Öğretmeni Seçimi: Mobil Uygulama Uzmanı Rehberi

Ahmet Balaman

Son güncelleme:

6 dk okuma

FlutterFlutter DersiFlutter ÖğrenmekÖzel DersDartYol Haritası
En İyi Flutter Öğretmeni Seçimi: Mobil Uygulama Uzmanı Rehberi

Flutter öğrenmek için özel ders almayı düşünüyorsanız asıl soru "en iyi öğretmen kim?" değildir. Asıl soru şudur: benim bulunduğum noktaya hangi öğretmen ve hangi öğrenme biçimi uyuyor? Bu yazıda bir öğretmeni para ödemeden önce nasıl değerlendireceğinizi, özel dersin ne zaman gereksiz olduğunu ve Flutter'ı hangi sırayla öğrenmenin mantıklı olduğunu anlatıyorum. Ben de Flutter dersi veriyorum; yine de buradaki ölçütleri kimi seçerseniz seçin işinize yarayacak şekilde yazdım.

Önce Kendi Başlangıç Noktanızı Belirleyin

Aynı öğretmen herkese aynı faydayı sağlamaz, çünkü ihtiyaçlar başlangıç noktasına göre çok değişir.

Hiç programlama bilmiyorsanız sorununuz Flutter değil, programlamanın kendisidir. Değişken, koşul, döngü, fonksiyon ve sınıf kavramları oturmadan widget yazmaya başlarsanız ekranda bir şeyler görürsünüz ama neden çalıştığını bilmeden kopyala-yapıştır yaparsınız. Bu durumda ilk haftaları Dart'a ayıran, sabırlı ilerleyen ve her derse küçük bir ödevle devam eden bir öğretmen gerekir. Hangi dille başlayacağınızdan bile emin değilseniz önce yazılıma nereden başlanır yazısına göz atın.

Üniversite öğrencisiyseniz ve önünüzde bir dönem projesi ya da bitirme projesi varsa derdiniz takvimdir. Size gereken, projenin kapsamını gerçekçi biçimde daraltabilen ve hangi konunun şimdi, hangisinin sonra öğrenileceğine karar verebilen biridir. Burada bir sınır var: projeyi sizin yerinize yazmayı teklif eden kişi öğretmen değildir. O projeyi jüri önünde siz savunacaksınız.

Başka bir teknolojiden geçen bir geliştiriciyseniz (web, native Android ya da backend) değişkenin ne olduğunu dinlemeye ihtiyacınız yok. Size lazım olan zihinsel modeldir: bildirimsel arayüz, widget ağacı, constraint mantığı ve state'in nerede tutulacağı. Bu profilde haftalık uzun dersler yerine, kendi yazdığınız kod üzerinden yapılan birkaç yoğun kod inceleme seansı çoğu zaman daha verimlidir.

Para Ödemeden Önce Öğretmeni Nasıl Değerlendirirsiniz?

Paket satın almadan önce bir deneme dersi ya da en azından kısa bir tanışma görüşmesi isteyin. Bu görüşmede şu soruların net bir cevabı olmalı:

  • İlk iki ayda hangi konuları, hangi sırayla işleyeceğiz? Yazılı bir müfredat var mı?
  • Ödev verecek misiniz, ödevime nasıl geri bildirim alacağım?
  • Yazdığım kodu satır satır inceleyecek misiniz?
  • Hangi state management yaklaşımını öğretiyorsunuz ve neden onu seçtiniz?
  • Yayında bir uygulamanız ya da açık kaynak kodunuz var mı, bakabilir miyim?
  • Dersler arasında takıldığım yerde soru sorabilecek miyim?

İyi bir ilk ders, öğretmenin anlatmaya başlamadan önce hedefinizi ve seviyenizi sormasıyla başlar. Klavyenin başında çoğunlukla siz olursunuz; öğretmen izler, yönlendirir, gerektiğinde kendi ekranında gösterir. Ders sonunda emülatörde ya da telefonunuzda çalışan küçük bir şey ve bir sonraki derse kadar yapılacak somut bir görev olmalıdır. Öğretmenin canlı kod yazarken hata yapıp o hatayı sizin önünüzde çözmesi bir kusur değil, dersin en değerli kısmıdır. Kırmızı hata ekranını okumayı ve "A RenderFlex overflowed" uyarısının neden çıktığını bulmayı slayttan öğrenemezsiniz.

Yayınlanmış işlere bakarken mağaza sayfasını açın, uygulamayı telefonunuza indirin ve son güncelleme tarihine bakın. Yakın zamanda güncellenen bir uygulama, geliştiricisinin güncel Flutter sürümleriyle ve mağaza kurallarıyla hâlâ uğraştığını gösterir. GitHub'da yıldız sayısı yerine commit geçmişine, klasör düzenine ve kodun null-safe Dart ile yazılıp yazılmadığına bakın. Blog yazısı ya da videosu varsa şunu sorun: "neden"i açıklıyor mu, yoksa sadece kod mu yapıştırıyor? Şunu da unutmayın, uygulama yayınlamış olmak iyi öğretmen olmanın kanıtı değildir. Deneme dersi bu yüzden önemli.

Şu işaretlerden birini görürseniz temkinli olun:

  • "4 haftada uzman olursunuz" ya da iş garantisi gibi vaatler
  • Yazılı müfredatın hiç olmaması
  • Dersin yalnızca slayt üzerinden ilerlemesi, canlı kod yazılmaması
  • Kod incelemesi yapılmaması, ödevlere geri bildirim verilmemesi
  • Örneklerde Flutter'dan kaldırılmış eski widget'ların (örneğin RaisedButton) kullanılması
  • Projenizi sizin yerinize yazma teklifi
  • Deneme dersi olmadan toplu ve peşin ödeme baskısı

Özel Ders, Video Kurs, Bootcamp ya da Kendi Kendine Öğrenme

Kendi kendine öğrenme en ucuz yoldur ve Flutter'ın resmî dokümantasyonu ile Flutter ekibinin derlediği codelab ve öğrenme kaynakları bunun için yeterince iyidir. Zayıf tarafı geri bildirimdir: yanlış bir alışkanlık edindiğinizde bunu size söyleyen kimse olmaz ve takıldığınız bir hata bütün bir haftanızı alabilir.

Video kurslar düzenli bir sıra sunar, istediğiniz yerde durdurup tekrar izleyebilirsiniz ve maliyeti düşüktür. Riski, izlemeyi öğrenmek sanmaktır. Eğitmenle aynı kodu yazıp bitirdiğiniz bir kurs, boş bir projeye tek başınıza başlayabileceğiniz anlamına gelmez. Ayrıca Flutter hızlı değişir; birkaç yıl önce çekilmiş bir kurstaki kod bugün derlenmeyebilir.

Bootcamp'ler tempo ve topluluk sağlar. Tam zamanlı vakit ayırabiliyorsanız ve bir grupla ilerlemek sizi motive ediyorsa işe yarar. Buna karşılık pahalıdır, hız gruba göre ayarlanır ve herkes aynı projeyi yaptığı için portföyünüz diğerlerininkine benzer.

Özel ders, saat başına en pahalı seçenektir. Karşılığında sizin hızınızda ilerler, sizin kodunuza bakar ve sizin projenizdeki soruna odaklanır. Bazı durumlarda ise bu paraya değmez. Henüz ücretsiz kaynaklarla bir hafta bile denemediyseniz ve Flutter'ı sevip sevmeyeceğinizi bilmiyorsanız ders almak için erkendir. Dersler arasında hiç kod yazmaya vakit ayıramayacaksanız da öğretmen sizin yerinize pratik yapamaz. Dokümantasyon okuyarak rahatça ilerleyen deneyimli bir geliştiriciyseniz haftalık ders yerine ayda bir kod inceleme saati yeterlidir. Çoğu kişi için en mantıklı karışım, temeli bir video kurs ya da dokümantasyonla atıp takılınan yerlerde ve kod incelemesi için birebir ders almaktır.

Gerçekçi Bir Flutter Öğrenme Sırası

Öğretmeniniz ya da kursunuz aşağı yukarı bu sırayı izlemelidir. Sıra atlandığında, örneğin layout oturmadan state management'a geçildiğinde, sorunlar üst üste biner.

  1. Dart temelleri. Tipler, null safety, fonksiyonlar ve sınıflar; hepsinin resmî tanımı Dart dil turunda var. List, Set ve Map koleksiyonları, tip dönüşümleri ve static kavramı ile kalıtım ve polymorphism bu adımın parçasıdır.
  2. Kurulum ve ilk uygulama. Ortamı kurup sayaç uygulamasını kendi elinizle değiştirmek. Flutter'a başlangıç yazısı bu adımı anlatıyor.
  3. Widget ağacı ve layout. Row, Column, Stack ve constraint mantığı. Widget ağacı ve layout'a giriş ile Expanded, Flexible ve Spacer karşılaştırması taşma hatalarının çoğunu açıklar.
  4. Kendi widget'ınızı yazmak ve yaşam döngüsü. Ekranı parçalara bölmeyi kendi widget'ını oluşturma, initState ile dispose mantığını yaşam döngüsü yazısında bulursunuz.
  5. Kullanıcı girişi. Doğrulamalı bir Form yazmak, state'in ne olduğunu da somutlaştırır.
  6. Sayfa geçişleri. Navigator ile sayfa geçişi ve sayfalar arası veri taşıma.
  7. Asenkron kod ve API. Önce try-catch ve async-await, ardından sonucu ekrana bağlamak için FutureBuilder.
  8. State management. setState yetmediğinde önce Provider, sonra isterseniz Riverpod.
  9. Farklı ekran boyutları. LayoutBuilder ile responsive tasarım.
  10. Yayınlama. Uygulama ikonu, imzalama ve mağaza süreci. Bir uygulamanın fikirden mağazaya nasıl gittiğini Recapday'i nasıl geliştirdiğimi anlattığım yazıda okuyabilirsiniz.

Animasyonlar, sliver'lar ve platform kanalları bu listenin sonrasına aittir. İlk aylarda bunlara zaman harcamak genellikle temel adımları geciktirir.

Derslerden En Çok Verimi Nasıl Alırsınız?

Dersin verimini öğretmen kadar siz de belirlersiniz. Derse sorularınızı yazılı getirin ve "çalışmıyor" demek yerine hata mesajını, ne denediğinizi ve ne beklediğinizi hazırlayın. Ders konularından bağımsız, kendi seçtiğiniz küçük bir projeyi paralelde geliştirin. Not defteri ya da alışkanlık takibi gibi sade bir fikir yeterlidir. Derste öğrendiğiniz her konuyu o projeye uygulamak, konuyu gerçekten anlayıp anlamadığınızı gösterir.

Koda Git ile sürüm tutun ki öğretmeniniz iki ders arasında ne değiştiğini görebilsin. Örnek kodu kopyalamak yerine elle yazın; yavaş gelir ama yazım hatalarını ayıklarken çok şey öğrenirsiniz. Anlamadığınız yerde bunu o anda söyleyin. Özel dersin video kursa göre tek gerçek üstünlüğü, anlatımın size göre değişebilmesidir.

Benim Verdiğim Dersler

Ben de Flutter ve Dart üzerine birebir, çevrim içi ders veriyorum. Derslerin nasıl ilerlediğini Flutter dersleri sayfasında bulabilirsiniz. Yukarıdaki soruları bana da sormanızı öneririm.

Sık Sorulan Sorular

Hiç programlama bilmeden Flutter'a başlanır mı?

Başlanır, ama ilk haftalar widget'lara değil Dart temellerine ayrılmalıdır. Değişken, koşul, döngü, fonksiyon ve sınıf kavramları oturduktan sonra Flutter çok daha hızlı ilerler.

Haftada kaç saat ders yeterli?

Çoğu kişi için haftada bir ya da iki saat ders yeterlidir; belirleyici olan dersler arasında kendi başınıza yazdığınız koddur. Ders saatinin birkaç katı kadar pratik yapamıyorsanız ders sayısını artırmak sonucu değiştirmez.

Flutter öğrenmek için Mac gerekir mi?

Öğrenmek ve Android uygulaması geliştirmek için Windows ya da Linux yeterlidir. iOS için derleme yapmak ve App Store'a yüklemek için Xcode, dolayısıyla bir Mac gerekir.

Provider mı Riverpod mu öğrenmeliyim?

İkisi de iş görür. Önemli olan, öğretmenin neden birini seçtiğini açıklayabilmesi ve sizin önce setState ile state'in ne olduğunu kavramış olmanızdır. Birini iyi öğrenen diğerine kısa sürede geçer.

Yorumlar