2022.04.02
Activity
- 사용자 인터페이스 화면을 구성하는 컴포넌트
- 앱의 상태변화가 일어날 때마다 생명 주기의 특정 단계에 해당하는 특정 콜백 메서드를 호출
- xml로 작성된 UI를 그리는 창을 제공
onCreate() - 액티비티 만들 때 뷰 초기화, 리스너 설정 등 한번만 하는 작업을 이 곳에서 많이 해준다.
onStart() - 화면이 사용자에게 보여질 때 호출
onResume() - 화면이 사용자와 상호작용하는 시점에 호출
onPause() - 팝업, 다이얼로그로 인해 화면의 일부가 가려졌을 때 호출
onStop() - 화면 전환등으로 액티비티가 더 이상 사용자에게 보여지지 않을 때 호출
onDestory() - 액티비티가 사용자나 시스템에 의해 완전히 종료될 때 호출
ViewBinding
원래 findViewById(R.id.tv_name) 으로 ID가 있는 모든 뷰 참조를 binding.tvName 이런 식으로 간단히 접근이 가능해진다.
* 사용법
1) build.gradle에 추가해준다.
buildFeatures{
viewBinding true
}
2) Activity에 viewBinding 적용해준다.
class SignUpActivity : AppCompatActivity() {
private lateinit var binding: ActivitySignUpBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivitySignUpBinding.inflate(layoutInflater)
setContentView(binding.root)
}
: 이때 Binding class의 이름은 xml파일 이름을 UpperCamelCase 표기법으로 바꾸고 뒤에 Binding을 붙이면 된다.
--> ActivitySignUpBinding
: inflate()을 호출하여 해당 xml에 접근 가능하도록 객체를 생성하고, 생성한 root뷰를 setContentView에 넘겨준다.
3) 활용예시
그렇다면 if 조건문 예시를 들어보면
if (!binding.etId.text.isNullOrBlank() && !binding.etPw.text.isNullOrBlank())
이렇듯 etId, etPw id값을 가져오기 위해 findViewByID를 하지 않고 binding.Id값을 가져오면 된다!!!! :)
[ 회고 ]
약 6-7개월 전 코틀린으로 안드로이드 처음 배우면서 뷰바인딩을 알게 되었는데, 그저 그때는 findViewById로 각 아이디 값을 적어주지 않고 간단히 binding을 쓸 수 있다는 것에 신기했던 기억이 난다.
지금은 맛보기로 배운 후라 데이터바인딩, 뷰바인딩 등의 차이점도 알게 되고 가장 기본이자 중요한 생명주기를 더 자세히 알 수 있었다.
나에게 가장 발전된 모습이라 할 수 있는 것은,,, 모든 코드를 onCreate()에 작성하지 않고 함수를 만들어 가독성 좋은 코드 작성하는 것이다. 그리고 로직도 생각해보며 어떻게 해야 간단하게 짤 수 있는지,,, 생각도 한다...
더 나아갈 점은! 아키텍처 사용하며 적용하는 것 !!
'coding study > Android' 카테고리의 다른 글
[Android] CoordinatorLayout - CollapsingToolbarLayout (0) | 2022.03.26 |
---|---|
[Android] 스레드 VS 코루틴 (0) | 2022.03.14 |
[Kotlin] Fragment : 프래그먼트 (0) | 2022.02.02 |
[Kotlin] 람다 및 고차 함수 (0) | 2022.01.31 |
[Kotlin] 추상 클래스 , 인터페이스 (0) | 2022.01.28 |