- 로딩 중인 상태
SkeletonView+CircularProgressIndicator사용
- 북마크
- 북마크가 없는 상태 → 북마크 섹션 생략
- 북마크가 있는 상태 →
Room에 저장 → 북마크 섹션 보여짐
- 무한 스크롤
- 페이지 단위로 API를 호출하여, 최하단에 도달 시 다음 페이지 이미지들을 불러옴
- 최신 이미지 또는 북마크의 사진 클릭 시
DetailPhotoScreen으로 이동 - 사진의 가로 사이즈는 고정적이며, 높이는 가변적으로 변경
- Description은 2줄, 태그는 4개까지 노출
- 우측 상단 북마크 버튼 기능
- '랜덤 탭' 클릭 시 랜덤으로 이미지를 보여줌
- 이미지 카드를 좌우로 스와이핑
- 좌측 스와이핑 → 다음 카드로 넘어감
- 우측 스와이핑 → 북마크에 저장 + 다음 카드로 넘어감
📂 com.prography.android.test.hyunjung/
├── 📂 data/
│ ├── 📂 local/ # Room DB 관련 코드
│ ├── 📂 model/ # 데이터 모델 정의
│ ├── 📂 network/ # API 서비스 인터페이스 및 네트워크 관련 코드
│ └── 📂 repository/ # 데이터 레이어(레포지토리) 구현
├── 📂 di/ # 의존성 주입(DI) 모듈
├── 📂 navigation/ # 앱 내 내비게이션 관련 코드
├── 📂 ui/
│ ├── 📂 component/ # 재사용 가능한 UI 컴포넌트
│ ├── 📂 detail/ # 상세 화면
│ ├── 📂 home/ # 홈 화면
│ ├── 📂 random/ # 랜덤 화면
│ └── 📂 theme/ # 테마 관련 코드 및 스타일 정의
└── 📂 utils/ # 유틸리티 클래스 및 헬퍼 함수
-
Minimum SDK Version 24
-
Target SDK Version 35
-
Language
- Kotlin
-
UI
- Jetpack Compose
-
API
-
Image
- Coil
-
Network
- Ktor
- Firebase
-
Asynchronous Processing
- Coroutine & Flow
-
DI
- Hilt




