전체 글127 registerForActivityResult 사용 방법과 startActivityForResult가 Deprecated된 이유 registerForActivityResult 사용과 startActivityForResult가 Deprecated된 이유 startActivityForResult가 Deprecated된 이유를 확인한다 registerForActivityResult을 사용해서 Activity를 열고 닫을 때 callback을 받는다 registerForActivityResult을 사용해서 갤러리를 열고 그림 파일을 받아온다 HTML 삽입 미리보기할 수 없는 소스 startActivityForResult가 Deprecated된 이유 기존에는 Activity나 Fragment 내부에 startActivityForResult를 정의했다 그 결과 새롭게 연 Activity에서 메모리를 많이 사용할 경우 이전에 열려있던 Acti.. 2023. 1. 7. 코틀린 inline 클래스 와 함수의 정의 및 사용하는 이유, 경우 인라인(inline) 코드란? 본래라면 컴파일 시 별도의 함수 or 클래스로 만들어져야하는 것을 호출하는 본문 안에서 정의하도록 한 것 인라인 클래스는 주로 Wrapping Class를 만들 때 사용한다 Boxing 과정이 빈번하게 이뤄지면 인라인 클래스를 사용하는 의미가 없어진다 HTML 삽입 미리보기할 수 없는 소스 인라인 코드는 무엇인가? 본래라면 컴파일 시 별도의 함수 or 클래스로 만들어져야하는 것을 호출하는 본문 안에서 정의하도록 한 것이다. 인라인 일때와 아닐 때 코드 비교 인라인을 사용하지 않고 정의한 함수를 호출 fun fn(n1: Int, n2: Int): Int { return n1 + n2 } fun main() { val result = fn(1, 2) println(result).. 2023. 1. 7. 리사이클러뷰의 생명주기 분석 및 메모릭의 원인 리사이클러뷰의 라이프 사이클 (화면에 보여지기까지의 순서) onAttachedToRecyclerView - 리사이클러뷰를 화면에 붙임 onCreateViewHolder - 홀더를 생성 onBindViewHolder - 홀더와 뷰를 바인딩 onViewAttachedToWindow - 홀더가 화면에 온전히 보여짐 onViewDetachedFromWindow - 홀더가 화면에 보여지지 않음 onViewRecycled - 재사용할 홀더 가져오기 onDetachedFromRecyclerView - 리사이클러뷰를 화면에서 떼냄 HTML 삽입 미리보기할 수 없는 소스 작성한 RecyclerView의 코드 TestAdapter.kt class TestAdapter: RecyclerView.Adapter() { priv.. 2023. 1. 5. Navigation을 사용한 화면 이동 시 라이프사이클 변화 Jetpack의 Navigation을 사용하여 화면 이동을 했을 때 Activity, Fragment가 정확히 어떤 타이밍에 어떻게 lifecycle이 순환하는지 확인한다 HTML 삽입 미리보기할 수 없는 소스 필요한 종속 항목 선언 https://developer.android.com/jetpack/androidx/releases/lifecycle#kotlin def lifecycle_version = "2.6.0-alpha01" def arch_version = "2.1.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" // ViewModel utilities for Compose .. 2022. 12. 24. 이전 1 ··· 28 29 30 31 32 다음