안드로이드 XML 속성 & 네이밍 기법

2019. 4. 18. 13:12Develop/Android

<?xml version="1.0" encoding="utf-8"?>

가장 위쪽에 있는 코드는 XML 파일에 일반적으로 추가 하는 정보이고, 이 파일이 XML 형식으로 된 것을 알려준다.

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

...중략...

</LinearLayout>

태그 속성에 xmlns:로 시작하는 속성이 있다.

xmlns: 뒤에 있는 android는 나머지 속성의 접두어로 사용 된다.

 

<LinearLayout xmlns:love="http://schemas.android.com/apk/res/android"
    love:layout_width="match_parent"
    love:layout_height="match_parent"
    love:orientation="vertical">
   
   ...중략...
   
</LinearLayout>

접두어는 위 코드처럼 사용자가 원하는 단어로 변경할 수 있다.

 

보통 오픈 소스 라이브러리를 제작하여 배포할때 사용된다.

 

xmlns 접두어

접두어 의미
xmlns:android 안드로이드 기본 SDK안에 포함된 속성을 사용함
xmlns:app 프로젝트에 사용되는 외부 라이브러리에 포함된 속상을 사용함
xmlns:tools 안드로이드 스튜디오의 프리뷰 화면등에서 화면에 보여줄때 사용함

 

id 속성

<Button
            android:id="@+id/btnButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼" />

 

id 속성 값은 아래와 같은 형식으로 정의하고 사용함

@+id/아이디 값

 

@+id 형식으로 입력하여야 한다.

안드로이드 초기 버전에는 @id 형식을 사용하였지만 지금은 @+id 형식을 사용한다. @id 형식은 거의 사용되지 않는다.

 

XML 네이밍 기법

 

Basic Principle

[무엇이]_[어디에]_[설명]_[크기]

[무엇이] : activity, fragment ...

[어디에] :​ main, user, settings ...

[설명] :​ title, content, profile ...

[크기] :​ 24dp, small ...

 

Layout

[무엇이]_[어디에].xml

activty, fragment, view, item, layout

ex) activity_main.xml, layout_cardview.xml

 

String

[어디에]_[설명]

ex) article_title, common_purchase, btn_submit

 

Drawables

[어디에]_[설명]_[크기]

ex) noti_icon_24dp

 

Ids

[무엇이]_[어디에]_[설명]

ex) imageview_menu_profile, main_title_tv

 

id 의 경우 mvp 아키텍쳐나 바인딩을 사용할 때는  소문자 카멜 

ex) mainTitle, submitBtn

 

 

JAVA 네이밍 기법

 

클래스, 메소드

모든 단어에서 첫 번째 문자는 대문자 나머지는 소문자

ex) String, Type, List, ArrayList, HistoryLog

 

변수, 파라미터

최초에 사용된 단어를 제외한 모든 단어의 첫 문자는 대문자 나머지는 소문자

ex) mainBtn, historyLog, listType,  getString, setLog

 

상수

모든 단어를 대문자로 작성

ex) FLAG_AUDIO_ON, FLAG_AUDIO_OFF

 

변수 접두사 축약어

의미 접두어 예시
label lbl lblText
Button btn btnNext
Image img imgTitle
Table tbl tblStudent
Dataset ds dsBook
Grid grd grdList
Combo cb cbCodebook

 

키워드와 비슷한 이름 사용 금지

static, public 등의 예약어는 사용 금지

사용을 해야 한다면 다른 단어와 조합하여 사용

 

Boolean 변수에는 is 접두어를 사용

ex) isFind, idExist