-
[Android] 인스타그램 클론 코딩 팀 프로젝트 KPT 회고록안드로이드 2024. 4. 8. 20:31
- 프로젝트 의미 '1조'의 '첫'번째 프로젝트
- 실제 Instasgram SNS의 디자인과 기능을 차용하여 구현
- 게시물과 스토리 버튼을 통해 회원가입 된 친구 목록 및 정보 확인 가능
2. 프로토타입
3. 앱 시연영상
4. 제작과정 및 협업과정
4.1 팀 플랜
- 복잡한 기술보다는 팀원 간 '협업과 의사소통'에 주안점
- 코드 컨벤션
- 해상도 통일
- Emulator: nexus 5 api 31 통일
- kt 파일: Camel Case / XML파일: Snake Case
- string 파일 이용하여 text 작성
- 주석 설명 구체적으로 달기
- Git 컨벤션
- 4/1: 기획
- 요구사항 명세서 👉 구현사항 분석
- 와이어 프레임 구상
- 기술 스택 선정
- 역할분배
- 4/2 ~ 4/3: 개발
- Git과 칸반보드를 활용한 의견 문서화 및 공유
- 4/4: 디자인
- 코드 병합 후 개선점 추가 및 UI 통일
- 4/5: MERGE
- Main 브랜치에 merge 후 시연 영상 제작
4.3 요구사항 명세서 작성
- 각 구현사항들을 세부적으로 나누어 분류
- 구현사항의 설명을 바탕으로 중요도 설정
- 필수구현 사항을 중점으로 와이어프레임 구상
4.4 칸반보드 활용
- 각 요소를 칸반(Kanvan)이라고 하고, 개발 구현 상황(할 일, 진행 중, 완료)에 맞추어, 칸반을 이동
- 문서화: 각 구현을 진행하면서, 생겼던 문제와 해결 방안 그리고 참고자료 등을 해당 칸반에 기재
- 역할 분배: 각 칸반에 담당자 이름을 기재하여, 역할 분담
5. 트러블 슈팅
Git Merge 단위
- Issue : Git에 익숙지 않아 처음에 수시로 merge 하지 않고, Page 단위로 만든 후, 순차적으로 merge를 하였는데, 코드 충돌이 많이 났음
- Solve : 이후, 최소한의 기능 단위로 개발 후, 수시로 commit하는 습관을 들임
싱글톤(Singleton)의 필요성
- Issue : 코틀린kt. 파일에 필요한 이미지들을 그때그때 적용하다 보니, 중복되는 경우가 발생 → 코드중복, 리소스 낭비 문제발생 인지
- Solve : Object 클래스를 만들어, 앱 실행 시 바로 이미지 객체를 만들고, 이 데이터들을 Map형태로 관리하여, 필요할 때 가져다 쓰기
Activiyty 생명주기: 프로필 갤러리 사진 등록 이슈
- Issue : 싱글톤에 데이터가 잘 저장되어 있음에도, 메인페이지에서 프로필 사진을 등록한 뒤, 마이페이지로 이동했을 때, 선택한 이미지가 보이지 않는 상황이 발생
- Solve : 마이페이지가 onRestart()가 됐을 때에 프로필 이미지를 불러오는 로직이 빠져있는 걸 확인. 그 후, fun onRestart()를 override 후 로직을 추가하여 해결
- 객체를 만들고, 이 데이터들을 Map형태로 관리하여, 필요할 때 가져다 쓰기
6. KPT 회고
< 팀 피드백 > 튜터님
피드백1) Pigma에 와이어 프레임과 프로토타입 정리가 깔끔하게 되어있었다.
2) Kanvan을 잘 활용하여 협업 진행한 점이 좋았다.
3) 메인 페이지에서 스토리 Scroll하여 위치시킨 후, 스토리 화면으로 전환했다가 다시 돌아왔을 때,
스크롤바의 위치가 초기화되는 문제는 어떻게 해결할 것인지 말씀해주셨다.
→ addOnScrollChangedListener 활용할 계획입니다.Keep - 카카오톡 오픈채팅을 활용하여 팀원들간 의사소통을 수월하게 할 수 있었다.
- 일정 계획을 잘 세운 후 시작해서 계획대로 완성한 것 같다.
- 앞으로도 피그마를 활용하여 와이어프레임과 프로토타입을 만들려고 한다.Problem - pull request 후 merge할 때, 코드 리뷰를 더 적극 활용하면 좋았을 것 같다
- 트러블 슈팅과 회의록을 노션에 수시로 문서화하지 못해 아쉬웠다.Try - 더 발전한다면 게시글의 댓글 기능을 넣어보면 좋을 것 같다.
- 데드라인을 정해 시간을 더 효율적으로 관리하면 좋을 거라고 생각한다.
- 스토리보드를 추가해 전반적인 흐름에 대해 이해하려한다.fork한 로컬 브랜치와 원본 upstream과 다르단 걸 배웠다. 머지할 때 충돌을 해결해 보면서 서로의 코드를 이해해 보는 경험을 얻게 되었다. 팀원들과 소통에 집중한 만큼 협업의 중요성에 대해 알 수 있었다.
'안드로이드' 카테고리의 다른 글
[Android] 간단한 RecyclerView (0) 2024.04.11 [Android] MVVM 패턴 회원가입 유효성 검사 (0) 2024.04.09 [Android] [인스타그램 클론 코딩] 갤러리 접근 허용 & 사진 이미지 뷰에 등록 (registerForActivityResult() 사용) (1) 2024.04.03 [Android] Dark theme 구현 (다크 모드 전용 리소스 정의) (0) 2024.04.03 [Android] [Kotlin] addTextChangedListener와 setOnFocusChangeListener의 차이 (EditText 입력 변화 이벤트 처리) (0) 2024.04.02