현 프로젝트 시작단계

4. 개발 시작단계 - kIsWeb / 진행사항

깡 딱 2025. 3. 5. 01:11
728x90

2025년 3월 4일 - 7시간

 

만든 화면 / 느낀 점

 

확실히 모듈별로 관리하니까 진짜 너무 유지보수하기 쉬운 거 같다.

근데 단점 실력이 안 좋으니까 나누는데 시간이 좀 든다.. 그게 좀 흠이라면 흠이지만 

나름 ai와 함께해할 만한 거 같다.

 

 

진행사항

 

로그인 선택화면

 

웹과 앱 개발을 위한 새로운 시작

기존에 웹 개발을 시도했지만, CORS 정책을 설정하지 않아 오류가 발생하는 문제를 겪었습니다.

그 원인을 파악한 후, 이제는 웹과 앱 개발을 함께 시작하기로 마음먹었습니다.

앞으로는 두 플랫폼을 모두 지원하는 프로젝트를 진행할 계획이며, 나중에는 MacBook을 구매해 iOS 개발까지 도전해보려 합니다. 

화면 크기에 맞춘 반응형 디자인

프로젝트를 진행하면서 다양한 화면 크기에 대응하는 반응형 디자인을 구현했습니다. 

( 버튼은 사진이라서 반응형이 안됨 , 직접 구현할 예정 ) 

  • 360px: 모바일 화면에서 버튼과 레이아웃이 깔끔하게 조정됨
  • 450px: 중간 크기 디바이스에서도 문제없이 표시됨
  • 600px: 태블릿이나 데스크탑 화면에서도 완벽히 동작

 

 

 

이용 동의 화면

웹과 앱의 반응형 디자인

 왼쪽은 웹, 오른쪽은 앱

다행히 프론트엔드 내에서 모든 처리가 가능해 큰 문제 없이 개발을 완료했습니다.

약관 동의 페이지는 노션을 활용해 작성했으며,

https://holybaits-modir.notion.site/132a2688a39a8092bdefcea510e0fd86?pvs=74

 

서비스 이용약관 | Notion

(상품, 서비스 등 이용 일반 회원용)

holybaits-modir.notion.site

 

 

회원가입 - 이메일 입력 화면

 

모바일에서는 이메일 필드를 눌렀을 때 키보드가 올라오도록 설계했는데, 웹에서는 bottomNavigationBar에 버튼을 넣으면 전체 너비를 차지하는 문제가 발생했습니다. 이로 인해 레이아웃이 의도대로 나오지 않아 해결하는 데 많은 시간을 투자했습니다.이를 해결하기 위해 Flutter의 kIsWeb 메서드를 활용했습니다. 참고로, kIsWeb은 플랫폼이 웹인지 앱인지 구분해 다르게 동작하도록 해주는 유용한 도구입니다

 

if (kIsWeb)
  LoginButton(
    buttonText: '다음1',
    onTap: () => _navigateToPasswordScreen(context),
  )

 

 

모바일

bottomNavigationBar: !kIsWeb
    ? LoginButton(
        buttonText: '다음1',
        onTap: () => _navigateToPasswordScreen(context),
      )
    : null,

 

 

 

네이버 지도 부분

 

웹에서 지도 오류와 모바일에서의 차이

 웹 환경에서 지도에 오류가 발생하는 문제를 발견했습니다. 원인은 모바일용 코드를 그대로 사용하고 있기 때문입니다.

모바일에서는 지도가 정상적으로 잘 표시되지만, 웹에서는 제대로 작동하지 않는 상황입니다.

이를 해결하려면 웹 전용 지도 코드를 별도로 추가해야 한다는 결론을 내렸습니다.

웹 지도를 따로 구현하려면 백엔드에서 데이터를 불러오는 로직은 동일하게 유지하더라도, 프론트엔드에서 상당한 수정이 필요합니다. 작업량이 만만치 않아 우선순위를 조정하고, 이 부분은 다른 날에 집중적으로 다루기로 결정했습니다.

모바일에서는 이미 지도가 문제없이 표시되는 것을 확인했으니, 웹 환경 개선에 조금 더 시간을 투자할 계획입니다.

 

 

일단 기초는 다잡아 놨고

 

이제부터 세심하게 화면마다 코드를 다룰 예정이다. 

오늘은 여기까지~~

728x90