Flutter ile Proje Geliştirme

Flutter_ile_uygulama_gelistirme

PM, UI, Backend, Flutter

PM - Project_Manager

  • Projeye başlarken bir PM'in neler bilmesi gerektiğini öğren.
  • Elimde neler var?

a. Theme \"dark and light\" kolaylığı.

b. UI KIT kolaylığı.

  • Neler yapılmış? Araştır.

a. https://itsallwidgets.com sitesinden neler yapılmış, hangi uygulamalar ne şekilde oluşturulmuş, widget'lar nasıl yapılmış gör.

b. UI tasarımlarını iyi düşünerek projeye başla.

Tasarım-UI

Uygulamanın 'component' setinin önceden hazırlanması çok önemli. Hazırda dursun. Tasarım işinin önceden bitirilmesi faydalı olur. Zeplin öğren ;

Flutter plugin'inini Zepline ekle!

  • Styleguide:

a. Color palette

b. Text Style Catalog 

c. Spacing and Layout 

d. Component

  • Tasarımcı olarak çalışmalarını Iphone_8'e göre hazırla. 
  • Çentiksiz ekranlar tasarım açısından daha uyumlu.
  • Ekran ve Widget'lar için en-boy oranlarının nasıl ayarlanması gerektiğini HardwareAndro kanalından öğren.
  • Elle en-boy-boşluk vs değerleri verme. Bunun için en kötü yüzdesel mantık kullan ya da MediaQuery ya da pub.dev'den flutter_screenutil paketini kullan.
  • Figma'da flowlar kullan. Hangi ekran-buton nereye gidecek belli olsun.

Back-End

  • Database işlerini nasıl yapacağız önce buna karar ver?

Database için iki farklı bakış açısı var:

1️⃣  FireBase Kullan

  • Sunucu maliyeti düşük.  ✅
  • Security derdi yok. ✅
  • No-Sql yapısı var. ⁉️
  • Search embeded olarak gelmiyor. (Elasticsearch ile search işlerini yapabilirsin.) ⚠️

2️⃣ Kendi Backend'ini Yaz

(Node.js - Go - Django - Spring - .Net vb kullan...)

  • Sunucu maliyeti ilk zamanlar yüksek.💰
  • Daha uzun zaman alabilir. ⏳
  • Güvenlik işleri zor. 🔐
  • Devops tutmak gerekebilir. 👨🏻‍💻
  • Sunucu - Publishing - Security işlerine biraz hakim olmak gerekli. ❌
  • Her şey senin elinde, daha özgür hareket edebilirsin. ✅
  • Seraching embeded değil, doğrudan query yap kullan Firebase'e göre daha zor ama daha işlevsel. ✅
  • Büyük projeler için ve kendini geliştirmek için daha faydalı. ✅
  • Zaman içinde maliyet avantakı oluşuyor. ✅

Flutter

HardwareAndro kanalındaki videoları izle ve vb10.dev sitesinden \"Ana Kısım\" bölümünü iyice oku.

pub.dev sitesindeki önmeli paketleri kullan.

  • Localization için: easy_localization kullan.
  • State Managment için: mobx kullan.
  • Kendini geliştir ve bunların üzerine bloc ekle/öğren.
  • Animasyonlar için: animations kullan
  • Ekran boyutlandırma için: flutter_screenutil kullan Routing içi: Veli Hoca'yı bekle, paket yazıyor.

🫧 Projeyi temiz tut:

  • vb10.dev'den projeyi temiz tutmakla alakalı yazıları oku:
    1. Tema kullanımı 🎨
    2. Saklama(cache) 💾
    3. Çoklu dil(multi language) 🇹🇷🇬🇧
    4. Hive kullan ✅
  • Unit testleri yaz. ( ne olduğunu bilmiyorum )
  • Service testleri yaz. ( ne olduğunu bilmiyorum )
  • Tema yönetimi yap. (Custom tema yaz)
  • Widget'ları modüler ve atomic yap. Widget catalog oluştur.
  • Bir sayfada max. 200 satır kod olsun. Fazlaysa parçala, widget'ları dışarı çıkar.
  • Dart Lang Tutorial'ı mutlaka oku.
  • 'Flutter Apperantive' kitabını oku.
  • dart.dev'den Effective Dart bölümünü oku.