본문 바로가기

내일배움캠프

본 캠프 54일 차

심화주차 팀 프로젝트 시작

  • 피그마 작성
  • 역할 분담
  • 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>

 

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 절차

  1. Main Branch에서 분기해서 각 개발 진행
  2. 개발 진행중 완성되는 부분 별로 즉각적으로 commit
  3. ex) UI완성시, 리사이클러뷰 어댑터 구현시, 뷰타입 추가시
  4. 기능 구현 완료시 Main Branch를 Pull해서 Conflict와 기능 테스트 후 문제가 없을경우에 Push
  5. Push후 Pull Request요청하면 모두 리뷰 한 뒤 Merge
    • PR템플릿을 잘 사용해보자.

 

 

SearchFragment

  • EditText + Button을 통해 검색과 검색어 한꺼번에 삭제하는 기능
  • Chip Group으로 최근 검색어 표시(최대 4개)
  • 최근 검색어 클릭시 해당 검색어로 검색
  • 검색내역이 없을 경우 메세지 출력
  • 리사이클러뷰로 검색 내역 표시
  • 좋아요 기능 -> 마이페이지, 상세페이지와 연동
  • 오류메세지 출력 - 네트워크 오류, API호출 제한시 , 검색결과 없을 시
  • 시간이 되면 시도해 볼 것 -> 이전 검색 결과를 Room에 저장해서 검색 화면에 들어왔을 때 Chip Group에 있는 4가지의 영상을 4개씩 노출시키기, 오류 메세지 출력시 Lottie 애니메이션 혹은 이미지를 함께 출력
  • DetailFragment로 전환시 Shared Elenment Transition을 사용해서 넘어가기(리사이클러 뷰의 아이템 클릭시 그 아이템 확대 되는 효과를 가진 애니메이션)

 

뭔가 지금까지 팀프로젝트를 하면서 제일 많은 기능인 거 같다. 일단 해보고 싶기도 하고 해서 지원하긴 했는데 최선을 다해봐야겠다.