일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 커스텀상태
- Compose
- theming
- k8s
- 알고리즘
- 회고
- 알게되는
- 책
- 병렬프로그래밍
- ReactiveProgramming
- 코틀린
- 스레드
- Kotlin
- mockito
- 안드로이드스튜디오
- 안드로이드
- 안드로이드강좌
- android
- Gradle
- g 단위테스트
- viewmodel
- 디자인패턴
- Coroutine
- Rxjava
- kotlin강좌
- 병럴프로그래밍
- 글또
- 코루틴
- 테스트
- 자바
- Today
- Total
목록Coroutine (4)
선생님, 개발을 잘하고 싶어요.
도입 어떤 프로젝트를 해도 사용자 인증은 중요한 키워드다. 그리고 사용자의 쉬운 접근을 위해서는 소셜 로그인 지원은 거의 필수적이다. 이번에는 카카오 로그인에 대해서 a-to-z까지 따라만 하면 성공하는 형태로 포스팅을 쓴다. (유용한 gists 도 제공한다!) 절차 준비물 카카오 로그인을 설정하기 위해선 다음을 미리 준비하자. 카카오 개발자 계정 카카오 로그인 적용을 위한 안드로이드 프로젝트 카카오 디벨로퍼 페이지에서 준비하기 카카오 디벨로퍼 페이지에서 사용할 애플리케이션을 등록하자. https://developers.kakao.com/console/app 애플리케이션 추가하기 버튼을 눌러준다. 앱 이름, 사업자명을 지정한 다음 저장하기를 누른다. SampleOauthLogin 애플리케이션이 추가된 걸..
에러는 어디서 처리하는가? 다음 코드는 getImage가 에러를 던진다면 어떻게 될까요? fun main() = runBlocking { try { val deferredImage = scope.async { getImage("path") } deferredImage.await() } catch (e: Exception) { // ignore all exceptions } } kotlin 문서를 참조하면 async 내부에서 에러가 발생하는 경우 await 시점에 잡히기 때문에 getImage에서 발생한 에러는 위의 catch 구문에 의해서 처리되게 됩니다. 그렇다면 다음 코드는 어떻게 동작할까요? scope.launch { try { val deferredImage1 = async { getImage("..
서론 요즘 한창, 습관 기록 애플리케이션 사이드 프로젝트를 진행 중입니다. 이번 프로젝트는 서버가 없는 앱을 개발해야 했는데요. 그래서 데이터 관리를 위해 Room을 사용하기로 했습니다. Room개발에 까탈스러운 점은, Database 생성에 context가 필요하다는 건데요. 그래서 적절히 개발 됬는지 확인하기 위해서 Activity에 Room 코드를 작성한다. 앱을 런치해서 해당 Activity로 이동한다. 로그를 확인하며 원하는 대로 동작하는지 확인한다. 이런 절차로 진행했습니다만 🤔 귀찮아졌습니다. 대상 Room을 처음 써보시는 분 Room을 써보긴 했지만 리팩터링에 고민이 있으신 분 AndroidTest라는 녀석을 보긴 했지만 평생 써본 적 없으신 분 이 글은 매우 Room초심자의 입장입니다만...
https://medium.com/androiddevelopers/easy-coroutines-in-android-viewmodelscope-25bffb605471 > 이 포스팅 내용이 훨씬 좋습니다. 이거 확인 고고 도입 즐겁게 Coroutine 을 적용하고, ViewModel 테스트 코드를 작성한 찰나 테스트가 실패하는 경우가 발생하니 바로, viewModel 의 viewModelScope 때문이다. viewModelScope.launch 로 코루틴 을 실행하지 않고, runBlocking 으로 테스트 쓰레드를 막으면 테스트가 원하는 대로 동작하지만, 실제로 앱을 키면 에러가 나게 된다. 해결 코루틴 테스트 지원 라이브러리를 사용한다. 1. gradle (app 단위)에 라이브러리를 추가한다. dep..