RxJava, RxAndroid 3.0 출시, 무엇이 변경되었지!?

RxJava 3.0 RxJava란 비동기적인 이벤트 기반의 프로그램을 만들 때 사용하는 라이브러리로써 모든 것을 스트림으로 처리한다. 이번 3.0.0 릴리즈에는 코드 전반적으로 많은 정리와 성능 개선이 이루어졌다고 한다. 어떤 점들이 개선되고 변화되었는지 알아보자. 메이저 버전넘버가 수정됨에 따라 아티팩트 아이디도 변경이 되었다. 그레이들에 RxJava3를 추가하기 위해서는 모듈레벨의 build.gradle에 다음과 같은 내용을 추가해야한다. dependencies 더보기…

여러 작업에 대해 단일 쓰레드를 사용하여 순차적으로 하나씩 진행하기

블루투스, 카메라, 마이크 등 단일 하드웨어에 의존적인 API사용에 대해서는 일반적으로 한번에 한가지 작업 밖에 할 수 없다. 예를 들어 동영상을 인코딩 하는 인코더 모듈이 존재하고, 이 인코더는 한번에 하나의 파일만 인코딩 할 수 있는 상황이라면 여러 동영상 인코딩 작업 목록을 순차적으로 하나씩 처리해야 할 것이다. [그림] 여러 요청들을 한번에 하나씩 더보기…

RxJava와 데이터 바인딩으로 유효성 검사하기

RxJava와 데이터 바인딩으로 유효성 검사하기 많은 안드로이드 애플리케이션이 회원가입, 은행, 쇼핑몰 주문 등과 같은 곳에서 Email, 전화번호, 이름, 비밀번호 등을 사용자로 부터 입력 받는다. 사용자의 단순한 실수 또는 어뷰징을 막기 위해 각 폼의 유효성 검사를 해야한다. 회원가입을 예로들었을 때 유효성 검사를 하는 시점을 다음중 하나를 택할 수 있다. 회원 가입 더보기…

Toast is not showing on Android Pie

I recently came across this fact: Some devices that running on Android Pie overwrite previous one. Toast toast1 = Toast.makeText(getApplicationContext(), “a”, Toast.LENGTH_SHORT); toast1.show(); Toast toast2 = Toast.makeText(getApplicationContext(), “b”, Toast.LENGTH_SHORT); toast2.show(); I don’t think Pie processes Toast message sequentially. It just shows last toast’s message only. (checked on my API 28 emulator) with RxJava2 더보기…

글쓴이 Charlezz,

프레그먼트간 통신하는 3가지 방법

프레그먼트 통신(Fragment Commnication) 안드로이드 공식 문서인 Communicate with other fragments에 프레그먼트간 통신하는 방법에 대해서잘 나와있지만, 저는 또 다른 방법들에대해서 설명하고자 합니다. AAC ViewModel 이용 ViewModel을 이용하면 Activity를 라이플싸이클 오너로 등록하여 공통된 뷰모델을 이용할 수 있습니다.  app레벨의  build.gradle에 다음과 같이 의존성을 추가합니다. //LiveData and ViewModel def lifecycle_version = “1.1.1” implementation “android.arch.lifecycle:extensions:$lifecycle_version” 더보기…

Reactive Programing(5) – 안드로이드에서의 RxJava 활용

Reactive Programing(1) – 리액티브 프로그래밍 개념잡기 Reactive Programing(2) – Reactive Operator Reactive Programing(3) – Reactive Operator Reactive Programing(4) – Scheduler Reactive Programing(5) – 안드로이드에서의 RxJava 활용 안드로이드에서 RxJava2 사용하기   자바는 함수형 프로그래밍을 제대로 지원하지 못하고 있으며, 여전히 Side Effect(부수효과)를 완벽하게 제거하지 못했다. 이러한 이유로 안드로이드에서 RxJava2를 사용할 수 있는 더보기…

Reactive Programing(4) – Scheduler

Reactive Programing(1) – 리액티브 프로그래밍 개념잡기 Reactive Programing(2) – Reactive Operator Reactive Programing(3) – Reactive Operator Reactive Programing(4) – Scheduler Reactive Programing(5) – 안드로이드에서의 RxJava 활용 Scheduler 스케줄러 개념 익히기 지금까지의 예제들은 대부분 MainThread에서 동작 했습니다. 이를 비동기로 동작하게 하기 위해 다른 쓰레드를 생성하거나 이용하는것이 바로 스케쥴러입니다. 예제를 살펴보도록 하겠습니다. 더보기…

Reactive Programing(3) – Reactive Operator

Reactive Programing(1) – 리액티브 프로그래밍 개념잡기 Reactive Programing(2) – Reactive Operator Reactive Programing(3) – Reactive Operator Reactive Programing(4) – Scheduler Reactive Programing(5) – 안드로이드에서의 RxJava 활용 Reactive Operators(리액티브 연산자) 지난 포스팅에서 생성연산자와, 변환연산자에 대해서 알아보았습니다. 이번 포스팅에서는 결합연산자, 조건연산자에 대해서 알아보겠습니다.   결합연산자 1. zip() 함수 2개 이상의 Observable을 결합하여 더보기…

Reactive Programing(2) – Reactive Operator

Reactive Programing(1) – 리액티브 프로그래밍 개념잡기 Reactive Programing(2) – Reactive Operator Reactive Programing(3) – Reactive Operator Reactive Programing(4) – Scheduler Reactive Programing(5) – 안드로이드에서의 RxJava 활용 Reactive Operators(리액티브 연산자) 리액티브 연산자의 소개 링크 : http://reactivex.io/documentation/operators 리액티브 연산자는 자바의 관점에서 보면 메소드이지만, 함수형 프로그래밍의 원리에 따르면 리액티브 연산자는 Side Effect가 없는 순수 더보기…

Reactive Programing(1) – 리액티브 프로그래밍 개념잡기

Reactive Programinng(Rx Java) Reactive Programing(1) – 리액티브 프로그래밍 개념잡기 Reactive Programing(2) – Reactive Operator Reactive Programing(3) – Reactive Operator Reactive Programing(4) – Scheduler Reactive Programing(5) – 안드로이드에서의 RxJava 활용 리액티브 프로그래밍이란? -> 데이터의 흐름과 전달에 관한 프로그래밍 패러다임   명령형 프로그래밍 vs 리액티브 프로그래밍 명령형 프로그래밍 – 작성된 코드가 정해진 더보기…