심화주차 팀 프로젝트 시작
- 피그마 작성
- 역할 분담
- convention
- 앱의 목적과 이름 선정
역할 : SearchFragment
앱의 목적 : OTT서비스와 같이 유튜브의 인기 컨텐츠들을 종합해서 원하는 카테고리별로 한눈에 확인할 수 있는 서비스
앱의 이름 : 튜브링띵 -> tube(텔레비전 등의 뜻) + Everything(모든것)
Codeconvention
- Class 이름: PascalCase (대문자로 시작하는 UpperCamelCase
- 명사로 짓기
- 해당 클래스가 하는 행동을 표현
- ex)
- funtion 이름: CamelCas
- 동사로 시작 어떤 행동을 하는지 명시해주는 이름
- 데이터를 받아오는거는 get, 데이터를 쓸때는 set, 로컬 DB에 저장할떄는 save 사용
- View를 초기에 세팅할 경우 init사용
- ex) initRecyclerView()
- View 초기화시 Observer사용할 경우 attach를 앞에 사용해 해당 뷰가 사용하는 observer초기화
- attach<받는 아이템 명>Observer()
- ex) attachResultItemsObserver()
- 동사 + ~를 사용해 해당 행동을 실행한다 With 사용
- ex) saveItemWithPref()
- 동사 + ~통해서 행동을 실행하면 From
- ex) getResultFromAPI()
- 변수 이름은 명사로 선언
- ~item (아이템 개별이름)
- ex) val resultItem = VideoItem
- ~itemList(아이템들 Collection 이름)
- ex) val resultItemList = MutableList<VideoItem>
- ~item (아이템 개별이름)
Gitconvention
- GitHub Flow 전략 사용
- Branch는 Main을 기준으로 각 기능 구현이나 Topic별로 분기해서 사용
Branch Naming Convention
- Main - 바로 Push X, (무조건 Pull Request로만 Merge)
- . (마침표) or 공백 사용시에 - 사용
- -- 사용금지, 브랜치 명 마지막에 - 사용 금지
- Topic 별로 이름 지정
- 기능개발 : feature/기능-이름
- 핫픽스: HOTFIX/문제사항
- 리팩토링: refactor/뷰이름-뷰이름 (변경하는 뷰이름을 나열)
Commit Convention
Title: 상세한 작업 내역
- 기능개발 - Feat:
- 디자인 추가 - UI:
- 버그 픽스 - Fix:
- 리팩토링 - Refactor:
- 문서 수정 - Docs:
- 파일 삭제 - Remove:
- 이름 변경 - Rename
- 파일 폴더명을 변경, 옮길때
- 빌드업무 - Chore
- 디펜던시 추가, 빌드 내용 수정 등
본문 : 내용과 양에 상관없이 상세하게, 어떻게 보다는 무엇을 , 왜 변경했는지 적는다.
ex)
Feat: add favorite items
- result list added favorite items from Room DB
※ commit시 Log 반드시 지우기, 불필요한 주석 다 지우기
commit 절차
- Main Branch에서 분기해서 각 개발 진행
- 개발 진행중 완성되는 부분 별로 즉각적으로 commit
- ex) UI완성시, 리사이클러뷰 어댑터 구현시, 뷰타입 추가시
- 기능 구현 완료시 Main Branch를 Pull해서 Conflict와 기능 테스트 후 문제가 없을경우에 Push
- Push후 Pull Request요청하면 모두 리뷰 한 뒤 Merge
- PR템플릿을 잘 사용해보자.
SearchFragment
- EditText + Button을 통해 검색과 검색어 한꺼번에 삭제하는 기능
- Chip Group으로 최근 검색어 표시(최대 4개)
- 최근 검색어 클릭시 해당 검색어로 검색
- 검색내역이 없을 경우 메세지 출력
- 리사이클러뷰로 검색 내역 표시
- 좋아요 기능 -> 마이페이지, 상세페이지와 연동
- 오류메세지 출력 - 네트워크 오류, API호출 제한시 , 검색결과 없을 시
- 시간이 되면 시도해 볼 것 -> 이전 검색 결과를 Room에 저장해서 검색 화면에 들어왔을 때 Chip Group에 있는 4가지의 영상을 4개씩 노출시키기, 오류 메세지 출력시 Lottie 애니메이션 혹은 이미지를 함께 출력
- DetailFragment로 전환시 Shared Elenment Transition을 사용해서 넘어가기(리사이클러 뷰의 아이템 클릭시 그 아이템 확대 되는 효과를 가진 애니메이션)
뭔가 지금까지 팀프로젝트를 하면서 제일 많은 기능인 거 같다. 일단 해보고 싶기도 하고 해서 지원하긴 했는데 최선을 다해봐야겠다.
'내일배움캠프' 카테고리의 다른 글
본 캠프 57일 차 - 팀 프로젝트 (1) | 2024.02.08 |
---|---|
본 캠프 55일 차 - 팀 프로젝트 시작 (0) | 2024.02.06 |
본 캠프 50일 차 - 개인 과제 (2) | 2024.01.30 |
본 캠프 49일 차 - substring(),replace(),contains() (0) | 2024.01.29 |
본 캠프 48일 차 - api를 통해 가져온 데이터 출력하기 (1) | 2024.01.26 |