I. Application의 동작 순서
- 사용자가 App의 아이콘을 Click
- AndroidManifest.xml에 기록되어있는 Activity들 중에서
'android.intent.action.MAIN'으로 설정되어 있는 intent filter가 있는 activity 서치
- 찾은 activity에 name이 설정되어 있는 클래스 이름을 서치
II. ViewBinding
ViewBinding이란?
- Layout의 XML파일에서 선언한 View 객체를 코드에서 쉽게 이용하는 방법
- 해당 기능을 통해서 개발자는 View를 직접 추출하지 않고 사용이 가능하다.
-> Why? : Android OS에서 직접 View를 추출해서 변수로 담아주기 때문
ViewBinding의 기능
- View의 ID와 동일한 이름의 변수를 만들고 해당 변수에 View의 객체가 들어있어서
일의 양(코드의 양)을 줄여준다.
ViewBinding을 사용하는 방법
android {
(... 생략 ...)
viewBinding {
enabled = true
}
}
- [Gradle Scripts] - [build.gradle (Module:app)] 에 들어가서
위와 같이 android 영역에 buildFeature를 선언하고 다음과 같이
코드를 작성해주면 된다.
ViewBinding을 적용하는 방법
- 앞에서도 설명하였듯이, ViewBinding은 코드의 양을 줄여준다.
package com.name.package_name
class MainActivity : AppCompactActibity() {
override fun onCreate(savedInstance: Bundle?) {
super.onCreate(savedInstance)
setContentView(R.id.Activity_main)
}
}
package com.name.package_name
class MainActivity : AppCompatActivity() {
lateinit var activityMainBinding: ActiivtyMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(activityMainBinding.root)
- 위와 같이 변경하였을 떄 우리는 더이상 Kotlin으로 App을 제작할 때 View의 객체를 선언하고 하나하나 가져올 필요가 없다!
III. Layout
- 해당 포스팅에서는 Android Studio에서 사용하는 모든 Layout이 아닌
LinearLayout, ConstraintLayout에 대해서만 다룹니다.
LinearLayout
- Orientation(방향) : horizontal(가로 배열) | vertical(세로 배열)
- layout_weight : 화면을 구성할 때 여백을 채우거나,
각 버튼에 설정하여 가중치를 두는 속성
ConstraintLayout