İÇİNDEKİLER
İçindekiler
Önsöz 5
Bölüm 1
DART PROGRAMLAMA
1. DART PROGRAMLAMA DİLİ 15
1.1 Değişkenler 15
1.1.1 Değişken tanımlama 15
1.1.2 Değişken Türleri 16
1.1.3 Metin (String) Veri Tipinin Sayı Veri Tiplerine Dönüşümü 17
1.1.4 Sayı Veri Tiplerinin Metin (String) Veri Tipine Dönüşümü 18
1.1.5 Değişkenlerde İşlemler 18
1.2 Listeler 20
1.2.1 Listelerin Metotları 22
1.3 Maps – Sözlükler 23
1.4 Akış Kontrolleri – Karar Yapıları 26
1.4.1 if–else Yapısı 26
1.4.2 İç İçe if Yapısı 27
1.4.3 Tek Satırda Kontrol İfadeleri –Ternary 27
1.5 Döngüler 28
1.5.1 For Döngüsü 28
1.5.2 While Döngüsü 30
1.5.3 forEach Döngüsü 30
1.6 Null Safety 31
1.7 Fonksiyonlar 33
1.7.1 Geriye Değer Döndürmeyen Fonksiyonlar 34
1.7.2 Parametreli Fonksiyonlar 34
1.7.3 Geriye Değer Döndüren Fonksiyonlar 35
1.7.4 İsimli Parametre Alan Fonksiyonlar 36
1.7.5 Şişman Oklu Fonksiyonlar 36
1.7.6 Anonim Fonksiyonlar 36
1.7.7 Asenkron Fonksiyonlar 37
1.7.8 get ve set Fonksiyonları (Değer Döndüren ve Değer Alan Fonksiyonlar) 39
1.8 Hata Yakalama Bloğu / Try – Catch 39
1.9 Sınıf & Nesneler / Class & Objects 40
1.9.1 Yapıcılar – Constructor 41
1.9.2 “this” Komutu Kullanımı 42
1.9.3 Yapıcıya İsimli Parametre İle Değer Gönderme 43
1.9.4 Kalıtım 44
1.9.5 Overriding 45
1.9.6 İsimli Yapıcılar (named constructor) 46
1.9.7 Factory Yapıcılar (Yönlendirici Yapıcılar) 48
1.9.8 Composition – Bir Sınıftan Başka Bir Sınıfa Erişim 50
Bölüm 2
FLUTTER
2. FLUTTER 53
2.1 Flutter’ın Genel Özellikleri 53
2.2 Widgetlar 53
2.2.1 Renk Widgetları – Color Widget 54
2.2.2 Metin Widgetları– Text Widget 55
2.2.2.1 Text 55
2.2.2.2 textDirection 55
2.2.2.3 textAlign 55
2.2.2.4 TextDecoration.lineThrough 56
2.2.2.5 style 56
2.2.3 Zengin Text Widget – RichText Widget 56
2.2.3.1 TextSpan 56
2.2.3.2 recognizer 56
2.2.4 Merkeze Alma Widget’ı – Center Widget 58
2.2.5 Sütun Widget’ı – Column Widget 58
2.2.5.1 crossAxisAlignment 58
2.2.5.2 mainAxisAlignment 58
2.2.6 Satır Widget’ı – Row Widget 59
2.2.6.1 crossAxisAlignment 59
2.2.6.2 mainAxisAlignment 59
2.2.7 Wrap Widget 59
2.2.7.1 spacing 59
2.2.7.2 runSpacing 59
2.2.7.3 alignment 59
2.2.8 Flexible Widget 60
2.2.9 Kutu Widget – Container Widget 60
2.2.9.1 decoration: BoxDecoration 60
2.2.10 Boşluk Ayarlamaları ve Boyutlandırma Widgetları 62
2.2.10.1 Margin Widget 62
2.2.10.2 Padding Widget 63
2.2.10.3 IntrinsicHeight Widget 63
2.2.10.4 mainAxisSize Widget 64
2.2.10.5 Expanded Widget 64
2.2.10.6 width: double.infinity Widget 64
2.2.10.7 height: MediaQuery.of(context).size.height Widget 64
2.2.10.8 SizedBox Widget 64
2.2.10.9 SafeArea (Güvenli Alan) Widget 65
2.2.10.10 RotatedBox Widget 65
2.2.10.11 İnfinity Widget 65
2.2.10.12 MediaQuery Widget 65
2.2.10.13 Fit Widget 66
2.2.10.14 En Boy Oranlama – AspectRatio Widget 73
2.2.11 Görüntü İşlem Widgetları – Image Widget 74
2.2.11.1 Image.asset 74
2.2.11.2 Image.network 78
2.2.11.3 CircleAvatar 79
2.2.11.4 FadeInImage 80
2.2.11.5 FlutterLogo 80
2.2.11.6 Text Placeholder 81
2.2.11.7 AspectRatio 81
2.2.11.8 Image.file 81
2.2.12 Durumsuz Widget – Stateless Widget 81
2.2.13 Durumlu Widget – Statefull Widget 83
2.2.13.1 State Yapısı 83
2.2.13.2 initState() Kullanımı 84
2.2.13.3 dispose() kullanımı 84
2.2.13.4 SetState Yapısı 84
2.2.14 Buton Widgetlar 85
2.2.14.1 floatingActionButton 85
2.2.14.2 Elevated Button 90
2.2.14.3 ElevatedButton.icon 92
2.2.14.4 TextButton 94
2.2.14.5 IconButton 94
2.2.14.6 ButtonBar 95
2.2.14.7 OutlinedButton 97
2.2.15 Nesnelere Tıklama Özelliği Kazandırma 100
2.2.15.1 GestureDetector Widget 100
2.2.15.2 Inkwell Widget 102
2.2.16 Diyalog Pencereleri 105
2.2.16.1 AlertDialog Widget 105
2.2.16.2 SimpleDialog Widget 107
2.2.16.3 SnackBar Widget 109
2.2.17 Kırpma İşlemleri 111
2.2.17.1 ClipRect Widget 111
2.2.17.2 ClipRRect Widget 113
2.2.17.3 ClipOval Widget 115
2.2.17.4 ClipPath Widget 116
2.2.18 Liste Kutucuğu – ListTile Widget 118
2.2.19 Card Widget 120
2.2.20 Flutter Liste Yapıları 122
2.2.20.1 ListView Widget 122
2.2.20.2 ListView.Builder Widget 124
2.2.20.3 Çok Boyutlu Listeler – GridView Listeler 126
2.2.20.3.1 GridView.Count Widget 126
2.2.20.3.2 GridView.extent Widget 129
2.2.20.3.3 GridView.builder Widget 132
2.2.20.4 Özel Listeler – CustomScrollView Widget 134
2.2.20.4.1 SliverAppBar 134
2.2.21 Yandan Açılan Çekmece – Drawer Widget 146
2.2.22 Sayfalar Arası Geçiş – Navigator Widgetları 148
2.2.22.1 Navigator.push Widget 148
2.2.22.2 Navigator.pop Widget 149
2.2.22.3 Navigator.pushment Widget 153
2.2.22.4 Navigator.popUntil Widget 153
2.2.22.5 Navigator.pushAndRemoveUntil Widget 153
2.2.22.6 Rotalar – Routes 154
2.2.22.7 Navigator.pushNamed Widget 154
2.2.23 Genişletebilir Kutucuklar – Expansiontile Widget 159
2.2.24 Üst Sekmeler – TabBar ve TabBarView Widget 162
2.2.24.1 TabBar 162
2.2.24.2 TabBarView 163
2.2.24.3 TabPageSelector 163
2.2.25 Alt Sekmeler – Bottom Navigation Bar Widget 166
2.2.26 Kaydırılabilir Sayfalar – PageView Widget 171
2.2.27 Yığın İşlemleri – Stack Widget 174
2.2.28 Form İşlemleri 176
2.2.28.1 Form Widget 176
2.2.28.2 TextFormField Widget 177
2.2.28.3 CheckBoxListTile Widget 185
2.2.28.4 RadioListTile Widget 189
2.2.28.5 SwitchListTile Widget 193
2.2.28.6 Slider Widget 195
2.2.28.7 DropdownButton Widget 198
2.2.29 Tarih ve Saat İşlemleri 209
2.2.29.1 Sistem Saati – DateTime.now() Widget 209
2.2.29.2 Tarih Seçme – ShowDatePicker Widget 211
2.2.29.3 Saat Seçme – ShowTimePicker Widget 211
2.2.30 Sayfayı Yenileme – RefreshIndicator Widget 214
E–TİCARET SİTESİ UYGULAMASI 216
Bölüm 3
FIREBASE VERİ TABANI
3. UZAK VERİTABANI İŞLEMLERİ – FIREBASE 241
3.1 Firebase Projesi Oluşturma 241
3.2 Veri Tabanını Oluşturma 246
3.3 Veri İşlemleri – Firestore Database 246
3.3.1. Tüm Kayıtları Listeleme 248
3.3.2. Tek Bir Veri Listeleme 251
3.3.3. Bilgileri Sıralayarak Listeleme – orderBy 253
3.3.4. Sorgu Oluşturarak Bilgilere Ulaşmak 255
3.3.5. Çoklu Sorgu Oluşturarak Bilgilere Ulaşmak 257
3.3.6. Gecikmeli Gelen Veriler – FutureBuilder 259
3.3.7. Canlı Yayınla Gelen Veriler – Stream Builder 262
3.3.8 Veri Tabanına Kayıt Ekleme 265
3.3.9 Kayıt Güncelleme 269
3.3.10 Kayıt Silme 271
3.4 Giriş/Çıkış İşlemleri – Authentication Servisi 273
3.4.1. Anonim (Anonymous) Giriş İşlemleri 273
3.4.2. Sağlayıcı – Provider 274
3.4.3. E–mail ve Şifre ile Giriş/Çıkış İşlemleri ve Şifre Sıfırlama 278
3.4.4. Google Hesabı ile Giriş Yapma 294
3.5. Fotoğraf ve Video Depolama – Storage Servisi 299
3.5.1 Fotoğraf Makinesiyle Fotoğraf Çekmek 301
3.5.2 Galeriden Fotoğraf Seçmek 301
3.5.3 Storage Servisinden Fotoğraf/Video Silme 301
ÖĞRENCİ İŞLEMLERİ MOBİL UYGULAMASI 308
Kaynakça 359
Kavramlar Dizini 361 |