[flutter] 플러터의 useNavigation 훅(hook)을 이용한 화면 이동 관리

플러터(Futter) 앱에서 화면 간의 이동은 매우 중요합니다. 이러한 화면 이동을 관리하기 위해 플러터 2.5부터는 useNavigation 훅이 도입되었습니다. 이 훅을 통해 간단하면서도 효과적으로 화면 이동을 관리할 수 있습니다.

useNavigation 훅이란?

useNavigation 훅은 플러터에서 화면 이동을 관리하는 데 사용되는 훅입니다. 이를 통해 화면 간의 이동, 화면에 데이터를 전달하거나 받는 등 다양한 화면 관련 작업을 수행할 수 있습니다.

useNavigation 훅 사용하기

다음은 useNavigation 훅을 사용하여 화면 이동을 관리하는 간단한 예제 코드입니다.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final navigation = useNavigation();

    return Scaffold(
      appBar: AppBar(
        title: Text('Home'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            navigation.pushReplacement(NextScreen());
          },
          child: Text('Go to next screen'),
        ),
      ),
    );
  }
}

class NextScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final navigation = useNavigation();

    return Scaffold(
      appBar: AppBar(
        title: Text('Next'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            navigation.pop();
          },
          child: Text('Go back'),
        ),
      ),
    );
  }
}

위 예제 코드에서는 useNavigation 훅을 사용하여 HomeScreen과 NextScreen 간의 화면 이동을 관리합니다. HomeScreen에서는 pushReplacement 메서드를 사용하여 NextScreen으로 이동하고, NextScreen에서는 pop 메서드를 사용하여 이전 화면으로 돌아갑니다.

마무리

useNavigation 훅을 사용하면 플러터 앱에서 화면 관리를 훨씬 효율적으로 처리할 수 있습니다. 해당 훅을 사용하여 화면 이동 및 관리를 보다 쉽고 간편하게 수행할 수 있으므로, 플러터 앱 개발 시 이를 활용해 보는 것을 권장합니다.

더 많은 정보를 원하시면 플러터 공식 문서를 참고해 주세요.