개발 현황 및 개발하면서 겪은 이슈 위주로 정리해 보았습니다.
기능개발현황
1. 사용자 관리 기능
☑️ 회원가입/로그인: 이메일 또는 소셜 로그인 기능 제공. (구글로그인)
• 프로필 관리: 사용자 이름과 기본 연락처 정보 관리.
2. 모임 관리 기능
☑️ 모임 생성: 모임 이름, 날짜, 시간, 장소 설정.
☑️ 모임 조회: 사용자가 속한 모든 모임 리스트 조회.
☑️ 모임 수정 및 삭제: 생성된 모임 정보 수정 및 삭제 기능.
3. 초대 및 알림 기능
☑️ 초대하기: 초대 코드 생성 및 조회. (임시) 연락처를 통해 모임 참가자 초대. (초대 링크)
• 알림: 모임 일정에 대한 알림 발송 (푸시 알림). ( 미정)
4. 스마트폰 기반 출석체크 기능
• 자동 출석체크: 모임 장소 근처에 도착 시 자동으로 출석체크.
5. 관리 기능 (관리자용)
• 참가자 관리: 모임 참가자 목록 조회 및 관리.
>> 출석체크 제외한 기본 기능 개발 완료한 상태입니다.
개발단계
프로젝트 초기 설정: Flutter 프로젝트 생성, 필요한 패키지 추가, Firebase 프로젝트 설정, Firebase 초기화.
사용자 관리 기능 구현: 회원가입 및 로그인 화면 구현, 홈 화면 구현.
모임 관리 기능 구현: 모임 생성 화면 구현, 모임 목록 및 세부 정보 화면 구현.
네비게이션 설정: 네비게이션 라우트 설정을 통해 화면 간 이동 구현.
출석체크 기능 구현: 출석체크 기능 구현, Google Maps 및 Location 패키지를 사용하여 사용자 위치와 모임 장소 표시, 출석체크 상태를 Firestore에 저장.
관리 기능 (관리자용) 구현: 참가자 관리 및 출석 보고서 기능 구현.
푸시 알림 기능 구현: Firebase Cloud Messaging 설정 및 초기화, FCM 토큰 등록, 푸시 알림 수신 및 처리. (미정)
>> 기본 제공 네비게이션 구현했으나 추후 변경될 수 있습니다.
코드구조
lib/
├── main.dart
├── app.dart
├── config/
│ └── themes.dart
├ ── models/
│ └── meeting.dart
├── screens/
│ ├── home/
│ │ ├── home_screen.dart
│ │ └── widgets/
│ │ └── meeting_list_item.dart
│ ├── login/
│ │ └── login_screen.dart
│ ├── meeting/
│ │ ├── create_meeting_screen.dart
│ │ ├── edit_meeting_screen.dart
│ │ └── meeting_detail_screen.dart
│ └── join_meeting/
│ └── join_meeting_screen.dart
├── services/
│ ├── auth_service.dart
│ ├── firestore_service.dart
│ └── notification_service.dart
├── utils/
│ └── constants.dart
└── widgets/
└── custom_button.dart
>> 필요한 화면 위주 구성 후 위와 같이 변경, 추후 BLoC 패턴으로 변경 필요합니다.
참고/유의사항
Claude 3.5 사용 및 의존적 개발
>> 차근차근 개선해 나가면, 마침내 원하는 결과물을 얻을 수 있습니다. 즉, 약간 이상의 복잡한 작업은 한 번에 완벽히 해내지 못합니다.
>> 유지보수를 위해서는 코드를 어느 정도 읽을 줄 알아야 하고, 매단계 결과물에 대한 의구심을 가지고 확인 작업을 하는 것을 추천합니다.
이슈 (Critical)
안드로이드에서 동작하지 않음 (코틀린 버전 이슈)
>> 해당 이슈로 초반 많은 시간이 소요되었고 (결국 iOS만 테스트), 출석체크 기능 개발 전 홀딩한 상태입니다. 잘 아시는 분 계시면 도와주세요..
시연
Next » 핵심 기능 개발, 배포 & 홍보
#11기1인개발