반응형

안드로이드 앱을 개발할 때 우리는 정보를 표출하기 위해서 TextView에 데이터를 설정한다.


표출하고자 하는 정보가 서버 혹은 외부에서 전달 받은 경우엔 아래와 같이 데이터를 가져와서 TextView에 setText를 통해 표출하면 된다.


@BindView(R.id.title)
protected TextView title;

private void setTitle() {
title.setText("샘플");
}


이런 방식으로 구현된 화면은 아래와 같다.



xml상에서 데이터를 설정하는 경우는 보통 아래와 같이 설정한다.


<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="샘플"/>


개발자가 xml을 통해 구성된 화면은 보통 아래와 같다.




보통의 안드로이드 입문자들이 텍스트를 설정할 때 위의 두가지 예에서 처럼 문자를 직접 설정한다.


본 포스팅에서는 TextView에 문자를 설정하는 경우에 효율적인 방법과 그 이유에 대해 기술하고자 한다.



모든 버튼에 "확인" 이라는 글씨가 표출되게 해주세요


개발자가 이러한 요청을 받았을 경우, 위의 두 방법을 이용하여 열심히 모든 TextView에 "확인" 이라는 두 글자를 설정하였을 것이다.


개발자는 개발이 완료되고 기획자에게 전달했을 때 기획자는 새로운 요구를 한다.



모든 버튼에 "확인" 말고 "OK"로 바꿔주세요 


개발자는 이런 요구사항 속에서 이미 중구난방으로 작성해버린 "확인" 글자를 찾아 어떻게 바꿀 것 인지 고민하게 된다.


물론, "확인"이라는 문자를 모두 찾아서 바꾼다는 방법도 있지만 프로젝트가 많이 진행되고 스파게티 코드가 양산된 상황에서 단순히 문자를 바꾸는 부분도 상당한 부담이 따르게 된다.


때문에, 프로젝트 초기에 이러한 문제를 사전에 방지할 수 있는 '습관'이 중요하다.




String 리소스 관리는 어떨까요?


필자가 안드로이드에 입문하여 학습하는 대부분의 분들에게 가장 처음하게되는 조언이다.

String 리소스는 말 그대로 res폴더 내 values 내에 'Strings.xml' 파일에서 관리되는 문자열 리소스 군 이다.




해당 파일에서 개발자가 각각에 상황에 맞는 문구를 처리해두면 필요한 상황에 공통적으로 적용 / 수정이 용이하다.


<resources>
<!--Common String block-->
<!-- 확인 부분만 다른 문구로 바꾸면 개발자는 영향도 0의 수정이 가능하다. -->
<string name="common_confirm">확인</string>
<string name="common_cancel">취소</string>
<string name="common_info">안내</string>
</resources>


다시 포스팅 초반에 TextView 설정으로 가보자.


@BindView(R.id.title)
protected TextView title;

private void setTitle() {
title.setText(R.string.common_confirm);
}


<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/common_confirm"/>



너무도 단순하지 않은가? 이러한 사소한 습관이 프로젝트 막바지로 갈 수록 많은 삽질과 수고스러움에서 여러분을 해방시켜 줄 수 있다고 생각한다.


이제는 프로젝트 진행 시, 처리해야 할 문자, 문자열에 대해 String 리소스로 처리해 보는건 어떨지 생각해보기를 추천하면서 본 포스팅을 마친다.

반응형

+ Recent posts