SEUNGYOON
-
Shared Element in NavigationAndroid 2023. 3. 4. 02:09
안드로이드 JetPack Navigation을 사용 중일 때 프래그먼트 간에 위와 같이 요소(이미지)를 공유하려면 어떻게 해야 할까요?안드로이드 공식문서에 이렇게 나와있습니다.FragmentNavigator.Extras클래스를 사용하면FragmentTransaction.addSharedElement()를 사용하는 것과 유사하게 공유 요소를 전환 이름으로 한 대상에서 다음 대상으로 매핑할 수 있습니다. 그런 다음 아래 예와 같이 추가 항목을navigate()에 전달하면 됩니다. FragmentNavigatiorExtras @Suppress("FunctionName") fun FragmentNavigatorExtras(vararg sharedElements: Pair) = FragmentNavigat..
-
Coroutine FlowKotlin 2023. 3. 4. 00:49
Asynchronous Flow suspending function은 비동기로 단일값을 반환하는 반면, Flow는 비동기로 동작하면서 여러 개의 값을 반환하는 function을 만들 때 사용하는 coroutine builder입니다. flow {}로 생성된 block은 suspend 할 수 있습니다. flow 역시 builder 이기 때문에 suspend 키워드 없이 함수를 만들 수 있습니다. emit 함수를 이용해 값들을 방출합니다. collect함수를 이용해 방출된 값들을 수집합니다. code fun foo() = flow { for(i in 1..3) { delay(100) emit(i) } } fun main() = runBlocking { val startTime = System.currentT..
-
View Binding in FragmentAndroid 2023. 2. 24. 02:10
Fragment에서 View Binding을 사용 시 발생하는 이슈가 있어 해당 이슈를 알아보는 글을 포스팅하려고 합니다. Problems in ViewBinding View Binding in Fragment private var _binding: ResultProfileBinding? = null // This property is only valid between onCreateView and // onDestroyView. private val binding get() = _binding!! override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { _..
-
View Binding: What is it?Android 2023. 2. 14. 14:32
View Binding은 왜 등장했을까? 오늘은 2019년 Google I/O에서 소개된 View Binding에 대해 알아보겠습니다. 현재까지 안드로이드에서 뷰에 접근할 수 있는 다양한 방법이 제공되었습니다. 위의 표에서 안드로이드 팀은 해당 방법들을 다음과 같은 세세 가지의 기준을 정해 비교했습니다. Elegance : 코드를 깔끔하게 작성할 수 있는지 Compile Time Safety : 컴파일 시간에 안전한지 Build Speed Impact : 빌드 속도가 빠른지 findViewById의 문제점 val textView = findViewById(R.id.txtView) 뷰의 개수대로 코드를 추가해줘야 합니다. (100개면 100줄을??) Null safety하지 못합니다. 잘못된 뷰 id로 인..