private lateinit var auth: FirebaseAuth
private var _binding: FragmentEmailpasswordBinding? = null
private val binding: FragmentEmailpasswordBinding
get() = _binding!!
위의 코틀린 코드를 읽기 위해서 필요한 지식을 공부해보았다.
var 와 val
var 키워드로 선언된 변수는 값을 변경할 수 있는 반면에, val 키위드로 선언된 변수는 한번 초기화되면 값을 변경할 수 없다.
lateinit
변수를 선언할 때, 초기 값을 할당하는 것이 아니고 나중에 필요한 시점에 값을 할당할 수 있다.
view binding
안드로이드 앱 개발에서 UI 요소와 XML 레이아웃 파일을 연결하고 간편하게 사용할 수 있는 방법을 제공하는 기술이다. View Binding을 사용하면 개발자는 findViewById()와 같은 번거로운 작업을 피하고, 안전하고 효율적으로 UI 요소에 접근할 수 있다.
?
?는 kotlin에서 nullable 값을 나타내는 연산자이다. 변수가 null을 가질 수 있게 한다.
!!
!!는 Kotlin에서 "non-nullable" 값을 나타내는 연산자이다. 만일 해당 변수가 null 인 경우, 예외를 발생시킨다.
get()
get()은 Kotlin에서 프로퍼티를 정의할 때 사용되는 특별한 함수이다. 이 함수는 해당 프로퍼티에 접근할 때 호출되며, 프로퍼티의 값을 반환한다. 위의 코드에서 binding이라는 프로퍼티에 접근하면 _binding이 null이 아닌 경우에는 _binding을 반환하고, null인 경우에는 예외를 발생시키게 된다.
위의 지식을 토대로 코드를 아래와 같이 이해할 수 있다.
private lateinit var auth: FirebaseAuth
Firebase Authentication을 처리하기 위한 FirebaseAuth 객체를 나타낸다. lateinit 키워드를 사용하여 이 객체가 나중에 초기화될 것임을 나타낸다.
private var _binding: FragmentEmailpasswordBinding? = null
private val binding: FragmentEmailpasswordBinding
get() = _binding!!
- _binding은 FragmentEmailpasswordBinding 타입의 nullable 변수로, View Binding 객체를 저장한다. 이 변수는 초기에 null로 설정되어 있다.
- binding은 FragmentEmailpasswordBinding 타입의 non-nullable 변수로, _binding 변수를 감싸고 있다. binding 프로퍼티는 _binding이 null이 아니라고 가정하고 반환하도록 설정되어 있다.
이러한 구조를 사용하면 View Binding을 사용하여 Fragment의 XML 레이아웃과 상호 작용할 때 간단하게 접근할 수 있으며, null 체크를 하지 않아도 된다.
예를 들어, binding.textView와 같이 View Binding을 통해 XML 레이아웃의 TextView에 접근할 수 있다.
'Application > Android Kotlin' 카테고리의 다른 글
[Android] 4대 컴퍼넌트 (1) | 2023.12.27 |
---|---|
[Android] 데이터 저장 및 관리 (0) | 2023.12.26 |
[Android] Activity 와 Fragment 의 차이 (0) | 2023.12.20 |
[Android] quick-start android (AndroidManifest.xml 분석) (0) | 2023.12.19 |
[Android] 입문 (0) | 2023.12.16 |