개밥줬어?
Stack: Firebase, MVC, UIKit, iOS Team: 팀 프로젝트 Role: 개발 진행 기간: 2021/09/23 → 2021/09/24 About: 우리집 강아지 생존권을 확립하는 식사 여부 확인 애플리케이션
개요
GitHub - wansook0316/bookathon_G: 개밥줬어?
기획의도
- 개밥줬어? 모두가 바쁜 요즘 우리집 강아지 밥은 누가 챙겨?!
- 이제 편하게 앱으로 확인하세요
✏ 한줄소개
- 우리집 강아지 생존권을 확립하는 식사 여부 확인 애플리케이션
💻 서비스
- 가족 구성원이 강아지 밥을 주었는지 직관적으로 파악할 수 있다.
- 누가?
- 무엇을?
- 가족 구성원간의 채팅기능 추가로 간단한 정보도 공유할 수 있다.
동작 화면
- 가족 만들기
- 사용자 등록하기
- 사용자 이름과 사용자 역할을 요청하였습니다. 사용자 역할은 CollectionView를 띄워서 6가지 이모지 중 하나를 선택할 수 있게 하였습니다.
- 강아지 등록하기
- 강아지 사진과 강아지 이름을 요청하였습니다. 강아지 사진 같은 경우엔 picker에서 선택하게 되면 FirebaseStorage에 저장하고 URL을 요청해서 FireStore에 저장합니다.
- 사용자 등록하기
- 방 참가하기
- 가족 이름을 입력하면 이미 등록된 가족으로 이동하게 됩니다.
- 자동로그인
- 이미 로그인한 적이 있다면? 자동로그인을 하는게 사용자 경험에 더 좋겟죠?
- UserDefault라는 이미 iOS에서 제공해주는 전역 객체를 사용하였습니다.
- 밥 주기
- 밥은 CollectionView 에 있는 버튼을 클릭하면 사용자 역할처럼 6가지 이모지 중 하나를 선택할 수 있게 하였습니다.
- 기본적으로 4개의 밥만 시간과 이모지만 보이게 해두었고, 자세한 정보 혹은 추가 정보는 더보기 창을 눌러서 확인할 수 있습니다.
- 더보기
- 더보기에서는 TableView를 이용하였습니다. 사용자 이모지 / 준 먹이 텍스트 정보 / 시간을 확인할 수 있습니다.
- 채팅하기
- 채팅은 ChatViewController에 Firestore 스냅샷을 달아 채팅데이터를 실시간 업데이트 하고 받아올 수 있도록 구현했습니다.
- 채팅 데이터 조회, 추가 하면 스냅샷이 업데이트된 변경사항을 받아와 뷰컨트롤러에 보여줄 수 있습니다.
맡은 역할
- 메인화면에 진입하기 전, 가족, 강아지, 사용자 등록을 하는 진입 부분 담당
- TextField를 기반으로 수정을 감지하여 다음 버튼의 enable 여부 점검
- 이미 존재하는 가족이름 인 경우 가족 엔티티를 생성할 수 없고 Alert를 보여줌
- Image Picker로 부터 가져온 사진을 Firebase Storage에 업로드 하고, 데이터 베이스에 url로 저장하여 디바이스 메모리 관리
- Custom View Controller를 사용하여 사용자 화면을 클릭했을 때, 이미 제작된 사용자 얼굴을 클릭할 수 있도록 수정
문제 상황과 해결
- 협업 과정에서 문제를 많이 겪어, 팀원 별로 다른 화면을 기준으로 작업을 했습니다.
- 각각이 폴더를 기준으로 스토리보드, swift 파일등을 만들어서 작업한 뒤 연결할 때만 해당 스토리보드에서 생성하여 연결해주었습니다.
- Firebase 연동이 처음이라 많이 헤맸지만 사용법을 익힐 수 있었습니다.