고양이들은 입맛이 까다로워 집사들은 성공확률이 높은 시도를 위해 먹여둔 캣푸드를 따로 기록하고 있습니다.
이런 집사들의 고충을 해결하기 위해 Ounce는 직관적인 캣푸드 기록 기능을 제공하고 있습니다.
기록부터 선택까지, 온스가 함께합니다.
Cats have a picky appetite, so guardians seperately record their cat's food for "successful" results.
In order to solve these difficulties, we provide an intuitive, fascinating cat food diary application.
From picking to feeding, Ounce will take your problems "once".
type: subject
body(optional)
footer(optional)
- feat: 새로운 기능
- fix: 버그 수정
- docs: 문서 수정
- style: 스타일 변경(코드 변경 X)
- refactor: 리팩토링
- test: 테스트 코드 추가/테스트 리팩토링
- chore: updating build tasks, package manager 설정
- Subject는 50글자를 넘어가면 안된다
- 첫 시작은 대문자로 해야한다
- 마지막에 마침표(.)를 찍으면 안된다
- 어떤 변경점이 있는지 설명한다
- 명령조를 사용한다
- 부연 설명이나 커밋의 이유를 설명할 때만 사용
- Not How, Explauin What and Why
- 윗 부분과 1줄의 공백 필요
- 각 라인은 72자 초과 불가
- Issue Tracker IDs를 적을 때 사용
OUNCE는 Google의 Kotlin Coding Style Guide를 따릅니다
다음과 같은 순서 클래스를 구성합니다
- Property 선언과 초기화 블럭(intializer blocks)
- 추가적인 생성자
- 메소드 정의
- 컴패니언 오브젝트(Companion object)
- 패키지의 이름은 항상 소문자로 하고, 밑줄을 사용하지 않습니다
- 두 개 이상의 단어를 한 번에 사용하는 것을 금지합니다
- Pascal Case
open class SampleName { /* ... */ }
object MoreSampleName : SampleName() { /* ... */ }
- Camel Case
val initList = mutableList<SampleData>()
fun getList: List<SampleData>() { /* ... */ }
- Upper Snake Case
- 상수는 companion objet에 넣어 보관합니다
companion object {
const val MAX_COUNT = 8
}
Tab 키를 써서 Indenting 합니다
괄호 뒤에 한 칸을 띄우고 사용합니다
if (elements != null) {
for (element in elements) {
// ...
}
}
- Control문(if/while/for)
- 한 칸 띄어씁니다
- 생성자/Method
- 붙여씁니다
if (isSpacing == true) { /*...*/ }
fun isSpacing() { /*...*/ }
- 변수의 타입/함수 리턴 타입 결정
- 콜론을 앞에 붙인다
- 상속받은 클래스/인터페이스 구분
- 한 칸 띄어쓴다
fun isSpacing(): Boolean { /*...*/ }
class MainActivity : AppCompatActivity()
라이브러리 | 목적 |
---|---|
DotIndicator | 뷰페이저 인디케이터 |
Activity-KTX | Activity에서 ViewModel 위임 초기화위해 사용 |
Fragment-KTX | Fragment에서 Shared ViewModel 위임 초기화 위해 사용 |
Navigation | Fragment간 화면 전환 용이 |
Kakao SDK | Kakao Login 구현 |
Retrofit2 | 서버 통신 |
Gson | 서버에서 받아온 Json 객체를 Gson으로 변환 |
OkHttp | 서버 통신에서 토큰 Interceptor 등 Util 기능 제작에 활용 |
AndroidX Security | 중요 개인 정보(ID, Password) 암호화하여 기기 내에 저장 |
TedKeyboardObserver | 키보드 show/hide 리스너 |
Firebase | 구글 로그인 |
Glide | URL 형식의 이미지를 ImageView에 넣기 위해 사용 |
RatingBar | RatingBar에 사용되는 이미지를 쉽게 바꾸기 위해 사용 |
Hilt | Library for Dependency Injection |
Lottie | 기기 내 Lottie Animation 재생 |
TedPermission | 쉬운 런타임 권한 획득을 위해 사용 |
TedImagePicker | 갤러리에서 이미지를 가져오기 위해 사용 |