Sobes.tech
Junior

Flutter'da Provider ne işe yarar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Provider, Flutter uygulamalarında durumu yönetmek için kullanılır. Verilere erişimi ve bunların widget ağacı boyunca yayılmasını kolaylaştırır. Provider, kalıtılan widget'lar (InheritedWidget) konseptine dayanır, ancak daha kullanışlı ve hafif bir API sunar.

Ana avantajlar:

  • Kullanım kolaylığı: Veri oluşturma, sağlama ve tüketme için sezgisel API.
  • Verimlilik: InheritedWidget sayesinde, yalnızca verilere doğrudan bağlı olan widget'lar, veriler değiştiğinde yeniden oluşturulur.
  • Test edilebilirlik: Birim testleri sırasında sağlayıcıların kolayca değiştirilebilir olması.
  • Kod organizasyonu: İş mantığını ve UI'yi ayırmaya yardımcı olur.
  • Ölçeklenebilirlik: Hem küçük hem de büyük projeler için uygundur.

Kullanım durumları:

  • Kullanıcı verilerine erişim (örneğin, kimlik doğrulama).
  • Uygulama genel ayarları.
  • Sepet durumu.
  • Ağ veya veritabanı verileri.

ChangeNotifierProvider kullanımı örneği:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

// Değişiklikleri izleyen sınıf
class Counter with ChangeNotifier {
  int _count = 0;

  int get count => _count;

  void increment() {
    _count++;
    notifyListeners(); // Dinleyicilere değişiklik hakkında bildirim
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider( // Counter örneği sağlar
      create: (context) => Counter(),
      child: Consumer<Counter>( // Counter örneğini tüketir
        builder: (context, counter, child) {
          return Text('Count: ${counter.count}');
        },
      ),
    );
  }
}