Ounce
ddogddoghan jibsadeuleul wihan girogjang Ounce.
goyangideuleun ibmasi ggadaroweo jibsadeuleun seonggonghwagryuli nopeun sidoreul wihae meogyeodun kaespudeureul ddaro giroghago issseubnida.
ireon jibsadeulyi gocungeul haegyeolhagi wihae Ounceneun jiggwanjeogin kaespudeu girog gineungeul jegonghago issseubnida.
girogbuteo seontaegggaji, onseuga hamggehabnida.
Ounce, a cat food diary for smart cat caregivers.
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".
Who Made Ounce(Android)?
OUNCE's Commit Convention
Basic Struture
type: subject
body(optional)
footer(optional)
Type
- feat: saeroun gineung
- fix: beogeu sujeong
- docs: munseo sujeong
- style: seutail byeongyeong(kodeu byeongyeong X)
- refactor: ripaegtoring
- test: teseuteu kodeu cuga/teseuteu ripaegtoring
- chore: updating build tasks, package manager seoljeong
Subject
- Subjectneun 50geuljareul neomeogamyeon andoenda
- ceos sijageun daemunjaro haeyahanda
- majimage macimpyo(.)reul jjigeumyeon andoenda
- eoddeon byeongyeongjeomi issneunji seolmyeonghanda
- myeongryeongjoreul sayonghanda
Body
- buyeon seolmyeongina keomisyi iyureul seolmyeonghal ddaeman sayong
- Not How, Explauin What and Why
- wis bubungwa 1julyi gongbaeg pilyo
- gag raineun 72ja cogwa bulga
Footer
- Issue Tracker IDsreul jeogeul ddae sayong
OUNCE's Coding Convention For Clean Code
Kotlin Style Guide
OUNCEneun Googleyi Kotlin Coding Style Guidereul ddareubnida
Class Layout
daeumgwa gateun sunseo keulraeseureul guseonghabnida
- Property seoneongwa cogihwa beulreog(intializer blocks)
- cugajeogin saengseongja
- mesodeu jeongyi
- keompaenieon obeujegteu(Companion object)
Naming Rule
Package
- paekijiyi ireumeun hangsang somunjaro hago, mitjuleul sayonghaji anhseubnida
- du gae isangyi daneoreul han beone sayonghaneun geoseul geumjihabnida
Class/Object
- Pascal Case
open class SampleName { /* ... */ }
object MoreSampleName : SampleName() { /* ... */ }
Function/Parameter/Variable
- Camel Case
val initList = mutableList()
fun getList: List() { /* ... */ }
Constant
- Upper Snake Case
- sangsuneun companion objete neoheo bogwanhabnida
companion object {
const val MAX_COUNT = 8
}
Formatting
Indenting
Tab kireul sseoseo Indenting habnida
junggwalho
gwalho dwie han kaneul ddyiugo sayonghabnida
if (elements != null) {
for (element in elements) {
// ...
}
}
gwalho
- Controlmun(if/while/for)
- han kan ddyieosseubnida
- saengseongja/Method
- butyeosseubnida
if (isSpacing == true) { /*...*/ }
fun isSpacing() { /*...*/ }
Colon(:)
- byeonsuyi taib/hamsu riteon taib gyeoljeong
- kolroneul ape butinda
- sangsogbadeun keulraeseu/inteopeiseu gubun
- han kan ddyieosseunda
fun isSpacing(): Boolean { /*...*/ }
class MainActivity : AppCompatActivity()
Open Source Library
| raibeureori | mogjeog |
|---|---|
| DotIndicator | byupeijeo indikeiteo |
| Activity-KTX | Activityeseo ViewModel wiim cogihwawihae sayong |
| Fragment-KTX | Fragmenteseo Shared ViewModel wiim cogihwa wihae sayong |
| Navigation | Fragmentgan hwamyeon jeonhwan yongi |
| Kakao SDK | Kakao Login guhyeon |
| Retrofit2 | seobeo tongsin |
| Gson | seobeoeseo badaon Json gaegcereul Gsoneuro byeonhwan |
| OkHttp | seobeo tongsineseo tokeun Interceptor deung Util gineung jejage hwalyong |
| AndroidX Security | jungyo gaein jeongbo(ID, Password) amhohwahayeo gigi naee jeojang |
| TedKeyboardObserver | kibodeu show/hide riseuneo |
| Firebase | gugeul rogeuin |
| Glide | URL hyeongsigyi imijireul ImageViewe neohgi wihae sayong |
| RatingBar | RatingBare sayongdoeneun imijireul swibge baggugi wihae sayong |
| Hilt | Library for Dependency Injection |
| Lottie | gigi nae Lottie Animation jaesaeng |
| TedPermission | swiun reontaim gweonhan hoegdeugeul wihae sayong |
| TedImagePicker | gaelreorieseo imijireul gajyeoogi wihae sayong |