Kotlin 기초 #1 바인딩

1

야! 너두 코틀린

목록 보기
1/13

오늘 기초에서 다뤄볼것은 바인딩입니다.

1. 🚗 바인딩? 그게 뭐야?

바인딩 이론
컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것. 프로그램 내에서 변수, 배열, 라벨, 절차 등의 명칭, 즉 식별자(identifier)가 그 대상인 메모리 주소, 데이터형 또는 실제값으로 배정되는 것이 이에 해당되며, 원시 프로그램의 컴파일링 또는 링크 시에 확정되는 바인딩을 정적 바인딩(static binding)이라 하고, 프로그램의 실행되는 과정에서 바인딩되는 것을 동적 바인딩(dynamic binding)이라고 한다. 프로그래밍에서는 바인딩을 가급적 뒤로 미루도록 권고하고 있다.

결과적으로 말하자면, 바인딩은 메모리 스텍에 묶는것이다.
우리가 Button을 만들때, 우리는 직접적으로 버튼을 하나하나씩 묶었다.

//findviewid를 이용하여 직접 메모리에 올렸다는 표현이 맞을것이다.😚
findViewById<>()

하지만 한 레이아웃에 바인딩할 객체들이 많으면 그만큼 코드는 더러워진다.

	onCreate(){
A = findViewById<>(R.id.A)
B =findViewById<>(R.id.B)
C =findViewById<>(R.id.C)
D =findViewById<>(R.id.D)
}
//보기만 해도 더러워... 🤣🤣🤣🤣

몇년전에는 코틀린 익스텐션이 이방법을 해결해줬다.

행복했다.. 익스텐션 😂😂😂😂😂😂

이제 지원이 안되는만큼 새로운 뷰바인딩 적용이 절실할 때이다.

2. 🚲 어떻게 쓰는건데?

일단 사전작업이 필요하다.

build.gradle 에 넣자.

android { 
// 기존 내용들 생략.. 
buildFeatures { 
// 뷰 바인딩 활성화 viewBinding true } 
}

이제 layout에 버튼을 하나 만들고 id를 지은뒤, Activity로 이동한 뒤, 변수를 추가하자.

변수 추가

class study5 : AppCompatActivity() {
//전역변수로 만든 바인딩 변수이다. lazy는 후에 설명하겠다.
// 파스칼 케이스(첫 글자 대문자) + 카멜 케이스 (낙타의 굽은 등 처럼 단어 단위로 대 소문자처리)가 합쳐져서 바인딩된다.
    //  이름 끝에 Binding 이라는 명칭이 달라붙는다.
    val binding by lazy { ActivityIntroBinding.inflate(layoutInflater)}

이제 사용할준비는 끝났다.

사용방법

//기존에 있던 ContentView는 삭제한다.
setContentView(binding.root)
//앞에 binding 은 만든 변수 + layout에 만든 component id 
binding.button2.setText("안녕하세요 홍드로이드 입니다.")

이처럼 바인딩하는법을 알아보았다. 참쉽쥬?

profile
쉽게 가르칠수 있도록 노력하자

1개의 댓글

comment-user-thumbnail
2021년 5월 27일

우아아아ㅏ아 덕분에 참쉽쥬

답글 달기