컴포즈 스터디를 위한 저장소입니다.
자유롭게 develop 브랜치에 머지 해주시기 바랍니다. 마지막 스터디 모임 후 main 브랜치로 머지할 예정입니다.
2인 1조로 Flickr API를 이용하여(https://www.flickr.com/services/api/flickr.photos.search.html)
위 스크린샷과 같은 앱을 만든다. 스크롤 가능한 격자형 사진 보기 앱이며, 사진 업로드 기능은 없다. 팀 내에서 시니어와 주니어 역할로 나누어 앱을 구현한다. (팀별로 역할을 다시 설정해도 무관)
주니어 - 컴포즈와 관련된 UI 설계 시니어 - 프로젝트 전반적인 설계 및 데이터 셋 불러오기, 주니어 담당 일진역할
구현 방법이나 라이브러리 사용은 자유입니다. 하지만 코드 리뷰 시 구성원들의 가독성을 위해 권장하는 항목은 다음과 같습니다.
- Clean Architecture 도입 (data, domain, app(or presentation) 모듈 생성)
- MVVM or MVI 디자인 패턴 사용
- Retrofit (HTTPs)
- Coil (이미지 로딩)
- Hilt (의존성 주입)
- Moshi (JSON 파서)
- 컴포즈 및 컴포즈 부가 라이브러리들
필수 요구 항목 (총 70점, Required) 아래 항목은 반드시 구현되어 위 스크린샷과 같은 화면이 연출되어야 한다.
- 사용자로부터 키워드를 입력받아 이미지 데이터 셋을 Flickr 서버에서 가져온다.
- 가져온 이미지들을 컴포즈를 이용하여 렌더링한다.
- 이미지 항목 클릭 시 “다운로드 하시겠습니까?” 다이얼로그 노출, 확인 시 다운로드
추가 가산점(총 30점, Optional) 아래 항목을 구현하면 총 30점의 가산점을 얻을 수 있다. 해당 프로젝트 만든 팀을 제외한 나머지 3개 팀이 각 항목별로 0~5점까지 점수를 매긴 뒤, 평균값을 계산하여 가산점으로 적용한다.
추가 가산점 항목 (항목당 최대 5점)
- 최상위 레벨의 화면(Screen)이 @Preview 및 Interaction 이 구현되어야 함
- 앱 완성도(버벅임, 심미성 등)
- 화면회전 등과 같은 구성변경 시에도 상태를 보존하고, 적절한 UI 구성(예: 동적 column count)
- 이미지 데이터 페이징 구현 (무한 스크롤)
- 프로젝트 (코드) 퀄리티 (유닛테스트, 관심사 분리, 재사용성 등)
- (팀별) 프로젝트의 강점 어필 후 다른팀의 평가
권대원 - 권대원, 옥수환
헬로컴포즈 - 송진광, 고승윤
굿바이엑세멜 - 최우성, 장재종
sum3years - 정형찬, 박명범