🧭

네비게이션 기초

push/pop과 Named Routes로 화면 이동하기

Flutter의 네비게이션은 Stack 자료구조 기반입니다. Navigator.push()로 새 화면을 쌓고, pop()으로 이전 화면으로 돌아갑니다.

Named Routes를 사용하면 MaterialApp의 routes 맵에서 경로를 관리하고, Navigator.pushNamed('/detail')처럼 문자열로 이동할 수 있습니다.

복잡한 앱에서는 go_router 같은 선언적 라우팅 패키지를 사용하는 것이 권장됩니다.

구현 순서

1

Navigator.push()로 새 화면 이동 + pop()으로 돌아가기

2

MaterialApp의 routes 속성으로 Named Routes 설정

3

화면 간 데이터 전달: 생성자 파라미터 또는 arguments 사용

4

WillPopScope로 뒤로가기 인터셉트 (저장되지 않은 변경사항 확인 등)

장점

  • 직관적인 스택 기반 모델
  • 내장 기능으로 추가 패키지 불필요 (기본 사용)

단점

  • Named Routes는 타입 안전하지 않음 (문자열 기반)
  • 딥링크, 웹 URL 지원이 제한적

사용 사례

마스터-디테일 패턴 (리스트 → 상세 페이지) 로그인/회원가입 플로우

참고 자료