일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DataBinding
- 안드로이드 fcm
- Android WebView
- 안드로이드 카카오 로그인
- 영어공부
- android recyclerview
- Kotlin FCM
- Android Navigation
- WebView
- 영어독립365
- 안드로이드
- Kotlin
- Android ProgressBar
- 66챌린지
- Android Interceptor
- 카카오 알고리즘
- Android 12
- scope function
- Android 12 대응
- Android ViewPager2
- Android
- 안드로이드 갤러리 접근
- 습관만들기
- 알고리즘 자바
- Android Jetpack
- Java
- 코틀린 코루틴
- 프로그래머스 알고리즘
- OkHttp Interceptor
- MVP Architecture
- Today
- Total
목록분류 전체보기 (137)
나미래 Android 개발자

이 글은 코틀린 코루틴 마르친 모스카와의 ⟪코틀린 코루틴⟫ 책을 기반으로 작성하였습니다. 여러분은 코루틴 스코프 함수는 어떤 것들이 있고, 어떤 경우에 사용해야 하는지 질문을 받는다면 답을 어떻게 하실건가요?만약 개발 중에 PR 리뷰로 또는 면접 질문으로 코루틴 스코프 함수를 왜 사용했냐는 질문을 받는다면 질문자를 납득할 수 있는 답변을 하실 수 있으신가요?만약 답변하기 어렵다고 생각이 든다면 이 글을 읽고 나서는 자신있게 coroutineScope에 대해서 위와 같은 질문에 대해서 답변하실 수 있으실 겁니다.코루틴 스코프 함수란?먼저 기본 배경 지식으로 '코루틴 스코프 함수'에 대해서 간략하게 설명하겠습니다.'코루틴 스코프 함수'는 코틀린에서 제공하는 코루틴 스코프를 만드는 중단 함수입니다.'코루틴 스..
"ViewModel에서 viewModelScope를 쓰면 따로 cancel() 안 해도 된다고들 하죠. 그 이유, 정확히 알고 계신가요?"혹시 아직도 정확한 원리를 설명 못하겠다면, 이 글을 반드시 끝까지 읽어보세요. 안 읽고 지나가면 분명 손해입니다. Android에서 Kotlin Coroutines를 제대로 쓰기 위해 꼭 알아야 하는 개념 중 하나가 바로 "코루틴 취소"입니다. 특히 ViewModel이나 Activity 생명주기에 따라 적절한 시점에 코루틴을 종료하지 않으면, 앱은 곧 메모리 누수나 예외의 늪에 빠지게 됩니다. 이번 글에서는 Kotlin Coroutines: Deep Dive의 9장 "취소(Cancellation)" 내용을 Android 관점에서 재해석하고, 실전 코드에 어떻게 적용할..

launch를 launch 안에 또 썼는데… 이게 무슨 순서로 실행되는 거지? viewModelScope 안에서 launch를 썼는데 화면이 닫혀도 계속 돌아가는 이유가 뭘까? Android 개발자라면 한 번쯤은 겪어봤을 이 찜찜한 상황들. Kotlin Coroutines의 구조적 동시성 개념을 이해하지 못하면, 우리는 종종 이런 질문에 명확한 답을 내리지 못한 채 감에 의존한 코드를 짜게 됩니다.이번 글에서는 『Kotlin Coroutines Deep Dive』 8장 “잡과 자식 코루틴 기다리기”의 핵심 내용을 바탕으로, Job과 구조적 동시성의 본질을 파헤치고 Android 실전에서 안정성과 신뢰성을 확보하는 방법을 함께 정리해보려고 합니다. 구조적 동시성(Structured Concurren..

코틀린 코루틴을 쓰면서 CoroutineContext는 반드시 마주치는 개념이다. 하지만 공식 문서를 읽거나 튜토리얼을 보면, "Context에 여러 요소를 담는다"는 식의 설명만 있어서 막연하게 느껴지기 쉽다. 나 역시 그랬다. 그래서 이번 글에서는, Android 개발자 입장에서 실제로 살아 있는 지식이 될 수 있도록, CoroutineContext를 '완전히' 풀어 설명하려고 한다. CoroutineContext란 무엇인가?CoroutineContext를 쉽게 말하면, 코루틴이 실행될 때 필요한 환경 정보들을 모아놓은 곳이다.예를 들어,어떤 쓰레드(Dispatcher)에서 돌릴지어떤 작업 그룹(Job)에 속하는지예외가 발생하면 어떻게 처리할지(ExceptionHandler)디버깅을 위한 이름(N..
[Android] TabLayout Under Line 개요 TabLayout 하단 전체에 밑줄을 그리는 방법을 간단히 공유합니다. 배달의 민족 앱에서 하단 "찜"탭 화면에 진입하면 상단 탭에 회색 밑줄이 있는데 이를 비슷하게 구현했습니다. 예시: 배달의 민족 > 찜 결과 화면 Code rectangle_underline_gray.xml: TabLayout's Background activity_main.xml
Dynamic Link - 파이어베이스 프로젝트 셋팅 개요 프로젝트 셋팅이 귀찮을 수도 있겠지만, 제가 포스팅하던 날을 기준으로 셋팅하는 방법을 이미지 하나 하나 첨부해서 설명되어있으니 천천히 따라해주시면 금방 마무리 될 것입니다! 저도 처음에 귀찮아서 잘 정리되어 있는 블로그를 참고하여 하려고 여기저기 짧은 블로그를 찾아 다녔지만, 그냥 하나 잡고 잘 따라하면 되더라구요 :) 1. 파이어베이스 프로젝트 생성 in 파이어베이스 콘솔 Firebase Dynamic Link를 생성하고 사용하기 위해서는 [파이어베이스 콘솔]에서 프로젝트를 생성하고 Dynamic Link 관련된 셋팅과 어플리케이션의 프로젝트에 대한 세팅도 해주어야 합니다. [파이어베이스 콘솔]에 접속하면 위와 같은 화면을 볼 수 있습니다. 위..
Single Responsibility Principle (SRP): 단일 책임 원칙 개요 개발 공부를 하면서 느끼는 어려움은 항상 용어와 추상적인 개념 설명인 것 같습니다. 단일 책임 원칙 명칭 그대로 "하나의 책임만을 갖어야 한다"인데요. 다르게 말하면 "하나의 클래스가 수정되기 위해서는 오직 하나의 이유여야만 한다." 만약 개발 면접 또는 개발자들 사이에서 SRP(단일 책임 원칙)에 대해서 알고 있냐는 질문에 단순히 정의를 말한다면 다른 사람들이 느끼기에 정말 SRP를 이해하고 있구나라고 생각할까요? 그래서 저는 오히려 정의를 "외우기" 보다는 제 방식대로 이해하고 SRP를 위배한 예제와 이를 해결하는 코드들을 작성해보며 SRP 개념을 "체화" 하기 위한 방식으로 학습했습니다. 이 글을 보시는 여러..

WebView ProgressBar 구현 개요 ProgressBar ProgressBar는 사용자에게 작업 진행률을 나타내는 사용자 인터페이스 컨트롤이다. 예를 들면 인터넷에서 파일을 다운로드하거나 업로드 할 때, 우리는 ProgressBar을 통해서 작업 진행 상황을 파악할 수 있다. ProgressBar에 대한 자세한 내용은 다음을 참고하면 도움이 될 것이다. 안드로이드 프로그래스바 안드로이드 원형 프로그래스바 in Kotlin 안드로이드 프로그레스바란 Android ProgressBar in Kotlin ProgressBar는 사용자에게 작업 진행률을 나타내는 사용자 인터페이스 컨트롤이다. 예를 들면 인터넷에서 devgeek.tistory.com 안드로이드 원형 프로그레스바 in Kotlin 안드로..