/Flutter-Dart-Helper

Bu repo Flutter ve Dart öğrenenler ve yeni Widget tasarımları görmek isteyen geliştiriciler için hazırlanmış bir çok kaynak ve kişisel deneyimlerle oluşturulmuş Türkçe bir kaynaktır.

Primary LanguageDart

Flutter & Dart Learning and Development Companion

Bu repoyu geliştirmeye devam ediyorum. Sen de katkıda bulunabilirsin. Faydalı pull requestlerini beklyiorum.

Twitter Follow Medium Badge Instagram Badge Open Source Love Stars Badge


❗Bu repoyu Flutter ve Dart'ı yeni öğrenecek olan ve farklı widget tasarımları görmek isteyen kişiler ile paylaşmak için hazrılıyorum. Temel notları anlaşılır ve basit örneklerle açıklayarak yazıyorum. Daha sonra gelişmiş widgetlar hazırlayarak da geliştirmelere devam edeceğim. Repoyu Flutter öğrenmek isteyenler için faydalı bir kayndak haline getirmeye çalışıyorum. Kullanıma hazır widgetlar yazarak pr atabilir ve repoya katkıda bulunabilirsiniz.


💎 Dart Notları

👉 Tüm Dart notları için Tıkla

👉 Algoritma soruları ve çözümleri için Tıkla

👉 Temel Başlangıc için Tıkla

👉 if-else için Tıkla

👉 Operatörler için Tıkla

👉 Switch-Case için Tıkla

👉 Listeler için Tıkla

👉 Map için Tıkla

👉 Methotlar (Fonksiyonlar) için Tıkla

👉 Sınıf yapıları (class, extends, implements...) ve detayları için Tıkla

👉 Extension için Tıkla

👉 Enum yapısı için Tıkla

👉 Gelişmiş Sınıf Yapısı için Tıkla

👉 Custom Operator Yazmak için Tıkla

👉 Mixin için Tıkla

👉 Singleton için Tıkla

👉 Factory Constructor için Tıkla

👉 Eager Singleton için Tıkla

👉 Lazy Singleton için Tıkla

👉 Any - where - contains örnekleri için Tıkla

👉 Join - Map - singleWhere örnekleri için Tıkla

👉 try catch finally için Tıkla

👉 indexOf - add - sort - compareTo için Tıkla

👉 Polymorphism için Tıkla

👉 SOLID kaynağı için Tıkla Medium

👉 SOLID - Single Responsibility Principle (SRP) için Tıkla

👉 SOLID - Open Closed Principle (OSP) için Tıkla

👉 SOLID - Liskov Substitution Principle (LSP) için Tıkla

👉 SOLID - Interface Segregation Principle (ISP) için Tıkla

👉 SOLID - Dependency Inversion Principle (DIP) için Tıkla

👉 Asenkron işlemler (async - future- await) için Tıkla

👉 Asenkron işlemler (sync stream - while - yield) için Tıkla

👉 Exception için Tıkla

👉 Call Back Method için Tıkla

👉 Typedef için Tıkla

👉 Generic için Tıkla


⭐ Flutter Notları

👉 Basit text için Tıkla

👉 Gelişmiş text için Tıkla

👉 SizedBox için Tıkla

👉 Container için Tıkla

👉 Scaffold için Tıkla

👉 Button için Tıkla

👉 Color sınıfı için Tıkla

👉 Statless Widget için Tıkla

👉 Padding kullanımı için Tıkla

👉 Card kullanımı için Tıkla

👉 Temel Image kullanımı için Tıkla

👉 Statefull Widget için Tıkla

👉 Yaşam döngüsü (Life Cycle) için Tıkla

👉 PageVeiw için Tıkla

👉 Text Field için Tıkla

👉 Temel ListView için Tıkla

👉 ListView Builder için Tıkla

👉 Image Enum kullanımı için Tıkla

👉 Navigation Örneğini incelemek için Tıkla

👉 Navigation Kullanımı için Tıkla

👉 Navigation Detay için Tıkla

👉 Tab Bar Advence için Tıkla

👉 Model Örnekleri ve Kullanımı için Tıkla

👉 Model Çeşitleri (Basit-Gelişmiş) için Tıkla

👉 Model Kullanımı için Tıkla

👉 Önerilen Model Örneği için Tıkla

👉 Servis Konu Klasörü için Tıkla

👉 Servis Modeli Örneği için Tıkla

👉 Servisten Veri Çekme (Fetch) Örneği için Tıkla

👉 Servise Veri Gönderme (Post) Örneği için Tıkla

👉 Servise Örneği (Yorumları listeleme) için Tıkla

👉 Paket Kullanımı için Tıkla

👉 Paket Kullanım Örneği için Tıkla

👉 Theme Örneği için Tıkla

👉 Temel Theme Kullanım Örneği için Tıkla

👉 Enum Kullanım Örneği için Tıkla

👉 Atomik Custom Password TextFiled Örneği için Tıkla

👉 Atomik Custom Password TextFiled Kullanımı için Tıkla

👉 Cache - Shared Preferences Örnekleri için Tıkla

👉 Cache - Secure Storage Örneği için Tıkla

👉 Sheet Örnekleri için Tıkla

👉 Temel Sheet Kullanımı için Tıkla

👉 Gelişmiş Sheet Kullanımı için Tıkla

👉 Alert Dialog Çeşitleri için Tıkla

👉 Generic (Temel) için Tıkla

👉 Part - Part of yöntemi için Tıkla

👉 Callback Yöntemleri Kullanım Sayfası için Tıkla

👉 Callback Dropdown Menu için Tıkla

👉 Callback Buton için Tıkla

👉 Custom Loading Buton için Tıkla

👉 Gelişmiş Tab Bar (Feed Screen ile) için Tıkla

👉 Gelişmiş Feed Screeen (AutomaticKeepAliveClientMixin) için Tıkla

👉 Servisten Gelen Renk Kodunu Parse Etme için Tıkla

👉 Gelişmiş Servis ile Demo uygulama (Provider ile) için Tıkla

👉 Provider mopdeli oluşturma örneği için Tıkla

👉 Provider ile tema değişikliği için Tıkla

👉 Modelde JsonSerializable kullanma örneği için Tıkla

👉 Modelde Equatable kullanma örneği için Tıkla

👉 build_runner ile oluşturulan model için Tıkla

👉 Lottie ile Animasyon için Tıkla

👉 Lottie ile Tema butonu için Tıkla

👉 Singleton Sınıf Yapısı için Tıkla

👉 Liste Testleri için Tıkla

👉 Navigator Route Sınıfı için Tıkla

👉 Navigator ve Route Kullanım Örnekleri için Tıkla

👉 Custom Navigator Route Mixin Sınıfı için Tıkla

Devamı Hazırlanıyor...


🚀 Hazır Widgetlar


👉 Drawer Menu için Tıkla

drawerGIF


👉 Login Screen için Tıkla

loginGIF


👉 Loading Bar için Tıkla

loadingGIF


👉 Bottom Nav Bar için Tıkla

bottomnavbar


👉 Hidden Drawer Menu için Tıkla

hidden_drawer


👉 Bottom NavBar (selected index) için Tıkla

bottom


👉 Slidable Widget (Kaydırılabilir liste) için Tıkla

Adsız tasarım


👉 Özel Loading Animasyonu için Tıkla

Adsız tasarım


Devamı gelecek...


⚡ Algoritma Örnekleri

👉 Tüm algoritma soruları ve çözümleri için Tıkla

👉 Sayının tek çift kontrolü örneği için (Temel) Tıkla

👉 Liste uzunluğu döngüsü örneği için (Temel) Tıkla

👉 İkili Toplama örneği için Tıkla

👉 Polindrom Sayı örneği için Tıkla

👉 Romen Rakamından Int'e Çevirme Örneği için Tıkla

👉 En uzun Ortak Başlangıç Metni Örneği için Tıkla

👉 Parantez Eşleşmesi Örneği için Tıkla

👉 İki Listeyi Birleştirme Örneği (Linked Lists) için Tıkla

👉 Diziden Aynı Elemanları Kaldırma Örneği (Linked Lists) için Tıkla

Devamı gelecek (Açıklamalı gelişmiş algoritma örnekleri)...


📝 Medium Yazıları

👉 Solid Prensipleri için Tıkla

Devamı gelecek...



❓ Nasıl inceleyebilirim ❓

Bu repoyu Dart ve Flutter öğrenirken ya da farklı ve kişiselleştirilmiş widget tasarımlarını keşfederken GitHub'dan inceleyebilrisin. Daha detaylı bir inceleme için kişisel bilgisayarına indirebilirsin.

Projeyi indirdikten sonra VS Code ya da herhangi bir ide üzerinde açın. (Gerekli Flutter ve Dart SDKları bilgisayarınızda kurulu olmalıdır.)

Projeyi açtıktan sonra bir çok hata ile karşılaşacaksınız, terminalde aşağıdaki komutu çalıştırarak gerekli paketleri projeye dahil ediniz.

flutter pub get

Projeyi VC Code üzerinden ya da aşağıdaki komutu çalıştrarak ide üzerinde Debug Console'da eğer hata görüyorsanız hataları daha detaylı görebilir ve inceleyebilrisiniz.

flutter run

Geçerli Flutter veya Dart sürümünüz proje ile uyumlu değilse internet üzerinde kısa bir arama ile Flutter - Dart sürümünüzü ya da projedeki sürümü güncelleyebilrisiniz.

Eğer projeye katkıda bulunacaksanız, bir pull request oluşturacaksanız lütfen projenin mevcut sürümünü değiştirmemeye özen gösterin. Bu işlem ana repo tarafından gerekli zamanda yapılacaktır.

Eğer projeyi bilgisayarında çalışırdıktan sonra bir ekranı emulatmrunde görmek istiyorsan. main.dart kodlarından aşağıdaki değişikliği yapman gerekecektir:

import 'package:flutter/material.dart';
import 'package:flutter_full_learn_one/202/theme/light_theme.dart';
import '202/package_learn_view.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: LightTheme().theme,
      home: PackageLearnView(),
    );
  }
}

Yukarıdaki main kodlarında home: PackageLearnView kısmındaki PackageLearnView widget isminin yerine, çalıştırmak istediğiniz widgetin ismini yazabilrsiniz.

Örneğin aşağıdaki widgetin ismini ColorsLearnView olarak home kısmına yazarbilir ve bu widgetin emulatorde çalılşmasını sağlayabilrisiniz.

import 'package:flutter/material.dart';

class ColorsLearnView extends StatelessWidget {
  const ColorsLearnView({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Color Learning'),
      ),
      body: Container(
          //color: Theme.of(context).colorScheme.error, arkaplan container rengi
          child: Text(
        'dasd',
        style: Theme.of(context)
            .textTheme
            .titleMedium
            ?.copyWith(color: Theme.of(context).colorScheme.error),
      )),
    );
  }
}
class ItemsColor {
  static final renk1 = Color.fromARGB(255, 113, 207, 47);
}

Forklayarak üzerinde değişiklikler yapabilr ve yeni PRlar oluşturarak repoya katkıda bulunabilirsin. Tasarladığın widgetları ya da öğretici yorumlarını ve kodlarını topluluk ile paylaşabilirsin.

Unutma ki repoyu geliştirmek, daha okunabilir ve düzenli hale getirmek için çalışıyorum.

⭐ Repoyu yıldızlayarak daha sonradan kolayca erişebilirsin. Sen de katkıda bulunarak bu topluluğa destek olabilir ve öğrenmek isteyen kişilere fayda sağlayabilirsin.⭐


❗ Katkıda bulunmadan önce oku ❗

Eğer kendi tasarladığın widgeti paylaşmak istiyorsan lütfen "ready_custom_widgets/lib/feature" içerisinde kendine ait bir klasör oluşturarak eklemelerini bu klasörde yap ve pull request oluştur.
(Örnek olarak burayı inceleyebilirsin. )

Eğer Flutter ya da Dart notlarına ekleme yapacaksan; mevcut kodlar üzerinde eklemelerini yorum satırlarıyla belirterek yapabilirsin fakat repoda ele alınmamış bir konuyu kendi yorumlarınla anlatmak istiyorsan lütfen Dart_Notes klasörü içinde konuyla alakalı bir klasör aç ve geliştirmelerini burada yaparak pull request oluştur.
Bunun aynısı Flutter notları için de geçerli.

Gerekli incelemelerden sonra eğer katkıların faydalıysa merge edilecektir, düzenlemen gereken şeyler olur ise pull requestinde yorum olarak belirilecektir.


Tools & Languages

Langs

Topluluk ile öğren, katkıda bulun.

Eklemek istediğiniz özellikleri yeni bir proje içeirisine detaylıca açıklayarak ya da mevcut flutter projesi içierisinde feature klasörü içerisine ekleyiniz.

giphy


📦 Kaynaklar 📦

Kendi deneyerek ve araştırarak öğrendiklerim.
HardwareAndro (Youtube)
flutter.dev (Flutter Dökümantasyon)
dart.dev (Dart Dökümantasyon)
youtube (Bir çok kanal ve tutorial)
mitchkoko (Youtube)

❗NOT: Henüz bir çok içeriği eklemedim. Adım adım her gün eklemeler yaparak ilerliyorum. Sizler de katkıda bulunarak süreci daha verimli bir hale getirebilirsiniz.