목록분류 전체보기 (61)
계발자 블로그

RecyclerView 안드로이드 개발 하다 보면 무언가를 리스트로 나타내줘야 하는 경우가 상당히 많습니다. 우리가 사용하는 앱들도 어떻게 보면 다 리스트 형식으로 나타나있죠 카톡에 친구 목록, 채팅 목록, 인스타그램 피드 등등 이러한 리스트를 스크롤 가능하게 구현 해주는 것이 리사이클러뷰(RecyclerView)입니다. 이와 비슷한 ListView라는 것이 있는데 재사용성에서 리사이클러뷰가 뛰어나기 때문에 리사이클러뷰를 사용하는 것입니다. 이것은 ViewHolder를 리스트뷰에서는 권장하는 것이고 리사이클러뷰에서는 무적권 사용해야 한다는 차이인데 ViewHolder를 통해 만든 객체를 재사용하기 때문입니다. 또한 리사이클러뷰에서는 애니메이션을 사용할 수 있고, LayoutManager를 이용해 리스트를..

Subject란? Subject는 Observable과 Observer를 모두 구현한 추상 타입으로 하나의 소스로 부터 다중의 구독자에게 멀티 캐스팅이 가능합니다. Subject는 Observer를 구현하므로 onNext(), onError(), onComplete()등의 메서드를 수동으로 호출하여 이벤트를 구독자들에게 전달할 수 있습니다. Subject는 Hot Observable입니다. Subject에는 PublishSubject, SerializedSubject, BehaviorSubject, ReplaySubject, AsyncSubject, UniCastSubject가 있습니다 이번에는 PublishSubject와 BehaviorSubject를 알아보겠습니다 PublishSubject Publi..

Scheduler란? RxJava에서는 스케줄러(Scheduler)라는 도구를 사용하여 멀테 스레드와 같은 비동기 작업을 도와줍니다 스케줄러의 종류 IO 스케줄러 IO스케줄러는 네트워크 요청, 데이터베이스 쿼리 작업을 하거나 파일 시스템 환경 등의 작업에서 비동기 처리를 위한 스케줄러 입니다 newThread 스케줄러 매번 새로운 스케줄러(스레드)를 생성합니다. computation 스케줄러 단순 반복적인 작업, 콜백 처리 그리고 다른 계산적인 작업에 사용됩니다. Trampoline 스케줄러 새로운 스레들르 생성하지 않고 현재 스레드에 무한한 크기의 큐를 생성하는 스케줄러입니다 모든 작업을 순차적으로 실행하는 것을 보장합니다. (FIFO) mainThread 스케줄러 RxAndroid에서는 안드로이드 메..

RxJava에서는 특정한 작업을 수행하는 메소드를 연산자라고 합니다. 대부분의 Observable 연산자는 Observable을 반환하므로 이를 통해 연쇄적인 작업을 차례대로 수행할 수 있습니다. 이것을 체이닝(Chainning)이라고 합니다. RxJava의 연산자에는 Observable을 생성하는 연산자 Observable을 변형하는 연산자 Observable을 필터링하는 연산자 Observable을 결합하는 연산자 오류를 다루는 연산자 디버깅을 돕는 연산자 등등이 있습니다 공식 문서에는 이렇게 정리가 되어있네요 http://reactivex.io/documentation/operators.html ReactiveX - Operators Introduction Each language-specific ..

http://reactivex.io/documentation/observable.html ReactiveX - Observable Observable In ReactiveX an observer subscribes to an Observable. Then that observer reacts to whatever item or sequence of items the Observable emits. This pattern facilitates concurrent operations because it does not need to block while waiting for the Ob reactivex.io Observable RxJava에서는 Observable을 구독(subscribe)하는 Obseve..
RxJava란? RxJava란 ReactiveX(Reactive Extensions)를 자바로 구현한 라이브러리입니다. ReactiveX는 옵저버 패턴, 이터레이터 패턴, 함수형 프로그래밍의 장점과 개념을 접목한 반응형 프로그래밍 기법입니다. Java 외에도 C++, C#, Swift, JavaScript등 여러 언어를 지원합니다. 그렇다면 반응형 프로그래밍이란? 반응형 프로그래밍(Reactive Programming)이란 주변 환경과 끊임없이 상호 작용을 하는 프로그래밍을 의미하며, 프로그래밍이 주도하는 것이 아닌 환경이 변하면 이벤트를 받아 동작하도록 만드는 프로그래밍 기법을 말합니다. 반응형 프로그램은 외부 요구에 끊임없이 반응하고 처리합니다. 왜 RxJava를 사용해야 할까 개발자들은 동시성 문제..

https://developer.android.com/guide/navigation 탐색 | Android 개발자 | Android Developers Android Jetpack의 탐색 구성요소를 사용하여 앱에서 탐색 구현 developer.android.com Navigation이란? 화면전환을 위한 Android Jetpack 라이브러리입니다 프래그먼트에서 화면 전환은 번거로웠고 코드도 길어졌습니다 이 라이브러리 사용으로 정말 간단하게 구현할 수 있습니다 데이터 전달도 가능합니다 구성요소 NavigationGraph 화면 간 이동 관계를 나타내는 XML 리소스 NavHost NavigationGraph로 부터 모든 목적지를 표시하는 빈 컨테이너 NavController NavHost 내에서 사용자의..

https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ko ViewModel 개요 | Android 개발자 | Android Developers ViewModel을 사용하면 수명 주기를 인식하는 방식으로 UI 데이터를 관리할 수 있습니다. developer.android.com AAC ViewModel이란? ViewModel이란 Android Jepack의 구성요소 중 하나로, 본래 ViewModel이란 이름은 소프트웨어 개발 디자인 패턴중 하나인 MVVM(Model — View — ViewModel) 디자인 패턴으로부터 파생되었습니다. MVVM의 관점에서 부르는 ViewModel과 Android Jetpack에 포함된 ViewM..

https://developer.android.com/kotlin/coroutines Android의 Kotlin 코루틴 | Android 개발자 | Android DevelopersAndroid의 Kotlin 코루틴 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴입니다. 코루틴은 Kotlin 버전 1.3에 추가되었으며 다른 언어에서 확developer.android.comhttps://developer.android.com/topic/libraries/architecture/coroutines 수명 주기 인식 구성요소와 함께 Kotlin 코루틴 사용 | Android 개발자 | Android Devel..

https://developer.android.com/topic/libraries/architecture/livedata LiveData 개요 | Android 개발자 | Android Developers LiveData를 사용하여 수명 주기를 인식하는 방식으로 데이터를 처리합니다. developer.android.com LiveData란 관찰 가능한 데이터 클래스입니다 rxjava의 Observable과는 달리 LiveData는 Lifecycle을 통해 생명주기를 따릅니다 저번에 Room을 사용했던 코드에 LiveData를 사용해 보겠습니다 엄청 간단합니다 기존에 List 부분을 LiveData로 감싸주면 됩니다. 그리고 메인 액티비티에서는 Observer 객체를 구현하고 힌트에서 처럼 it을 그대로 ..