[flutter] 플러터 Riverpod를 사용하여 앱에 스플래시 화면 기능을 추가하는 방법은 어떻게 되나요?
  1. 먼저, flutter_riverpod 패키지를 pubspec.yaml 파일의 dependencies 섹션에 추가합니다. 이를 위해 다음 코드를 추가하십시오:
dependencies:
  flutter:
    sdk: flutter
  flutter_riverpod: ^0.14.0+3
  1. 앱을 시작하면 보여줄 스플래시 페이지 위젯을 만듭니다. 예를 들어 SplashPage라는 StatelessWidget을 만들어보겠습니다. 다음 코드를 추가하십시오:
import 'package:flutter/material.dart';

class SplashPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: CircularProgressIndicator(),
      ),
    );
  }
}
  1. 앱의 진입점인 main() 함수에서 SplashPage 위젯을 감싸기 위해 ProviderScope 위젯을 추가합니다. 또한 runApp() 함수에서 SplashPage를 대신하여 앱의 다른 페이지 또는 홈페이지를 설정합니다. 다음 코드를 추가하십시오:
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  runApp(
    ProviderScope(
      child: MaterialApp(
        home: SplashPage(),
      ),
    ),
  );
}
  1. 스플래시 화면을 보여주는 동안 초기화 작업을 진행하려면 async 함수를 사용하여 Future.delayed()를 호출합니다. 스플래시 화면이 일정 시간 후에 사라지고 다른 화면으로 이동하도록 설정할 수 있습니다. 예를 들어, init() 함수를 작성하여 2초 후에 다음 페이지로 이동하도록 할 수 있습니다. 다음 코드를 SplashPage 위젯 내에 추가하십시오:
void init(BuildContext context) async {
  await Future.delayed(Duration(seconds: 2));
  // 다른 페이지로 이동하려면 아래 코드를 사용하십시오.
  // Navigator.pushReplacement(
  //   context,
  //   MaterialPageRoute(builder: (context) => NextPage()),
  // );
}
  1. 마지막으로, 스플래시 화면이 보여질 때 init() 함수를 호출하도록 SplashPage 위젯의 build() 메서드 내에서 context를 사용합니다. 다음 코드를 추가하십시오:
@override
Widget build(BuildContext context) {
  init(context);
  return Scaffold(
    body: Center(
      child: CircularProgressIndicator(),
    ),
  );
}

이제 앱을 실행하면 스플래시 화면이 표시되고 일정 시간 후에 다른 페이지로 자동으로 이동합니다. 앱 초기화 작업이 완료되기 전에 보여줄 초기 로딩 화면을 만들어 앱 사용자에게 보다 나은 사용자 경험을 제공할 수 있습니다.

이 문서는 Riverpod를 사용하여 플러터 앱에 스플래시 화면을 추가하는 방법을 설명했습니다. 자세한 내용은 Riverpod 공식 문서를 참조하시기 바랍니다.