일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 안드로이드 sunflower
- 안드로이드
- 프로그래머스 알고리즘
- 막내의막무가내 안드로이드
- 막내의막무가내 일상
- 막내의막무가내 플러터 flutter
- 프래그먼트
- 부스트코스
- 막내의 막무가내 알고리즘
- 막내의막무가내 플러터
- 막내의막무가내 안드로이드 코틀린
- 주엽역 생활맥주
- 부스트코스에이스
- 막무가내
- flutter network call
- 주택가 잠실새내
- 막내의막무가내 알고리즘
- 막내의막무가내 목표 및 회고
- 막내의막무가내 rxjava
- 막내의막무가내 프로그래밍
- Fragment
- 막내의막무가내 코볼 COBOL
- 막내의막무가내
- 안드로이드 Sunflower 스터디
- 막내의 막무가내
- 막내의막무가내 코틀린 안드로이드
- 2022년 6월 일상
- 막내의막무가내 코틀린
- 막내의막무가내 SQL
- 막내의막무가내 안드로이드 에러 해결
- Today
- Total
목록안드로이드/RxJava (12)
막내의 막무가내 프로그래밍 & 일상
RxJava 를 다양하게 사용하겠지만 단순 네트워크 통신으로 사용시 코드가 길어지는 경향이 있어 이를 BaseViewModel 에서 공통 함수를 만들어 사용하면 좋지 않을까 하고 만들어봤습니다. RxJava를 더 간단하게 작업하기 위해 Wrapping 하는 정석적이거나 많이 사용하는 코드가 있을거 같은데 아직 찾지 못하여 내가 그냥 간단히 만들고 기록해봄당.. 만든 샘플 예제 코드는 다음과 같습니다. 1. Single, Flowable, Completable 의 기본적인 네트워킹 작업에 대한 Base excute() 메소드 2. 이 BaseViewModel 을 상속후에 어떻게 활용하는지 exampleXXXXcall() 메소드로 예제 덕분에 빠르게 개발하고 기본적인 네트워킹 작업이 많은 경우 두 줄만으로 ..
[2020.12.30 블로그 포스팅 스터디 다섯 번째 글] [스케줄러] : 쉽게 설명하면 어떤 프로그램의 세부 일정(스케줄)을 주관하는 관리자로 생각하면 됩니다. 즉 스케줄러는 스레드를 지정할 수 있게 해주며 단순히 새로운 스레드를 생성해주고 어려운 비동기 흐름 관리를 쉽게 사용할 수 있도록 지원해주는 역할을 합니다. RxJava를 보통 네트워크 통신에 처음 사용해보는 경우가 많습니다. 저 또한 그랬고요. 그리고 자연스럽게 subscribeOn() 과 observeOn() 도 접하게 됩니다. 이 두 함수도 스케줄러를 지정하는 함수인데요. subscribeOn() 함수는 구독자가 Observable에 subscribe() 함수를 호출하여 구독할 때 실행되는 스레드를 지정합니다. observeOn() 함수는..
[2021-04-16 업데이트] [2020.12.22 블로그 포스팅 스터디 네 번째 글] [결합 연산자] : 결합 연산자는 다수의 Observable을 하나로 합치는 방법을 제공합니다. flatMap() , groupBy() 함수 등은 1개의 Observable을 확장해주는 반면 결합 연산자들은 여러 개의 Observable을 내가 원하는 Observable로 결합해줍니다. 1. zip() zip() 함수는 각각의 Observable을 모두 활용해 2개 혹은 그 이상의 Observable을 결합하는데 있습니다. 예를 들어 A, B 두 개의 Observable을 결합한다면 2개의 Observable에서 모두 데이터를 발행해야 결합할 수 있습니다. 그 전까지는 발행을 기다립니다. 위 다이어그램을 보면 두 개..
[2021-04-16 업데이트] [2020.12.12 블로그 포스팅 스터디 2 번째 글] [변환 연산자] : 변환 연산자는 만들어진 데이터 흐름을 원하는 대로 변형할 수 있습니다. 대표적인 예로 map()과 flatMap()이 있는데 둘의 차이점은 Observable하게 만드냐 안만드냐 차이가 있습니다. 이번 포스팅에서는 flatMap()과 같은 계열인 함수들에 대해 살펴보려고 합니다. [+] flayMap()은 map()함수를 좀 더 발전시킨 함수로 map() 함수는 원하는 입력값을 어떤 함수에 넣어서 변환할 수 있는 일대일 함수이고 flatMap() 함수는 똑같이 함수에 넣더라도 결과가 Observable로 나온다는 차이점이 있습니다. 또한 flatMap()은 일대다 혹은 일대일 Observable함..
[2021-04.16 업데이트] [2020.12.01 블로그 포스팅 스터디 첫 번째 글] RxJava 의 연산자에 대해 나중에 쉽게 찾고 활용할 수 있도록 간단한 설명과 함께 포스팅을 해보려고 합니다. ㅎㅎ [생성 연산자] : 생성 연산자의 역할은 Observable, Single 등과 같은 데이터 흐름을 만드는 것 입니다. (just(), fromArray(), fromIterable, onNext(), onError(), onComplete() 등이 있는데 이건 제외해서 남기겠습니다.) 1. interval() -> 일정 시간 간격으로 데이터 흐름을 생성합니다. 기본적인 스케줄러는 SchedulerSupport.COMPUTATION으로 계산 스케줄러에서 실행 됩니다. 함수 파라미터로는 (long pe..
[2021-04-16 업데이트] 안녕하세요ㅎㅎ RxJava 책을 복습과 함께 틈틈히 정리하면 더 기억에 남을 것 같아 포스팅을 하게되었습니다. RxJava의 Observable 에는 Cold, Hot 두 종류의 Obsevable이 있습니다. 둘의 큰 차이점은 Cold는 구독하기 전까지 데이터를 방출하지 않는 Lazy한 접근법이고 Hot은 구독자의 존재 여부 관계없이 데이터블 발행하는 Observable입니다. (그래서 데이터를 발행하는 속도와 구독자가 처리하는 속도가 크면 원치않는 문제가 생기기 때문에 배압에 주의해야합니다.) Cold 를 사용하는 예시는 웹 요청, 데이터베이스 쿼리, 파일 읽기가 있습니다. Hot 을 사용하는 예시는 마우스 이벤트, 키보드 이벤트, 시스템 이벤트, 센서 데이터 등이 있습..
새벽에 이 책을 읽다가 자기전에 후기 포스팅 남겨봅니다 ㅎㅎ 이번년도 2020 초중순쯤 사서 기본서로 공부했던 책입니다. 평소에도 반복해서 읽고 필요할때마다 찾아보고 있습니다. 보통 RxJava 책으로 유명한게 세네권 정도 있는걸로 아는데 그 중 한권인 책입니다. 1. 리엑티브 프로그래밍 소개 2. Observable 처음 만들기 3. 리액티브 연산자 입문 4. 리액티브 연산자의 활용 5. 스케줄러 6. 안드로이드의 RxJava 활용 7. 디버깅과 예외 처리 8. 테스팅과 Flowable RxJava 를 처음 접하는 사람도 위 목차와 같이 개념과 원리부터 시작해서 응용, 테스팅까지 넓고 다양한 범위를 다루고 있습니다. 넓은 범위지만 자세히 다루는 편이고 실습 예제도 있어 공부하는데 많은 도움이 됩니다. ..
class BachelorNoticeRemoteDataSourceImpl : BachelorNoticeRemoteDataSource { override fun requestNotice(): Single { return Single.fromObservable( Observable.create { val bachNoticeList: ArrayList = ArrayList() val doc: Document = Jsoup.connect("https://computer.cnu.ac.kr/computer/notice/bachelor.do") .get() // Base Url val contentElements: Elements = doc.select("div[class=b-title-box]").select("a..
https://github.com/mtjin/android-architecture-study-movieapp/tree/master/BACK_UP/9-RxJava/AndroidArchitectureStudy mtjin/android-architecture-study-movieapp 안드로이드 아키텍처 스터디 정리. Contribute to mtjin/android-architecture-study-movieapp development by creating an account on GitHub. github.com RxJava 를 공부하면서 기존 코틀린 고차함수와 레트로핏의 콜백(enqueue...)형식 으로 이루어져있던 Model Layer 부분을 RxJava로 변경하는 작업을 해보았습니다. (네트워크 통..
https://www.raywenderlich.com/2071847-reactive-programming-with-rxandroid-in-kotlin-an-introduction#toc-anchor-019 Reactive Programming with RxAndroid in Kotlin: An Introduction Learn about how Reactive programming is a whole new paradigm using RxJava and RxAndroid in Android with Kotlin. www.raywenderlich.com 이외에도 좋은 강의 및 문서가 많은 것 같습니다. 참고용 기록
rajava 프로그래밍 책을 읽으면서 공부중입니다. 시간이 부족해 매번 같은 곳만 보고 있네요... 간략히 정리좀 해볼려고합니다. 제목은 말 그대로 옵서버 패턴을 구현한 클래스입니다. 옵서버 패턴은 객체의 상태 변화를 관찰하는 옵서버 목록을 객체에 등록합니다. Observable 클래스를 통해 데이터 발행 이벤트를 추가하고 subscribe() 함수를 통해 Observable을 구독하면 그 때부터 구독자에게 데이터가 발행되기 시작합니다. 옵서버 패턴은 유튜버와 구독자의 개념으로 보면 이해하기 쉽습니다. 구독자가 유튜버 채널을 구독하면 유튜버가 영상을 올릴 때마다 구독자에게 알림이 가서 알 수 있습니다. [알림 이벤트] Observable은 3가지 알림 메소드가 있습니다. onNext : Observabl..
RxJava 공부를 조금씩 해볼려고 합니다. 공부하면서 중요하고 핵심적인 것들을 간략하게 정리하겠습니다. (진행형) [RxJava 개념] 리엑티브 프로그래밍은 데이터 흐름과 변화의 전달에 관한 프로그래밍 패러다임입니다. 리액티브 프로그램은 주변의 환경과 끊임없는 상호작용을 하는데 프로그램이 주도하는 것이 아니라 환경이 변하면 이벤트를 받아 동작합니다. 상호작용 프로그램은 자신의 속도에 맞춰 일하고 대부분 통신을 담당하는 반면, 리엑티브 프로그램은 외부 요구에 반응에 맞춰 일하고 대부분 정확한 인터럽트 처리를 담당합니다. [Obeservable 클래스] 옵서버 패턴을 구현한 클래스입니다. onNext() -> Observable 데이터 발행 알림. onComplete() -> 모든 데이터 발행완료 됬음을 ..