Skip to content

blueboy1593/KkoShop

Repository files navigation

쿠샵 (KkoShop)

이커머스(쿠팡 스타일) 느낌의 Android 학습용 토이 앱. 아래 기술 스택을 한 앱에서 모두 다루는 것이 목표입니다. View 시스템(XML + ViewBinding) 기반.

스크린샷

홈 — MVVM · ViewPager2 배너 · RenderEffect 블러 · App Startup 트레이스 상품 상세 — MVP

다루는 기술 스택

# 주제 구현 위치
1 동적 앱 아이콘 — 2개 activity-aliasPackageManager.setComponentEnabledSetting()으로 전환 launcher/IconAliasManager.kt, AndroidManifest.xml
2 API 레벨별 블러 뷰 — API 31+ RenderEffect / 미만 RenderScript + 프레임 쓰로틀링 widget/BlurBackdropView.kt, widget/RenderScriptBlur.kt
3 ViewPager2 — 배너 캐러셀, onPageScrolled offset으로 블러 크로스페이드 presentation/home/adapter/BannerAdapter.kt
4 Jetpack App Startupdependencies() 위상정렬, EntryPointAccessors로 Hilt 연동 startup/
5 Hilt DI — Singleton / ViewModel / ActivityRetained / Activity 스코프 di/
6 MVVM(홈) + MVP(상세) — UseCase / Repository / DataSource 계층 presentation/, domain/, data/
7 REST API 호출 — Retrofit + OkHttp + kotlinx.serialization으로 DummyJSON 실제 호출, 실패 시 로컬 폴백(방어적 설계) data/remote/, di/NetworkModule.kt

아키텍처

Clean Architecture 3계층 — 의존성 방향은 presentation → domain ← data.

domain/        순수 Kotlin (model, repository 인터페이스, usecase)
data/          domain 인터페이스 구현 (datasource, repository, config)
presentation/  home(MVVM) · detail(MVP) · settings
di/ startup/ launcher/ widget/

빌드

JDK 17+ 필요. Android Studio로 열면 자동 처리되고, 커맨드라인은:

export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"  # 번들 JBR(JDK 21)
./gradlew :app:assembleDebug
./gradlew :app:testDebugUnitTest
  • AGP 8.9.1 · Gradle 8.13 · Kotlin 2.1.0 · compileSdk 36 · minSdk 24

학습용 프로젝트입니다. 상품 목록은 DummyJSON API에서 실시간으로 받아오고, 네트워크 실패 시 ProductLocalDataSource의 로컬 데이터로 폴백합니다. 배너는 로컬 데이터입니다.

About

이커머스(쿠팡 스타일) Android 학습용 토이 앱 — 동적 앱 아이콘, RenderEffect/RenderScript, ViewPager2, App Startup, Hilt, MVVM+MVP

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages