Skip to content

Android Conding Convention

choiyoungjin edited this page Nov 14, 2022 · 2 revisions

Android Coding Convention

목차


1. 기본

기본적으로 공식문서인 Kotlin Coding ConventionsKotlin style guide를 준수한다.

1.1. 안드로이드 스튜디오

안드로이드 스튜디오의 Optimize imports 기능과 Reformat Code 기능을 이용한다.

  • Optimize imports (Ctrl+Alt+O) : 사용하지 않는 Class를 import하고 있는 경우 제거해준다.
  • Reformat Code (Ctrl+Alt+L) : 코드의 Kotlin Style Guide를 적용하여 Code를 Reformat한다.

2. Resource Naming Convention

2.1. ID

View 이름의 Pascal Case를 축약하여 Snake Case로 변환한 것을 Prefix로 사용한다.

2.1.1. Prefix

<WHAT>_<DESCRIPTION>

View Prefix
TextView tv_
ImageView iv_
EditText et
Button, ImageButton btn_
Toolbar tb_
*Layout layout_
BottomNavigationView bnv_
.. ..

2.1.2. 예시

@+id/tv_login
@+id/et_password
@+id/btn_login

2.2. Layout

Layout의 xml 파일의 이름은 .kt .java의 Pascal Case를 Snake Case로 변환하여 사용한다.

2.2.1. Prefix

<WHAT>_<WHERE>

View Prefix
Activity activity_
Fragment fragment_
Dialog dialog_
CustomView view_
Item item_

2.2.2. 예시

SignInActivity.kt -> activity_sign_in.xml
SignUpFragment.kt -> fragment_sign_up.xml
CustomCalendarView.kt -> view_custom_calendar.xml
item_user.xml

2.3. Drawable

2.3.1. Prefix

<WHAT_DESCRIPTION>

Drawable Prefix
Icon ic_
Image img_
Selector selector_
Shape <shape>_<color>_<radius>_<value>

2.3.2. 예시

ic_error.xml
img_default_user.xml
bg_main.xml
rectangle_yellow_radius_20.xml

2.4. Menu

2.4.1. Prefix

menu_


2.5. Color

Color의 이름은 Camel Case를 이용해 작성하되, 사이트를 참고해 Color를 직관적으로 연상할 수 있는 이름을 사용한다.

2.5.1. 예시

<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="cornflowerBlue">#6195ED</color>
<color name="gray_100">#F6F6F6</color>
<color name="gray_150">#EBEBEB</color>
<color name="gray_200">#DCDCDC</color>

2.6. String

String 작성 시 주석을 통해 String이 사용되는 곳을 명시한다.

2.6.1. Prefix

<WHERE/WHAT>_<DESCRIPTION>

2.6.2. 예시

<!--Main Menu-->
<string name="menu_daily">하루의 기록</string>
<string name="menu_remind">평가 및 회고</string>
<string name="menu_my">My</string>

<!--Toolbar Title-->
<string name="title_search">검색</string>
<string name="title_settings">환경설정</string>

<!--Dialog Message-->
<string name="msg_login">로그인하시겠습니까?</string>
<string name="msg_login_failed">로그인에 실패했습니다.</string>
<string name="msg_password_error">비밀번호가 올바르지 않습니다.</string>

2.7. Style

View의 Pascal Case와 Style에 대한 설명을 조합하여 Style 명을 지정한다.

2.7.1. Prefix

View.WHAT.Style

2.7.2. 예시

<style name="EditText.Login.Style"/>
<style name="Dialog.FolderAdd.Style"/>

<-- Global -->
<style name="OliveYoung.Dialog.Style"/>

3. Kotlin Naming Convention

3.1. Class

클래스 파일 이름은 UpperCamelCase(파스칼 케이스(PascalCase))로 작성한다.

3.1.1. Prefix

<DESCRIPTION><WHAT>

Prefix는 해당 클래스와 관련성이 높은 것으로 임의로 작성한다.

3.1.2. 예시

MainActivity
UserViewModel
WriteFragment

3.2. Method

메소드 이름은 lowerCamelCase로 작성한다.

3.2.1. Prefix

"동사"로 시작하는 "동사구" 형태를 사용하되, 동사 원형만을 사용한다.
자주 사용하는 동사는 용법에 맞게 사용한다.

Word Description
show Invisible한 것을 Visible하게 바꾸는 동작
check 어떤 것을 확인한 후 boolean 또는 값으로 반환하는 동작
is 어떤 것인지 확인한 후 boolean으로 반환하는 동작
has 어떤것을가지고 있는 확인 후 boolean으로 반환하는 동작

3.2.2. 예시

showList
updateContacts

3.3. Variable

변수 이름 또한 마찬가지로 lowerCamelCase로 작성하되, Boolean 타입의 변수를 제외하고 명사만을 사용한다.

3.3.1. 예시

isEnd
viewPagerAdapter