Skip to content

JeeSeongDeok/valorantapp

Repository files navigation

발로란트 나만의 상점 어플리케이션

About

이 어플리케이션은 발로란트 나만의 상점을 휴대폰으로 쉽게 볼 수 있도록 만들어진 안드로이드 앱입니다. RIOT에 로그인을 한 후 얻은 토큰으로 API를 통해 데이터를 주고 받습니다.

Built With 🛠

  • Kotlin - 안드로이드 개발을 위한 베이스 언어
  • AndroidX - 안드로이드 개발을 위한 라이브러리 모음
  • Android Architecture Components - MVVM 모델을 구성하기 위해 사용된 라이브러리 모음
    • LiveData - 데이터가 변경될 시 뷰에게 알려준다.
    • ViewModel - 생명주기에 영향을 받지 않고, 데이터를 계속 보존할 수 있다.
    • ViewBinding - 각 XML 레이아웃 파일에 대한 바인딩 클래스를 생성하고 코드를 더 쉽게 작성할 수 있도록 만들어 준다.
    • Room - SQLite를 mapping 해준다.
  • Retrofit - Android HTTP 클라이언트
  • GSON - Kotlin 최신 JSON 라이브러리, GSON을 통해 JSON을 컨버트한다.

Package Structure

com.example.valorant    # Root Package
.
├── data                # 데이터 핸들링
│   ├── local           # Room(SQLite) 로컬 폴더
|   │   ├── dao         # Room의 Data Access Object    
│   ├── api             # API 핸들러     
|   │   ├── API         # Retrofit 핸들링을 위한 정보 모음
│   └── repository      # API에서 들고온 데이터를 저장
|
├── model               # 데이터 모델(Entity, 매치데이터 등)
|
├── di                  # Database, RetrofitBuilder를 넣어둠            
│   
├── ui                  # 엑티비티/뷰 레이어 
│   ├── main            # 메인 화면
│   │
|   ├── home            # 홈 프래그먼트
|   │   ├── adapter     # Adapter for RecyclerView
|   │   └── viewmodel   # ViewHolder for RecyclerView  
│   │ 
│   ├── loading         # 로딩 커스텀 디아로그
│   │ 
|   ├── login           # 로그인 액티비티, 로그인 디아로그
|   │   └── viewmodel   # 아이디에 대한 토큰 데이터 관리
│   │
|   ├── stats           # 전적 프래그먼트
|   │   ├── adapter     # 리사이클뷰 어뎁터
|   │   ├── viewholder  # 리사이클뷰 뷰홀더 
|   │   └── viewmodel   # 전적데이터 데이터 관리
|   │    
|   ├── store           # 상점 프래그먼트
|   │   └── viewmodel   # 상점 데이터 관리
|   │  
│   └── setting         # 설정 화면
|
└── utils               # 다크모드 유틸 / SharePreference 등 다양한 유틸

Architecture

이 어플리케이션은 MVVM모델을 사용했습니다. MVVM (Model View View-Model) 아키텍쳐.

Road Map

프로젝트 보드에 로드맵을 만들었습니다. 버그를 발견한다면 issue tab에 작성해주세요

License

MIT 라이센스에 따라 배포합니다. 자세한 내용은 라이센스를 참조해주세요

API

API 주소입니다

Design

디자인은 주소에서 사용했습니다.

추 후 Compose로 리팩토링할 예정입니다.