Proje iskeleti
- Flutter kursu
- Orta seviye
- Ders 81/99
- 4 dk
Not uygulamasının iskeletini ve modelini kurarsın.
Note model sınıfı
Not uygulamasının verisini tutmak için bir Note model sınıfı tanımlarsın. Alanlar final olur; id, baslik ve icerik gibi temel bilgileri saklar. fromJson ve toJson metodları ile JSON'a çevrim yaparsın; böylece notu ileride kalıcı olarak saklamak kolaylaşır.
class Note {
final String id;
final String baslik;
final String icerik;
Note(this.id, this.baslik, this.icerik);
Map<String, dynamic> toJson() => {
'id': id,
'baslik': baslik,
'icerik': icerik,
};
}Scaffold iskeleti
Not uygulamasının ekranı Scaffold üzerine kurulur. AppBar başlığı gösterir, gövde notları listeler ve FloatingActionButton yeni not ekleme akışını başlatır. Model henüz boş olsa da iskelet hazırdır.
class NoteScreen extends StatelessWidget {
const NoteScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Notlar')),
body: const Center(child: Text('Henüz not yok')),
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: const Icon(Icons.add),
),
);
}
}Uygulama Note modelini tanımla
Note sınıfını tanımla: final String id, final String baslik ve final String icerik alanları olsun. toJson metodu ekleyip bu üç alanı içeren bir Map döndürsün. main içinde bir Note nesnesi oluştur ve baslik alanını yazdır.
Başlangıç kodu
// Note sınıfını tanımla
// id, baslik ve icerik alanları final olsun
// toJson metodunu ekle
void main() {
// bir Note oluştur ve baslik'ını yazdır
}Örnek çözüm
class Note {
final String id;
final String baslik;
final String icerik;
Note(this.id, this.baslik, this.icerik);
Map<String, dynamic> toJson() => {
'id': id,
'baslik': baslik,
'icerik': icerik,
};
}
void main() {
final n = Note('1', 'Alışveriş', 'Süt ve ekmek');
print(n.baslik);
}Beklenen çıktı
Alışveriş
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Note modelindeki alanlar neden final olarak bildirilir?
- Nesne oluşturulduktan sonra değişmezlik sağlamak için Doğru cevap
- Veritabanı bağlantısı kurmak için
- Animasyon süresini belirtmek için
- UI çizimini hızlandırmak için
Açıklama: final alanlar nesne oluşturulduktan sonra değiştirilemez; bu da verinin tutarlı kalmasını sağlar. UI hızı, veritabanı bağlantısı ve animasyon süresi final ile ilgili değildir.
2 toJson metodu
class Note {
final String id;
final String baslik;
final String icerik;
Note(this.id, this.baslik, this.icerik);
Map<String, dynamic> ____() => {'id': id, 'baslik': baslik, 'icerik': icerik};
}
class Note {
final String id;
final String baslik;
final String icerik;
Note(this.id, this.baslik, this.icerik);
Map<String, dynamic> toJson() => {'id': id, 'baslik': baslik, 'icerik': icerik};
}
Açıklama: toJson metodu modeli Map'e çevirir; bu Map daha sonra jsonEncode ile dizeleştirilebilir. fromJson Map'ten nesne üretir, encode bir fonksiyon adıdır ama metot adı değildir, save genel bir isimdir.
3 Note modeli ve iskelet
| Kavram | Anlamı |
|---|---|
class Note |
model sınıfı |
final String id |
değişmez alan |
toJson |
Map'e çevirme |
Scaffold |
ekran iskeleti |