Skip to content

droidknights/DroidKnightsApp

Repository files navigation

�banner

DroidKnights2023 App

드로이드나이츠는 기술 세션으로 개발자들의 경험을 공유하는 안드로이드 컨퍼런스입니다.

Guide

Contributions Welcome!

드로이드나이츠 행사 정보를 볼 수 있는 앱을 개발하고 있습니다. 여러분들의 참여로 함께 만들어 나가길 기대합니다!

자세한 내용은 CONTRIBUTING.md 를 참고해 주세요.

Design

Figma에서 디자인을 확인하실 수 있습니다.

Development

Required

  • IDE : Android Studio Giraffe (Download)

  • JDK : Java 17을 실행할 수 있는 JDK

    • (권장) Android Studio 설치 시 Embeded 된 JDK (Open JDK)
    • Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM)
  • Kotlin Language : 1.8.21

Language

  • Kotlin

Libraries

  • AndroidX

    • Activity & Activity Compose
    • AppCompat
    • Core
    • Lifecycle & ViewModel Compose
    • Navigation
  • Kotlin Libraries (Coroutine, DateTime, Serialization)

  • Compose

    • Material3
    • Navigation
  • Landscapist & Landscapist Coil

  • Dagger & Hilt

  • Square (Retrofit, OkHttp)

Test & Code analysis

  • Compose Test(UI, Navigation)
  • JUnit4
  • Mockk
  • Turbine
  • Kotest
  • Detekt

Gradle Dependency

Gradle Version Catalog 를 활용하여 종속성과 플러그인을 관리하고 있습니다.

자세한 내용은 libs.versions.toml 를 참고해 주세요.

Architecture

Layer

본 프로젝트는 Layered Architecture 형태로 설계되어 있습니다. 현재 Presentation/Domain/Data 레이어 구조를 띄고 있습니다.

img

UI Layer

상태는 아래로 이동하고 이벤트는 위로 이동하는 단방향 데이터 흐름(UDF)으로 구성되어 있습니다.

img

Module

본 프로젝트는 Multi-module 구조이며 각 Feature마다 모듈 형태로 구성되어 있습니다.

Module Graph 생성 방법

1. 그래프를 시각화하는 오픈소스 설치
- brew install graphviz (예시 Homebrew)

2. 그래프 생성 Gradle Task 실행
./gradlew projectDependencyGraph

Thanks

참여해주신 모든 분들 감사합니다!