[flutter] 플러터 Drawer를 사용하여 로그인 및 회원가입 기능을 구현하는 방법은?

플러터는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, 다양한 기능과 플러그인을 제공합니다. 이번에는 플러터의 Drawer 위젯을 사용하여 로그인 및 회원가입 기능을 구현하는 방법에 대해 알아보겠습니다.

1. 프로젝트 설정

프로젝트를 생성하고 필요한 의존성(dependencies)을 추가하세요. pubspec.yaml 파일에 다음 의존성을 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  # 다른 필요한 의존성들...

의존성을 추가한 후, flutter packages get 명령을 통해 의존성을 설치해주세요.

2. Drawer 위젯 추가하기

Drawer 위젯은 Scaffold 위젯의 drawer 속성을 통해 추가할 수 있습니다. Scaffold 위젯의 drawer 속성에는 Drawer 위젯을 할당하여 로그인 및 회원가입 메뉴를 추가할 수 있습니다.

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('My App'),
        ),
        drawer: Drawer(
          child: ListView(
            padding: EdgeInsets.zero,
            children: <Widget>[
              DrawerHeader(
                child: Text('My App'),
                decoration: BoxDecoration(
                  color: Colors.blue,
                ),
              ),
              ListTile(
                title: Text('로그인'),
                onTap: () {
                  // 로그인 기능 구현
                },
              ),
              ListTile(
                title: Text('회원가입'),
                onTap: () {
                  // 회원가입 기능 구현
                },
              ),
            ],
          ),
        ),
        body: Container(
          child: Center(
            child: Text('내용'),
          ),
        ),
      ),
    );
  }
}

위 코드에서는 Drawer 위젯에 ListView를 사용하여 여러 항목을 추가합니다. DrawerHeader 위젯은 Drawer 상단에 헤더를 표시하고, ListTile 위젯은 각각 “로그인”과 “회원가입” 항목을 나타냅니다.

3. 기능 구현하기

로그인 및 회원가입 항목을 탭할 때 실행되는 함수를 구현해야 합니다. 여기서는 기능 구현을 간단히 표시하였으며, 실제로는 원하는 동작을 수행하는 코드를 작성해야 합니다.

onTap: () {
  // 로그인 기능 구현
  Navigator.pop(context); // Drawer 닫기
},

로그인 기능이나 회원가입 기능을 수행한 후, Drawer를 닫기 위해 Navigator.pop(context) 함수를 호출합니다. 이렇게 하면 Drawer가 닫히고 다시 본문(content)으로 돌아갑니다.

4. 실행 확인하기

위의 코드를 main.dart 파일에 작성하고 실행하면 로그인 및 회원가입 항목이 있는 Drawer가 표시됩니다. 항목을 탭하면 로그인 및 회원가입 기능을 수행하고 Drawer가 닫히는 것을 확인할 수 있습니다.

로그인 및 회원가입 기능을 구현하기 위해선 실제로 데이터베이스와 통신해야 할 수도 있는데, 이 부분에 대해서는 별도의 데이터베이스 설정 및 API 호출 로직을 구현해야 합니다.

참고 자료