profile
안드로이드 개발자
post-thumbnail

View에 Background 속성이 적용 안되는 경우

개요Ripple Effect 샘플 프로젝트를 만들던 도중Background 속성 적용이 안되는 경우가 발생했다.현상적용시키려고 했던 drawable의 코드는 아래와 같다.corners 태그는 먹히는 거 같은데 그 외에 stroke나 solid 같은색 변경 관련은 하나도

2023년 3월 2일
·
0개의 댓글
·

9. Channel(채널)이란?

채널은 일종의 파이프라인이다. 채널을 열고 한쪽에서 값을 보내면 다른 쪽에서 수신하는 개념이다.기본적인 사용법은 간단하다.Channel<...>() 함수를 통해 생성할 수 있으며,데이터를 스트림에 밀어 넣을 땐 send, 스트림에서 받을 땐 receive 를 사용

2023년 2월 18일
·
0개의 댓글
·

8. SharedFlow란?

SharedFlow는 StateFlow의 일반화로 생각할 수 있다.StateFlow는 기본적으로 새 구독자가 있을 때 마지막으로 알려진 값을 내보낸다. SharedFlow를 사용하면 내보낼 이전 값 수를 구성할 수 있다.값의 버퍼가 가득 차면 어떤 일이 발생하는지 정의

2023년 2월 18일
·
0개의 댓글
·

1. LiveData란?

LiveData는 관찰 가능한 Data Holder 클래스이다.일반적인 Observable과는 다르게 LiveData는 LifeCycle을 알고 있으며,Observer 객체를 함께 사용한다.이러한 속성 때문에 2가지 특징이 있다.Activity, Fragment와 같은

2023년 2월 18일
·
0개의 댓글
·

Flow란 무엇인가? (발표용)

코루틴 flow는 코루틴 상에서 리액티브 프로그래밍을 지원하기 위해 만들어진 구현체코루틴에서 데이터 스트림을 구현하기 위해서는 Flow를 사용해야 한다.순차적으로 값을 배출해서, 정상적으로 완료하거나 에러를 던지는 비동기 데이터 스트림 입니다. 일시중단할 수 있는 함수

2023년 1월 18일
·
0개의 댓글
·
post-thumbnail

우선순위 큐와 힙(Heap)

일반적인 큐의 구조 FIFO(First In First Out)를 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 데이터가 먼저 나가는 자료구조이다.우선순위 큐를 사용하기 위해선 우선순위 큐에 저장할 객체는 필

2023년 1월 17일
·
0개의 댓글
·
post-thumbnail

Flow란 무엇인가?

코루틴 flow는 코루틴 상에서 리액티브 프로그래밍을 지원하기 위해 만들어진 구현체코루틴에서 데이터 스트림을 구현하기 위해서는 Flow를 사용해야 한다.순차적으로 값을 배출해서, 정상적으로 완료하거나 에러를 던지는 비동기 데이터 스트림 입니다. 일시중단할 수 있는 함수

2023년 1월 13일
·
1개의 댓글
·

머티리얼 디자인(Material Design)

머티리얼 디자인(Material Design)은 모바일, 데스크톱 등 다양한 디바이스들을 아우르는 하나의 일관된 구글의 디자인 가이드라인이다. 2014년, 구글이 스마트폰에 적용하면서 널리 퍼지기 시작했다. 빛에 따른 종이의 그림자 효과를 이용하여 입체감을 살리는 디자

2022년 11월 17일
·
0개의 댓글
·
post-thumbnail

MotionLayout

ConstraintLayout 2.0이 출시되면서 MotionLayout이라는 새로운 레이아웃이 등장했다. MotionLayout은 ConstrainLayout을 상속한 레이아웃으로 새로운 방식으로 동적인 화면을 구성한다.기존에는 애니메이션을 구현하기 위해서는 다음과

2022년 11월 10일
·
0개의 댓글
·

Retrofit이란?

REST는 서버에 존재하는 데이터에 접근하기 위한 규칙의 모음으로 행위, 자원, 표현으로 이루어져 있다.이러한 REST원칙을 잘 준수하는 API를 RESTful API라고 한다.REST API는 HTTP를 설계할 때 지켜야 할 아키텍처인데 OkHttp랑 Retrofit

2022년 11월 10일
·
0개의 댓글
·

Flow debounce를 이용한 검색 기능 구현

앱 내에 검색 기능을 구현할 때, EditText의 변화가 감지될 때마다 api를 호출할 경우 너무 많은 비용이 소모될 수 있다. 단어가 완성되기 전에 몇번이고, 오타를 낼때마다 의도치 않게 api를 호출하고, 이것을 한명의 유저만 수행하는 것이 아니기 때문에...Zi

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

Flow와 StateFlow의 차이

Flow는 데이터의 흐름이다. Flow는 데이터의 흐름flow을 발생시키기만 할 뿐 데이터가 저장되지 않는다.따라서 flow만을 이용해 안드로이드의 UIState를 업데이트 하기 위해서는 두가지 방법이 가능했다.화면이 재구성 될때마다 다시 서버 혹은 DB로부터 데이터

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

RxJava - Single

RxJava는 Observable과 유사한 “Single”을 제공한다.Single은 Observable의 변형된 형태이다. Observable과 비슷하지만, 여러 개의 데이터를 발행할 수 있는 Observable과 달리 Single은 한 개의 데이터(혹은 에러)만을 발

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

Jetpack Compose란?

Jetpack Compose는 안드로이드 앱의 UI를 쉽게 디자인하고 빌드하기 위한 라이브러리이다.Compose가 만들어진 목표는 다음과 같다.맞춤 레이아웃을 쉽게 작성고성능을 발휘기존 안드로이드에서 xml로 View를 그리고 코드 상에서 setContentView나

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

Flow란 무엇인가?

Coroutine의 Flow는 데이터 스트림이며 코루틴 상에서 리액티브 프로그래밍 지원 하기 위한 구성요소이다. 이를 이해하기 위해서는 먼저 리액티브 반응형 프로그래밍이 무엇인지 그리고 Flow가 리액티브 프로그래밍에 대응하여 어떠한 역할을 하는지를 알아야 한다.리액티

2022년 11월 7일
·
0개의 댓글
·

CoroutineScope : lifecycleScope, viewModelScope

Coroutine 사용시 Memory Leak을 방지하기 위해 Activity에서는 Activity의 Lifecycle에 맞춰진 CoroutineScope을 사용해야 하며, ViewModel에서도 ViewModel의 Lifecycle에 맞춰진 CoroutineScope

2022년 11월 7일
·
0개의 댓글
·
post-thumbnail

코루틴(Coroutine)이란?

Coroutine은 안드로이드에서 백그라운드 스레드에서 코드를 처리할 때 사용하는 하나의 방법이다. 코틀린 언어의 하위 개념인 줄 알았는데, CCoroutine을 사용하는 -즉 백그라운드 태스크가 필요한- 대표적인 경우는네트워크 리퀘스트 (Retrofit, Volley

2022년 11월 7일
·
0개의 댓글
·
post-thumbnail

RxJava - debounce

Rx Java를 사용하다가 접한 개념인데 정리하지 않으면 차이점이 햇갈릴거 같아서 글로 남긴다. 리서치를 해보니 전반적으로 사용되는 기술인듯 하다. (예제는 웹쪽이 압도적으로 많았다.)어떤 기술의 핵심을 이해하는데 가장 좋은 방법은 해당 기술이 나온 이유를 먼저 아는것

2022년 11월 7일
·
0개의 댓글
·

Observer 패턴, Disposable

옵저버 패턴은 객체(subject)의 상태 변화를 관찰하는 관찰자들, 즉 옵저버(observer)들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 각 옵저버에게 변화를 알리는(notify) 디자인 패턴입니다.옵저버 패턴에서 객체(subjec

2022년 11월 7일
·
0개의 댓글
·

Rxjava

Rxjava란 ReactiveX(Reactive Extensions)를 자바로 구현한 라이브러리입니다. 옵저버 패턴, 이터레이터 패턴, 함수형 프로그래밍의 장점과 개념을 접목한 반응형 프로그래밍 기법을 의미합니다.Rxjava는 이벤트 처리 및 비동기 처리의 구성에 최적

2022년 11월 7일
·
0개의 댓글
·