[flutter] 플러터에서의 bloc 패턴으로 샘플 데이터 생성하기

이번 블로그에서는 Flutter 앱에서 Bloc 패턴을 사용하여 샘플 데이터를 생성하는 방법에 대해 알아보겠습니다.

Bloc 패턴이란?

Bloc(Business Logic Component) 패턴은 Flutter 앱에서 데이터 흐름을 관리하기 위한 디자인 패턴 중 하나입니다. 이 패턴을 사용하면 코드를 모듈화하고 효율적으로 관리할 수 있으며, 앱의 상태 관리를 단순하게 만들어줍니다.

샘플 데이터 생성하기

class SampleDataBloc {
  final _sampleDataController = StreamController<List<String>>();

  Stream<List<String>> get sampleData => _sampleDataController.stream;

  void fetchSampleData() {
    List<String> data = ['Apple', 'Banana', 'Cherry'];
    _sampleDataController.sink.add(data);
  }

  void dispose() {
    _sampleDataController.close();
  }
}

위의 코드는 SampleDataBloc 클래스를 정의하고, StreamController를 사용하여 샘플 데이터를 생성하는 방법을 보여줍니다. fetchSampleData 함수를 호출하면 샘플 데이터가 생성되고, 이 데이터는 sampleData 스트림을 통해 앱의 다른 부분으로 전달됩니다.

Bloc 사용하기

class SamplePage extends StatelessWidget {
  final _bloc = SampleDataBloc();

  @override
  void initState() {
    super.initState();
    _bloc.fetchSampleData();
  }

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: _bloc.sampleData,
      builder: (context, snapshot) {
        if (!snapshot.hasData) {
          return CircularProgressIndicator();
        }
        return ListView.builder(
          itemCount: snapshot.data.length,
          itemBuilder: (context, index) {
            return ListTile(
              title: Text(snapshot.data[index]),
            );
          },
        );
      },
    );
  }

  @override
  void dispose() {
    _bloc.dispose();
    super.dispose();
  }
}

위의 코드는 SamplePage에서 SampleDataBloc을 사용하여 샘플 데이터를 가져오고, 해당 데이터를 화면에 표시하는 방법을 보여줍니다. Bloc 패턴을 사용하면 데이터 관리와 UI 간의 분리가 용이해지며, 코드의 가독성과 유지보수성이 향상됩니다.

이상으로 Flutter에서의 Bloc 패턴을 사용하여 샘플 데이터를 생성하는 방법에 대해 알아보았습니다. Bloc 패턴을 사용하면 앱의 상태 관리와 데이터 흐름을 효율적으로 관리할 수 있으며, 앱의 성능과 코드의 품질을 향상시킬 수 있습니다.

참고자료: flutter_bloc 패키지