mash-up
-
Replace LiveData, SingleLiveEvent with Coroutines!Android 2023. 2. 14. 14:34
Flow 와 Channel 의 작고 귀여운 기능 안녕하세요. Mash-up Android 10기 정세희라고 합니다. 요즘 쭉쭉 상승세인 Coroutine 의 귀여운 아이들인 Flow 와 Channel 의 간단한 기능 하나를 소개하기 위해 나타나게 되었습니다 : ) 안드로이드에서도 이제 별도의 라이브러리 추가 없이 Coroutine을 기본적으로 사용할 수 있습니다. 비동기 라이브러리의 대표적인 Rxjava를 뒤쫓고 있는 무서운 녀석이죠. 앞서 매쉬업 안드로이드 블로그에서 기본적인 Coroutine 동작방법에 대해서 설명했다면, 이번 글에서는 비동기적으로 사용하는 방법 외에 MVVM 아키텍처에서 자주 쓰이는 LiveData 와 SingleLiveEvent 를 Corouitne의 Flow, Channel 로 ..
-
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로 인..
-
AAC의 ViewModel 사용 방법 정리Android 2023. 2. 14. 14:28
소개 구글에서는 안드로이드 개발을 하는데 ViewModel과 Repository 사용을 추천하고 있습니다. 이는 공식 문서 Guide to app architecture에 나와있는데요. 이번 포스팅은 여기서 사용되는 ViewModel이 왜 나왔으며 어떻게 앱에서 초기화 하여 사용하는지 정리해보고자 합니다. Activiy와 Fragment는 복잡한 라이프 사이클을 가지고 있습니다. 많은 개발자들은 이 라이프 사이클에 맞춰 작업하는데 많은 고통을 겪고 있었고 이에 구글에서는 안드로이드 개발을 좀더 손쉽게 도와주는 라이브러리의 모음인 Jetpack을 2018년에 발표했습니다. Android Architecture Component 와 Android Jetpack Google IO 2017에서 새로운 라이브러리..
-
Dagger2 with AndroidAndroid 2023. 2. 14. 14:20
소개 이전에 Hilt에 대해서 소개해드렸는데 힐트 내부의 동작 방식이 어떻게 이루어지는지 잘 모르실 수도 있을 것 같아서 Dagger2가 어떻게 작동하고 어떤 방식으로 DI를 수행하는지 정리해 보았습니다.\ build.gradle //dagger2 implementation 'com.google.dagger:dagger:2.25' kapt 'com.google.dagger:dagger-compiler:2.25' implementation 'com.google.dagger:dagger-android:2.25' implementation 'com.google.dagger:dagger-android-support:2.25' kapt 'com.google.dagger:dagger-android-processor..
-
Coroutine 기초Kotlin 2023. 2. 14. 14:16
launch(Dispatchers.Unconfined) { // not confined -- will work with main thread println("Unconfined : I'm working in thread ${Thread.currentThread().name}") delay(500) println("Unconfined : After delay in thread ${Thread.currentThread().name}") } launch { // context of the parent, main runBlocking coroutine println("main runBlocking: I'm working in thread ${Thread.currentThread().name}") delay(10..
-
코딩테스트 플랫폼 정리기타 2023. 2. 14. 14:13
코딩테스트 플랫폼 정리 필자는 막 대학교를 졸업하고 취업전선에 뛰어든 초짜 취업준비생이다. 대기업, 중소기업, 스타트업 가리지 않고 내가 원하는 회사의 조건에 맞는다면 지원하고 있다. 그 과정에서 다양한 코딩테스트 플랫폼을 경험했고, "이런 코딩테스트 플랫폼이 있다고?"라는 감정을 느낄 때도 있었다. 이 경험을 나누고자 이 글을 써본다. 취업을 준비하기 이전에는 프로그래머스를 대표적으로 알았다. 그리고 취업을 시작한 뒤로는 세상에 많은 코딩테스트 플랫폼이 있다는 것을 알았다. programmers, codility, goorm, testdome 네가지의 플랫폼에 대해 소개해보려 한다. Programmers 가장 대중적으로 사용하는 코딩테스트 플랫폼이다. 네이버와 카카오에서 해당 플랫폼을 사용하여 2020..