[flutter] 플러터에서 훅(hook)을 사용해 데이터 가져오기 기능 구현하기

플러터(Flutter)는 Google에서 개발한 모바일 애플리케이션 프레임워크로, 다양한 기능과 유연성을 제공합니다. 이번에는 플러터에서 훅(hook)을 사용하여 데이터를 가져오는 기능을 구현하는 방법에 대해 알아보겠습니다.

1. 훅(Hook)이란?

은 리액트(React)에서 영감을 받아 만들어진 함수형 컴포넌트에서 상태 관리와 생명주기 기능 등을 사용할 수 있게 해주는 기능입니다. 훅은 함수형 컴포넌트에서 상태를 추가적으로 사용할 수 있도록 해줍니다.

2. flutter_hooks 라이브러리 설치

먼저, flutter_hooks 라이브러리를 사용하여 훅을 활용할 수 있습니다. pubspec.yaml 파일에 아래와 같이 의존성을 추가해줍니다.

dependencies:
  flutter:
    sdk: flutter
  flutter_hooks: ^0.18.0

의존성을 추가하고 나면, 터미널에서 flutter pub get 명령어를 실행하여 업데이트된 패키지를 가져옵니다.

3. 데이터 가져오기 훅 구현하기

이제 실제로 데이터를 가져오는 훅을 구현해보겠습니다. 다음은 간단한 코드 예시입니다.

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Data Fetching with Hook'),
        ),
        body: Center(
          child: FetchData(),
        ),
      ),
    );
  }
}

class FetchData extends HookWidget {
  @override
  Widget build(BuildContext context) {
    // 데이터 가져오는 비즈니스 로직 구현
    final data = useState<String>('Loading...');

    useEffect(() {
      Future.delayed(Duration(seconds: 2), () {
        data.value = 'Fetched Data';
      });
      return null;
    }, const []);

    return Text(data.value);
  }
}

위 코드에서는 ‘flutter_hooks’ 라이브러리를 import 해왔고, FetchData 클래스에서 데이터를 가져오는 비즈니스 로직을 useStateuseEffect를 사용하여 간단하게 구현하였습니다.

이제, 위와 같은 식으로 useStateuseEffect를 활용하여 필요에 맞게 데이터를 가져오는 비즈니스 로직을 구현할 수 있습니다.

훅을 통해 플러터에서 데이터를 가져오는 기능을 구현하는 방법에 대해 간단히 알아보았습니다. flutter_hooks 라이브러리를 활용하면 보다 효율적으로 상태와 생명주기를 관리할 수 있으며, useStateuseEffect를 통해 간편하게 데이터를 가져와 화면에 표시할 수 있습니다.