[Kotlin] Coroutine : Flow
코루틴의 Flow는 어원인 흐름에서 유추 가능하듯이 물이 흐르는 파이프나 시냇물 처럼 데이터가 흐르는 통로를 만들어 줍니다. 즉, 연속적인 데이터를 요청하여 응답 받아야 하는 경우 사용할 수 있는데요. 1회성 데이터를 요청하는 경우에는 적합하지 않습니다. 보통 반응형 데이터 스트림...
코루틴의 Flow는 어원인 흐름에서 유추 가능하듯이 물이 흐르는 파이프나 시냇물 처럼 데이터가 흐르는 통로를 만들어 줍니다. 즉, 연속적인 데이터를 요청하여 응답 받아야 하는 경우 사용할 수 있는데요. 1회성 데이터를 요청하는 경우에는 적합하지 않습니다. 보통 반응형 데이터 스트림...
보통 어떤 기능을 만들기 위해 클래스나 인터페이스를 생성하고, 프로퍼티와 함수를 구현하고 이용합니다. 이렇게 생성된 클래스의 프로퍼티나 함수를 이용하여 캡슐화된 특정 기능을 호출 및 참조할 수 있습니다.
코루틴을 생성하기 위해서는 간단하게 Coroutine Builder 함수인 launch() 와 async() 를 이용하여 새로운 코루틴을 생성할 수 있습니다. 코루틴 빌더는 CoroutineScope 의 확장함수로써 기본적으로 상위 CoroutineScope 의 CoroutineC...
소프트웨어를 개발하는 데 있어서, 성능을 높이기 위해 가장 흔하게 사용할 수 있는 방법은 병렬로 실행하는 것 입니다. 병렬 실행은 하드웨어의 특성을 이용하여 성능을 높이는 가장 좋은 방법이지만, 병렬로 여러 프로세스나 스레드에서 같은 데이터를 접근하여 읽고 쓰는 과정이 수행될 때,...
최근들어 Compose 를 UI toolkit 으로 많이 사용하고 있습니다. 저 역시 마찬가지로 기존의 xml 기반의 뷰 작업들을 모두 Compose 로 migration 한 뒤로, 새로운 기능을 개발할 때 Compose 로 개발하고 있습니다. Compose 를 사용하고는 있지만...
프로젝트를 진행하면서 코드의 재사용을 위해 제네릭 함수를 사용하거나, Collection 과 같은 제네릭 클래스들을 빌트인 자료구조로 편하게 사용하곤 합니다. 이때까지 제네릭은 객체지향 프로그래밍에서 고급 기법으로 학부시절에도 그 이론을 이해하기가 너무 어려웠습니다. 그래서 관련 ...
안드로이드 앱 개발 프로젝트들을 살펴보면, 대부분 DI 관련 프레임워크로 Dagger 기반이면서 안드로이드 Jetpack 으로 제공되는 Hilt 나 Koin 등을 사용하는 것을 볼 수 있었습니다. 저의 프로젝트에 Hilt 를 적용하면서 DI 에 대해 자세히 알지 못했던 부분들을 새...
Jetsbrains 의 Kotlinx.Coroutines 는 비동기 작업을 쉽게 동기로 작성하고 실행할 수 있는 기능을 제공하는 라이브러리 입니다. Coroutine 의 핵심인 Suspend 키워드는 Kotlin Compiler 가 compile time 에 특정 코드를 생성 및 ...
현재 우리가 자주 사용하는 형태의 Activity 계층 구성도를 한번 살펴보겠습니다.
Activity 의 이해
상태관리#2에 이어서 다음으로는 Compose에서 상태관리가 어떻게 지원되고 있는지 에 대해서 공부한 내용을 정리해 보도록 해보겠습니다.
상태관리 #1에 이어서 상태관리 2번과정인 savedState Api 방법을 정리해보겠다.
앱에서 사용자가 화면영역에서 선택하고 보여졌던 상태들은 안드로이드 lifecycle의 변화에 따라 언제든지 사라질 수 있고, 그에 대한 대응을 해주는 것은 사용자 경험 측면에서 중요하다.
Android View #1에 이어서 Compose Layout은 Activity에서 어떻게 연결되고, 어떻게 생성되고, 사라지기 까지의 lifecycle에 대해서 공부한내용을 정리해보고자 한다.
최근에 ‘만보기’ 앱을 만들면서 기간(년/월/주/일)에 따라 걸음수를 차트형태로 보여주는 커스텀뷰를 만들어야 할 필요가 있었다.