An open API service indexing awesome lists of open source software.

https://github.com/lanpet-dev/android-app

LanPet android native application
https://github.com/lanpet-dev/android-app

android-app clean-architecture multi-module-architecture mvvm

Last synced: about 1 month ago
JSON representation

LanPet android native application

Awesome Lists containing this project

README

          

# LanPet android app
### 반려동물을 좋아하는 사람들의 모임

로그인 자동로그인 인증

온보딩
자동로그인
인증해제

사랑방리스트 사랑방프로세스 프로필프로세스

사랑방 리스트
사랑방 프로세스
프로필

적응형 다크모드 멀티해상도

적응형 다크모드
멀티해상도

# Tech Stack

1. Architecture
- Multi module (https://developer.android.com/topic/modularization?hl=ko)
- Clean architecture
- MVVM pattern
2. Android
- Kotlin
- Jetpack Compose
- Hilt
- Coroutines
- Retrofit2
- Design system
- Version catalogs
- Room
- Design system
- Ktlint with Compose rule
3. Testing
- Junit5
- mockk
- Turbine (https://github.com/cashapp/turbine)
- Robolectric (https://developer.android.com/training/testing/local-tests/robolectric?hl=ko)

# Project structure

Multi module based clean architecture

```
Root project 'LanPetApp'
├── Project ':app'
├── Project ':core'
│ ├── Project ':core:auth'
│ ├── Project ':core:common'
│ ├── Project ':core:designsystem'
│ ├── Project ':core:di'
│ ├── Project ':core:manager'
│ ├── Project ':core:navigation'
│ └── Project ':core:testing'
├── Project ':data'
│ ├── Project ':data:dto'
│ ├── Project ':data:repository'
│ └── Project ':data:service'
├── Project ':domain'
│ ├── Project ':domain:model'
│ ├── Project ':domain:repository'
│ └── Project ':domain:usecase'
└── Project ':feature'
├── Project ':feature:auth'
├── Project ':feature:free'
├── Project ':feature:landing'
├── Project ':feature:myposts'
├── Project ':feature:myprofile'
├── Project ':feature:profile'
├── Project ':feature:settings'
└── Project ':feature:wiki'

Included builds:
└── Project ':build-logic'
```

# Make module graph

```
1. Install Graphviz
- brew install graphviz
2. Run gradle task
- ./gradlew projectDependencyGraph
```