https://github.com/tpdlshdmlrkfmcla/flutter-backbutton
Flutter 앱 두 번 뒤로가기로 앱 종료하는 법
https://github.com/tpdlshdmlrkfmcla/flutter-backbutton
backbutton flutter
Last synced: 3 months ago
JSON representation
Flutter 앱 두 번 뒤로가기로 앱 종료하는 법
- Host: GitHub
- URL: https://github.com/tpdlshdmlrkfmcla/flutter-backbutton
- Owner: tpdlshdmlrkfmcla
- Created: 2023-01-25T04:56:14.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-25T06:00:13.000Z (about 3 years ago)
- Last Synced: 2025-06-18T13:58:18.214Z (7 months ago)
- Topics: backbutton, flutter
- Language: C++
- Homepage:
- Size: 288 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# backbutton
```
보통의 앱들은 뒤로가기 버튼을 눌러서 앱 종료를 할 때
사용자들의 앱 종료 의사를 한번 더 물어보고 종료를 합니다.
뒤로가기 버튼을 눌렀을 때 토스트 형식의 메시지를 출력하면서
앱 종료 의사를 한 번더 물어보는 기능을 추가해보았습니다.
뒤로 가기 버튼 한번 -> 토스트 메시지 출력(정말로 종료하시겠습니까?)
토스트 메시지가 출력된 후 2초 안에 뒤로 가기 버튼 한번 더 (앱 종료)
```

## 필요한 패키지 추가
```
토스트 메시지를 띄우기 위한 fluttertoast를
추가하였습니다.
```

## 토스트 함수 로직
```
뒤로가기 한번을 누르고 2초안에 한 번더 누르면 앱이 종료되어야 하기 때문에
현재 시간을 now로 선언하고 difference 메소드를 사용해서 시간 차이를 구해주었습니다.
2초 안에 뒤로가기 버튼을 두 번 누르지 않으면 toast 메시지가 출력됩니다.
```

## WillPopScope의 사용
```
WillPopScope를 사용하면 Scaffold 위젯을 감싸서 뒤로가기 버튼을 가로챌 수 있습니다.
위에서 생성한 함수를 onWillPop 프로퍼티의 값으로 전달하고 onWillPop 함수의 리턴값이 true일때
뒤로가기 버튼이 작용하여 앱이 종료됩니다. false일 때는 화면에 남게 됩니다(2초 동안 뒤로가기 버튼이 안눌러졌을때).
```

## 향후 프로젝트에 어떻게 사용할 것인가?
```
향후 프로젝트에서 메인 페이지에 위의 코드를 util 폴더에 담은 뒤에 사용해서
사용자에게 편의를 줄 수 있을 것으로 예상합니다.
```