프로그래밍 354

[안드로이드] 예제로 알아보는 Foreground Service

들어가기에 앞서 Foreground Service를 어떻게 이용하면 좋을까요? 간단한 예제를 통해서 알아보도록 하겠습니다. 예제로 만들어 볼 앱은 가짜 음악 플레이어 앱입니다. 멜론이나 벅스, 지니 등 음악 앱을 이용하면 상단 알림창에 현재 재생중인 음악이 뜹니다. 그리고 다음곡이나 이전곡, 재생 및 일시정지가 가능한데요, 이것은 Foreground Service로 구현할 수 있습니다. 또 다른 예시로는 현재 유저가 걷는 걸음이나 거리를 측정하는 피트니스 앱이 있겠네요. 서비스에 대해 궁금하시다면 Service 전반에 대한 내용을 다룬 이전 글을 참조 해 주세요. MusicPlayer Example activity_main.xml 사진과 같은 레이아웃을 만들어 줍니다. Start Foreground Se..

[안드로이드] 서비스(Service)에 대해 알아보자

서비스란? 서비스(Service)는 백그라운드에서 오래 실행되는 작업(long-running operations)을 위한 컴포넌트입니다. 예를 들면 파일 다운로드라던지, 데이터 체크, 데이터 처리(Processing), 음악 재생, Content Provider와의 상호작용 등에 이용될 수 있습니다. 서비스의 특징 유저와 상호작용 할 수 없다. 액티비티의 생명주기에 종속되어 있지않다. 별도의 스레드에서 동작하지 않는다. 호스팅 프로세스의 "메인 스레드"에서 작동한다. 현새 비활성화된 액티비티보다 우선순위가 높다. 서비스의 종류 서비스에는 여러 종류가 있습니다. 이중 Started Service와 Bound Service를 나누어 설명하지만, 둘을 같이 쓸 수도 있습니다. 예를 들면 무한히 실행되는 바인드..

[안드로이드] Proto DataStore 사용법

원문 - medium.com/swlh/welcome-datastore-good-bye-sharedpreferences-fdeb831a1e58 - developer.android.com/topic/libraries/architecture/datastore 원문을 읽으면서 제가 공부하려고 번/의역한 것 입니다. 아직 블로그 반말을 써야할지 존댓말을 써야할지...안정해서 혼란스러운점 양해부탁드립니다...ㅋㅋㅋ 이제부터 그냥 존댓말 쓸게요. 나혼자 주저리 리뷰글이아니라면... Proto DataStore가 Preferences Data Store와 다른 점을 알아보려면 제 이전 글을 읽어주세요! - [Android] Preferences DataStore 사용법과 개념 Proto DataStore 간단 개요! ..

[Android] Preferences DataStore 사용법과 개념

원문 https://medium.com/@shalutd007/welcome-datastore-good-bye-sharedpreferences-4bf68e70efdbhttps://developer.android.com/topic/libraries/architecture/datastore원문을 읽으면서 제가 공부하려고 번/의역한 것입니다. Jetpack DataStoreDataStore는 Key-Value쌍 또는 Protocol buffers를 이용한 Typed Object형태로 데이터를 저장할 수 있게 해주는 솔루션이다.DataStre는 Kotlin의 Coroutine과 Flow를 사용해서 데이터를 비동기적이고, 일관적으로 저장할 수 있다. 또한 SharedPreference로 부터의 migration도 ..

[Kotlin] Channel이란?

원문: https://proandroiddev.com/kotlin-coroutines-channels-csp-android-db441400965f원문을 읽으면서 제가 이해하기 위해 번역한 것입니다.개념만 남기고 예제는 거의 뺐으니 예제를 보시려면 여기로~ Channels Channel은 2개의 Coroutine 사이를 연결한 파이프라고 생각하면 된다.이 파이프는 두 Coroutine 사이에서 정보를 전송할 수 있도록 한다.하나의 Coroutine은 파이프를 통해서 정보를 보낼 수 있고, 다른 하나의 Coroutine은 정보를 받기위해 기다린다. 채널이라는 말을 일상생활에서는 TV에서 제일 많이 쓰는데..채널을 통해서 우리는 방송국에서 쏴주는 방송을 본다. (일방적 커뮤니케이션)사진에서 1번 Corouti..

[안드로이드] FragmentStateAdapter / FragmentPagerAdapter 차이, 사용법

FragmentPagerAdapterFragmentPagerAdapter는 전체 Fragment를 메모리에 올려서 Fragment의 수가 많을 경우 메모리 오버헤드가 올 수 있다. FragmentStateAdapterFragmentStateAdapter는 Fragment의 savedInstanceState만 저장하고 Fragment가 보이지 않을때 (포커스를 잃을때) destroy 시켜버린다. 언제 어느걸 써야할까?따라서 많은 수의 Fragment가 Adapter에 들어갈거라면 FragmentStateAdapter를, 3개의 Fragment이하의 경우 FragmentPagerAdapter를 사용하면된다.

[안드로이드] Decorator, 귀찮은 커스텀 ItemDecoration 만들기는 그만!

그리드뷰나, 카드뷰 같은걸 만들때 나는 매번 커스텀 ItemDecoration 클래스를 만들어서 사용했는데 (그래서 심지어 프로젝트마다 사용법 다름 ㅋㅋㅋㅋㅋ)이 Decorator라는 라이브러리를 사용하면 일률적으로! 그리고 쉽게! 옵션은 다양하게! RecyclerView에 ItemDecoration을 추가할 수 있다. https://github.com/rubensousa/Decorator