Sobes.tech
Junior

K čemu slouží Provider ve Flutteru?

sobes.tech AI

Odpověď od AI

Provider se používá k řízení stavu v aplikacích Flutter. Umožňuje snadný přístup k datům a jejich šíření stromem widgetů. Provider je založen na konceptu děděných widgetů (InheritedWidget), ale nabízí pohodlnější a lehčí API.

Hlavní výhody:

  • Jednoduchost použití: Intuitivní API pro vytváření, poskytování a konzumaci dat.
  • Efektivita: Díky InheritedWidget jsou pouze widgety, které přímo závisí na datech, přestavovány při jejich změně.
  • Testovatelnost: Snadná výměna poskytovatelů při jednotkových testech.
  • Organizace kódu: Pomáhá oddělit obchodní logiku od UI.
  • Škálovatelnost: Vhodné jak pro malé, tak velké projekty.

Případy použití:

  • Přístup k uživatelským datům (například autorizace).
  • Obecné nastavení aplikace.
  • Stav košíku.
  • Data ze sítě nebo databáze.

Příklad použití ChangeNotifierProvider:

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

// Třída, která sleduje změny
class Counter with ChangeNotifier {
  int _count = 0;

  int get count => _count;

  void increment() {
    _count++;
    notifyListeners(); // Oznámí posluchačům o změně
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider( // Poskytuje instanci Counter
      create: (context) => Counter(),
      child: Consumer<Counter>( // Spotřebovává instanci Counter
        builder: (context, counter, child) {
          return Text('Count: ${counter.count}');
        },
      ),
    );
  }
}