Ana içeriğe atla

Başlarken

Riverpod'u çevrimiçi deneyin​

Riverpod'u tanımak için Dartpad ü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.3

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