안드로이드 코드 스타일(네이밍 컨벤션)
안드로이드 클린코드
안드로이드 개발시에 파일 종류가 많고 lint 같은 코드 스타일 가이드가 없어서
정리하고 개발하려고 합니다
네이밍 컨벤션 (코드)
패키지 이름
모두 소문자로 표시합니다
1 | // Okay |
클래스 인터페이스 이름
PascalCase 로 작성합니다.
명사 또는 명사구 로 시작합니다
- Ex. MyClass, MyInterface
함수 이름
camelCase 로 작성합니다
동사 또는 동사구로 시작합니다
- fun downloadGameFile
상수 이름
UPPER_SNAKE_CASE 로 작성합니다
숫자 값인 상수는 const 를 사용합니다
1 | const val NUMBER = 5 |
상수가 아닌 이름
camelCase 로 작성합니다
명사 또는 명사구 입니다
1 | val variable = "var" |
지원 속성
실제 속성 앞에 _
를 붙입니다
1 | private var _table: Map? = null |
축약어는 단어처럼
원래 단어의 대소문자는 무시
Good | Bad |
---|---|
XmlHttpRequest | XMLHTTPRequest |
getCustomerId | getCustomerID |
class Html | class HTML |
String url | String URL |
long id | long ID |
네이밍 컨벤션 (XML)
레이아웃
WHAT_WHERE.xml
Prefix | Usage |
---|---|
activity | contentview for activity |
fragment | view for a fragment |
view | inflated by a custom view |
item | layout used in list/recycler/gridview |
layout | layout reused using the include tag |
- activity_login.xml
- activity_main.xml
- fragment_articledetail
- view_menu
- item_article
- layout_actionbar_backbutton
어댑터
리스트뷰, 리사이클러뷰, 그리드뷰에서 사용하는 layout 은 item_
으로 시작한다
- item_gameinfo.xml
IDs
WHAT_WHERE_DESCRIPTION
객체타입_레이아웃명_설명
- tablayout_main
- imageview_menu_profile
- webview_dosplay_browser
Drawables
WHERE_DESCRIPTION_SIZE
장소_설명_사이즈
- login_signup
- all_infoicon
- all_infoicon_large
- all_infoicon_24dp
리소스
res
폴더 내 자산관리 규칙
문자 정보
res/values/string.xml
WHERE_DESCRIPTION 장소_설명
전체에서 다 사용되면 all_
- articledetail_title
- feedback_explanation
- feedback_namehint
- all_done
색상 정보
res/values/colors.xml
배열 정보
res/values/arrays.xml
Dimensions
res/values/dimens.xml
WHAT_WHERE_DESCRIPTION_SIZE
Prefix | Usage |
---|---|
width | width in dp |
height | height in dp |
size | if width == height |
margin | margin in dp |
padding | padding in dp |
elevation | elevation in dp |
keyline | absolute keyline measured from view edge in dp |
textsize | size of text in sp |
스타일 정보
res/values/styles.xml
error
단점
리팩토링이 어렵습니다
클래스명 바뀌면 리소스명도 다 일일이 바꿔줘야 합니다
참고포스트
- Kotlin 스타일 가이드
- A successful XML naming convention