Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

안드로이드에서 ButterKnife 사용하는 방법: 단계별 완벽 가이드

ButterKnife는 안드로이드 개발에서 findViewById()의 반복적인 호출을 줄여주는 어노테이션 기반 뷰 바인딩 라이브러리입니다. 이 글에서는 안드로이드 프로젝트에 ButterKnife를 적용하는 전체 과정을 단계별로 살펴보겠습니다.

1단계: 새 프로젝트 생성

Android Studio에서 File ⇒ New Project로 이동하여 새 프로젝트를 생성하고, 프로젝트 생성에 필요한 모든 세부 정보를 입력합니다.

2단계: 레이아웃 파일 작성

res/layout/activity_main.xml에 다음 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="..........."
        android:textSize="16sp"
        android:textStyle="bold"
        android:textAllCaps="true" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="..........."
        android:textSize="16sp"
        android:textStyle="bold"
        android:textAllCaps="true" />
    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="..........."
        android:textSize="16sp"
        android:textStyle="bold"
        android:textAllCaps="true" />
    <Button
        android:id="@+id/btnLoadText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="Load Text" />
</LinearLayout>

위 레이아웃은 세 개의 TextView와 하나의 Button을 수직으로 배치한 구조입니다.

3단계: Gradle 의존성 추가

build.gradle(모듈 앱) 파일을 열고 다음 의존성을 추가합니다.

implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

Gradle 파일 수정 후에는 반드시 Sync Now를 클릭하여 변경 사항을 동기화해야 합니다.

4단계: MainActivity 작성

src/MainActivity.java에 다음 코드를 추가합니다.

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.textView)
    TextView textView;

    @BindView(R.id.textView2)
    TextView textView2;

    @BindView(R.id.textView3)
    TextView textView3;

    @BindView(R.id.btnLoadText)
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textView.setText("Hi, How are you?");
                textView2.setText("Have a nice day!");
                textView3.setText("You are so good.");
            }
        });
    }
}

핵심 포인트: @BindView 어노테이션과 ButterKnife.bind(this) 호출만으로 뷰가 자동으로 바인딩되므로, 별도의 findViewById() 호출은 필요하지 않습니다. 이것이 ButterKnife가 제공하는 가장 큰 장점으로, 뷰가 많은 화면일수록 코드가 크게 간결해집니다.

5단계: 매니페스트 파일 확인

androidManifest.xml에 다음 코드가 포함되어 있는지 확인합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 스마트폰이 컴퓨터와 연결되어 있다고 가정합니다. Android Studio에서 앱을 실행하려면 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 아이콘을 클릭하세요. 목록에서 본인의 모바일 기기를 선택하면, 기기 화면에 아래와 같은 기본 화면이 표시됩니다.

안드로이드에서 ButterKnife 사용하는 방법: 단계별 완벽 가이드

안드로이드에서 ButterKnife 사용하는 방법: 단계별 완벽 가이드

처음에는 각 TextView에 "..........."가 표시되며, Load Text 버튼을 클릭하면 세 개의 TextView에 각각 새로운 문구가 나타나는 것을 확인할 수 있습니다.

참고: ButterKnife의 현재 상태

ButterKnife는 오랫동안 많은 개발자에게 사랑받아 온 라이브러리지만, 2020년 개발자 Jake Wharton이 공식적으로 지원 종료(deprecated)를 발표했습니다. 따라서 신규 프로젝트에서는 구글이 공식 지원하는 ViewBinding 또는 DataBinding 사용을 권장합니다. 다만 기존 레거시 프로젝트의 유지보수 시에는 ButterKnife 관련 지식이 여전히 유용하게 활용됩니다.