Skip to content

TEAM-SMASHING/SMASHING-ANDROID

Repository files navigation

SMASHING-ANDROID

Image

스매싱

스매싱 - 스포츠인을 위한 매칭은 계속된다

Image

스매싱2030 세대의 스포츠 자아 완성을 돕는 게이미피케이션 기반 스포츠 매칭 플랫폼 입니다.


🏸주요 기능

폼보드-2

✨ Contributors

🏸공승준(LEAD)
@seungjunGong
🎮신형철
@ShinHyeongcheol
🍑이지민
@vahkjsdf
🐰한유빈
@oilbeaneda
매칭 관리,매칭 결과 작성,
알림
,랭킹,
지역 검색
온보딩,로그인,
매칭 탐색
프로필,
매칭 결과 확인

⚒️ Tech Stacks

항목 기술 스택
Architecture Google Recommended Architecture
Pattern MVVM
DI Hilt
Asynchronous Coroutine, Flow
Network Retrofit2, OkHttp, OkHttp-SSE
Navigation Single Activity Architecture (SAA), Jetpack Navigation
UI Framework Jetpack Compose
Image Processing Coil, Lottie
Logging Timber

📌 도입 기술 선정 이유

1️⃣ Architecture: Google Recommended Architecture
서비스의 규모나 복잡도를 고려했을 때 도메인 레이어까지 고정적으로 가져가기보다는
기본적인 아키텍처 구조는 따르되, 도메인 레이어는 필요한 경우에만 유연하게 추가할 수 있도록 구성했습니다. 초기에는 가볍게 시작하고, 기능이 확장될수록 자연스럽게 구조를 확장해갈 수 있다고 판단했습니다.

2️⃣ Pattern: MVVM (Model-View-ViewModel)
팀원 대부분이 익숙하게 사용해온 패턴이며, ViewModel을 중심으로 상태를 관리하기 때문에 Jetpack Compose와의 궁합이 좋아 선택하게 되었습니다. UI와 로직을 명확히 분리할 수 있어서 협업 시 역할 구분이 쉬워지고, 테스트나 유지보수 측면에서도 유리합니다.

3️⃣ Dependency Injection: Hilt
구글에서 권장하는 DI 라이브러리로, 보일러플레이트 코드를 줄이면서 의존성 관리의 일관성과 재사용성을 확보할 수 있어 도입했습니다. 또한 내부적으로 제공하는 컴포넌트들의 라이프사이클을 자동으로 관리해주기 때문에, 초기 설정 부담을 줄이고 생산성과 유지보수 효율을 높일 수 있습니다.


📗 Convention

📌 컨벤션 문서 보러가기

  • Github Convention
  • Naming Convention
  • Packaging Convention

🗂️ Project Structure

Google Recommended Architecture
🗃️ smashing.app
├─ 🗃️ core
│  ├─ 🗃️ common
│  │  ├─ 📁 constant
│  │  ├─ 📁 di
│  │  ├─ 📁 navigation
│  │  ├─ 📁 state
│  │  └─ 📁 type
│  ├─ 🗃️ designsystem
│  │  ├─ 📁 component
│  │  ├─ 📁 mapper
│  │  ├─ 📁 state
│  │  ├─ 📁 style
│  │  └─ 📁 theme
│  ├─ 📁 extension
│  ├─ 🗃️ local
│  │  └─ 📁 datastore
│  ├─ 🗃️ network
│  └─ 📁 util
│
├─ 🗃️ data
│  ├─ 🗃️ di(feature 기반)
│  ├─ 🗃️ local
│  │  ├─ 📁 datasource
│  │  │  ├─ 📁 api
│  │  │  └─ 📁 impl
│  ├─ 🗃️ remote
│  │  ├─ 📁 datasource
│  │  │  ├─ 📁 api
│  │  │  └─ 📁 impl
│  │  ├─ 📁 dto
│  │  └─ 📁 service
│  ├─ 🗃️ mapper(dto ↔ model 변환)
│  ├─ 🗃️ model(feature 기반)
│  └─ 🗃️ repository
│  │  ├─ 📁 api
│  │  └─ 📁 impl
│  ├─ 🗃️type
├─ 🗃️ domain
│  ├─ 📁 model
│  ├─ 📁 usecase
│  └─ 📁 mapper
│
└─ 🗃️ presentation
   ├─ 📁 main
   └─ 📁 home
      ...

About

SMASHING Android 레포지토리입니다🏸

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors