CodeBlanks Logo Icon CodeBlanks

Riverpod nedir?

Riverpod'un Provider'ın güvenli alternatifi olduğunu öğrenirsin.

Riverpod nedir?

Riverpod, Provider paketinin güvenli ve test edilebilir alternatifidir. Provider'ın aksine BuildContext'e bağlı değildir; ref ile her yerden erişilir. Build-time hatalarını azaltır ve dağıtımı zorunlu kılar.

import 'package:flutter_riverpod/flutter_riverpod.dart';

Uygulama kökü ProviderScope ile sarılır.

ProviderScope ve ref

ProviderScope uygulamanın kökünü sarmalar ve her provider'ın yaşam döngüsünü yönetir. ref, provider'lara erişmek için kullanılan nesnedir; ref.watch ve ref.read yöntemleriyle kullanılır.

void main() {
  runApp(ProviderScope(child: MyApp()));
}

Provider'lar en üst seviyede tanımlanır.

Uygulama Riverpod içe aktar ve kök sarmala

flutter_riverpod paketini içe aktar. main'de ProviderScope ile kökü sar. main içinde print('riverpod hazır') çağır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';
// flutter_riverpod paketini içe aktar

void main() {
  print('riverpod hazır');
  // ProviderScope ile kök sarmala
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(body: Center(child: Text('Merhaba Riverpod'))),
    );
  }
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  print('riverpod hazır');
  runApp(ProviderScope(child: MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(body: Center(child: Text('Merhaba Riverpod'))),
    );
  }
}

Beklenen çıktı

riverpod hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Riverpod, Provider paketine göre hangi avantaja sahiptir?

  • Hot reload'u devre dışı bırakır
  • Material widget'larını kaldırır
  • BuildContext'e bağlı değildir Doğru cevap
  • Daha küçük APK üretir

Açıklama: Riverpod BuildContext'e bağlı değildir; ref ile her yerden erişilir. Bu nedenle BuildContext'e bağımlı Provider paketinden daha güvenlidir.

2 ProviderScope ile kök sarmala

Soru
void main() {
  runApp(____(child: MyApp()));
}
Cevap
void main() {
  runApp(ProviderScope(child: MyApp()));
}

Açıklama: Riverpod'da uygulama kökü ProviderScope ile sarılır; bu, provider'ların yaşam döngüsünü yönetir.

3 Riverpod parçaları

Kavram Anlamı
Riverpod Provider'a güvenli alternatif paket
ProviderScope Uygulama kökünü sarmalayan widget
ref Provider'lara erişim nesnesi
BuildContext'ten bağımsız Riverpod'un temel avantajı

Orta seviye bölümündeki tüm dersler