현 프로젝트 준비단계
12. 첫 로그인화면 / 동의화면 제작
깡 딱
2025. 2. 12. 22:49
728x90
소요시간
2025년 2월 11일
2025년 2월 12일 - 5시간
느낀점
솔직히 로그인화면과 동의화면은 앞서 https://game-chanda.tistory.com/145 여기서 만들어봤던 기억이 있어서
딱히 설명할것은 없다. 살짝 리워크 정도 .
오늘은 ui를 만들면서 , 로그인화면에서 안해본걸 위주로 적으려고 한다.
(개발) Agree_Page 동의화면 만들기
UI/UX 제작소요 12일 ( 디자인 틀 제작 및 약관 동의 화면) 피그마 반응형 제작 - UI UX 김00 프론트 엔드Column body 부분은 수직 정렬로 설정 상단바 부분은 상단바에 적지 않고 Column부분에 적어줌
game-chanda.tistory.com
바텀바
키보드가 올라올때 버튼이 따라 올라가게 만드는 기능을 알게 되었다.
resizeToAvoidBottomInset: true, // 키보드가 올라오면 화면이 조정됨
또한 바텀바에 들어가는 버튼은 bottomNavigationBar에 넣어야된다는 것을 알게되었습니다.
ui는 딱히 설명하지 않겠음
bottomNavigationBar: Padding(
padding:
EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
child: Container(
width: double.infinity,
height: 100.h,
padding: EdgeInsets.only(left: 16, right: 16, top: 24, bottom: 24),
child: InkWell(
onTap: () {
_signIn();
},
child: Container(
width: 328.w,
height: 52.h,
decoration: ShapeDecoration(
color: Color(0xFF05FFF7),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
),
padding:
EdgeInsets.only(left: 16, right: 16, top: 12, bottom: 12),
child: Text(
'로그인',
textAlign: TextAlign.center,
style: TextStyle(
color: Color(0xFF1A1A1A),
fontSize: 20.sp,
fontFamily: 'Pretendard',
fontWeight: FontWeight.w500,
height: 1.40.h,
letterSpacing: -0.50,
),
),
),
),
),
),
Sign_up (회원가입 메서드)
이메일 컨트롤러와 , 패스워드 컨트롤러를 받아서 supabase auth데이터베이스에 넣게 만들었습니다.
실패시 스낵바로 오류를 뜨게 만들었습니다.
스낵바에 오류 코드마다 텍스트를 넣어야되지만 아직은 테스트 중이라서 넣지 않았다.
Future<void> _signIn() async {
try {
final response = await Supabase.instance.client.auth.signInWithPassword(
email: _emailController.text.trim(),
password: _passwordController.text.trim(),
);
if (response.user != null) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('로그인 성공!')),
);
// 로그인 성공 후 다른 화면으로 이동 가능
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => Home_screen()), // HomePage는 로그인 후 이동할 화면
);
}
} catch (e) {
print('로그인 오류: $e');
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('로그인 실패: $e')),
);
}
}
결과
728x90