안드로이드 앱 개발에서 문자열 리소스를 사용하는 것은 매우 중요합니다.
이 글에서는 문자열 리소스를 사용하는 이유와 방법, 그리고 네임 규칙에 대해 알아보겠습니다.
문자열 리소스를 사용하는 이유
다국어 지원
앱을 여러 언어로 제공하려면 각 언어에 맞는 문자열 리소스를 쉽게 추가하고 관리할 수 있습니다.
(기본 언어의 문자열은 res/values/strings.xml
파일에 정의하고, 다른 언어에 대해서는 res/values-<language>/strings.xml
파일을 생성하여 해당 언어에 맞는 문자열을 추가할 수 있습니다)
유지보수 용이성
문자열을 코드에서 직접 하드코딩하는 대신 리소스 파일에 정의하면 나중에 변경할 때 한 곳에서 수정하면 되므로 유지보수가 쉽습니다.
(다국어 관련 담당자가 따로 있을 경우에도 앱의 다양한 화면을 찾아 다니지 않더라도 한 곳에서 쉽게 처리할 수 있습니다)
가독성 향상
코드에서 직접 문자열을 사용하는 것보다 의미 있는 이름으로 리소스를 정의하면 코드가 더 읽기 쉬워집니다.
문자열 리소스 정의 및 사용 방법
문자열 리소스 정의
res/values/strings.xml
파일에 문자열을 다음과 같이 정의합니다.
<resources>
<string name="button_label">Click Me!</string>
<string name="welcome_message">Welcome to the app!</string>
</resources>
여기서 name
속성은 다른곳에서 흔히 사용하던 id처럼 리소스의 고유 이름이 됩니다.
문자열 리소스 사용
XML 레이아웃 파일에서 버튼과 같은 위젯에 문자열 리소스를 사용하려면 @string/
형식을 사용합니다.
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_label" />
XML 디자인 메뉴에서 등록시:
Java/Kotlin 코드에서 문자열 리소스를 가져오려면 다음과 같이 합니다.
val buttonText = getString(R.string.button_label)
네임 규칙
소문자 및 언더스코어 사용
- 소문자: 문자열 리소스 이름은 소문자로 작성합니다.
- 언더스코어: 단어 구분을 위해 언더스코어(
_
)를 사용합니다. 예:btn_submit_label
.
접두사 사용
문자열의 용도에 따라 접두사를 사용하여 그룹화합니다. 예:
btn_
(버튼 관련):btn_submit_label
,btn_cancel_label
tv_
(텍스트뷰 관련):tv_error_message
,tv_title
의미 있는 이름 (다국어 지원을 고려한 네이밍)
- 문자열의 목적이나 내용을 명확하게 나타내는 이름을 사용합니다. 예:
welcome_message
,error_network
. - 다국어 지원을 염두에 두고 문자열을 정의하여 각 언어에 맞는 리소스를 쉽게 추가할 수 있도록 합니다.