Ana içeriğe atla

Başlarken

Riverpod'u çevrimiçi deneyin

Riverpod'u tanımak için Dartpad veya Zapp üzerinde çevrimiçi deneyebilirsiniz:

Paketi kurmak

Riverpod, kendi başına yeterli olan bir ana "riverpod" paketi olarak gelir; buna kod üretimi (Kod üretimi hakkında) ve hook'lar (Hook'lar hakkında) için isteğe bağlı paketler eşlik eder.

Hangi paket(ler)i kurmak istediğinizi belirledikten sonra, bağımlılığı uygulamanıza tek satırda şu şekilde ekleyin:

flutter pub add flutter_riverpod

Alternatif olarak, bağımlılığı pubspec.yaml dosyanızdan elle de ekleyebilirsiniz:

pubspec.yaml
name: my_app_name
environment:
sdk: ^3.7.0
flutter: ">=3.0.0"

dependencies:
flutter:
sdk: flutter
flutter_riverpod: ^3.4.1

Ardından paketleri flutter pub get ile kurun.

bilgi

Kod üretimi kullanıyorsanız, kod üreticisini şu komutla çalıştırabilirsiniz:

dart run build_runner watch -d

Hepsi bu kadar. Riverpod'u uygulamanıza eklediniz!

riverpod_lint'i etkinleştirmek

Riverpod, daha iyi kod yazmanıza yardımcı olacak lint kuralları ve özel yeniden düzenleme (refactoring) seçenekleri sunan, isteğe bağlı bir riverpod_lint paketiyle birlikte gelir.

Riverpod_lint, analysis_server_plugin kullanılarak geliştirilmiştir. Bu nedenle analysis_options.yaml üzerinden kurulur.

Kısacası, pubspec.yaml dosyanızın yanına bir analysis_options.yaml oluşturun ve şunu ekleyin:

analysis_options.yaml
plugins:
riverpod_lint: <https://pub.dev/packages/riverpod_lint adresindeki en son sürüm>

Artık Riverpod'u kullanırken hata yaptığınızda IDE'nizde uyarılar görmelisiniz.

Uyarıların ve yeniden düzenleme seçeneklerinin tam listesi için riverpod_lint sayfasına göz atın.

Kullanım örneği: Merhaba dünya

Riverpod'u kurduğumuza göre artık kullanmaya başlayabiliriz.

Aşağıdaki kod parçaları, yeni bağımlılığımızı kullanarak nasıl bir "Merhaba dünya" yazılacağını gösteriyor:

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

// Bir değer saklayacak (burada "Hello world") bir "provider" oluşturuyoruz.
// Bir provider kullanmak, sunulan değeri sahteleyebilmemizi/geçersiz kılabilmemizi sağlar.
final helloWorldProvider = Provider((_) => 'Hello world');

void main() {
runApp(
// Widget'ların provider'ları okuyabilmesi için tüm uygulamayı bir
// "ProviderScope" widget'ı ile sarmalamamız gerekir.
// Provider'larımızın durumu burada saklanır.
ProviderScope(
child: MyApp(),
),
);
}

// Riverpod tarafından sunulan ConsumerWidget'tan türetin, StatelessWidget'tan değil
class MyApp extends ConsumerWidget {

Widget build(BuildContext context, WidgetRef ref) {
final String value = ref.watch(helloWorldProvider);

return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Example')),
body: Center(
child: Text(value),
),
),
);
}
}

Ardından uygulamayı flutter run ile başlatın.
Bu, cihazınızda "Hello world" yazısını gösterecektir.

Daha ileriye: kod parçacıklarını kurmak

Flutter ve VS Code kullanıyorsanız Flutter Riverpod Snippets eklentisini değerlendirin.

Flutter ve Android Studio veya IntelliJ kullanıyorsanız Riverpod Gen Shortcuts ya da Flutter Riverpod Snippets eklentisini değerlendirin.

Örnek: Üreticiyi kullanmak - Riverpod Stream (riverpodStream) riverpod-class

Örnek: Üreticiyi kullanmak - Riverpod Class (riverpodClassKeepAlive) riverpod-stream

Flutter Riverpod Snippets img