2017-12-09 10 views
1

Android에서 반응 형 프로그래밍을 처음 시작할 때 rxJava와 rxAndroid가 많은 개발자가 선호하는 것으로 나타났습니다. 하지만 오늘은 여전히 ​​구글의 agera이라는 또 다른 라이브러리를 발견했으며, 여전히 프로세스를 유지하고 있습니다 (마지막 커밋은 2 개월 전임).Google agera vs rxAndroid

처음에는 rxJava처럼 보였지만 반응 형 프로그래밍을 쉽게 이해하는 데 도움이되는 의미있는 API 이름이 있습니다. 더 중요한 것은 Google의 멋진 개발자가 프로젝트 (Google Play 무비)에서이를 사용하고 있다는 것이고 그 이유가 있다고 생각합니다.

Google agera가 더 가벼워 졌는지 알고 싶습니다. rxJava 및 rxAndroid와 비교하여 성능은 어떻습니까? 생산에 큰 회사가 있습니까? 안드로이드에서 반응 형 프로그래밍을 이해하기 위해서는 그것을 배워야합니까?

답변

2

issues on Github에서 David Karnok (RxJava 관리자)와 좋은 비교가 가능합니다.

저는 설명서를 훑어 보았습니다. Agera는 강력한 0 세대 관계가있는 거의 1 세대 반응 라이브러리입니다. 원근감을 나타 내기 위해 :

  • 실제로는 addListener/removeListener 및 update()가 실제 값을 가지거나 가지지 않은 경우입니다. java.util.Observable 및 대부분의 GUI 프레임 워크는 0 번째 gen으로 간주 될 수 있습니다. 일반적으로 구성 가능한 기본 라이브러리를 만드는 것이 일반적으로 번거롭지 만 가능합니다.

  • 1 세대는 Microsoft 사람들이 ~ 2009 년에 발명 한 것입니다. 간단한 아키텍처와 뛰어난 조합 성으로 한단계 발전했습니다. 그러나 그들의 개념에는 2013 년 말에 발견 된 몇 가지 단점이 있습니다. 예 : Rx.NET, Reactive4Java

  • 2 세대 RxJava 1.x는 현재 무엇입니까. 그것은 동기 취소 문제를 해결하고, 선택적인 배압과 체인으로 들어 올리는 개념을 도입했습니다.
  • 3 세대는 ~ 2015 년에 설계된 유연하고 표준화 된 API를 사용한 Reactive-Streams 이니셔티브입니다. 이 아키텍처는 배압으로 무효화됩니다. 예로 Reactor 1, 2 및 Akka-Streams가 있습니다.
  • 4 세대가 최전선입니다. Reactive-Streams를 기반으로하며 효율적인 동기식 및 비동기식 사용을 허용하는 연산자 퓨전 형식의 적응 형 푸시 풀 옵션을 추가합니다. 예는 Reactor 2.5입니다. (RxJava 2.x는 현재 3에서 4 사이에 있습니다).

이 라이브러리는 선택 사항입니다. 원하지 않는 경우 사용하지 마십시오. 나를 잘못 이해하지 마라. 얼마나 많은 운영자가 있는지, 기반 플랫폼을 사용하여 반응 라이브러리를 얼마나 강력하게 인라인하는지 또는 GUI에서 배압을 신경 쓰지 않는지. 이 라이브러리를 도왔거나 영감을 줄 수있는 Rx 제품군의 아키텍처 경험, 함정 및 가능성에 관한 것입니다. Agera가 Reactive-Streams를 기반으로하거나 정신으로 고안 한 경우라면 괜찮은 이유는 무엇입니까? 원래의 질문으로

:

은이 재발 RxJava 아닌가요? 제

은 더 가벼운 무게로되어 있습니까?

때문에 API-바이스,

보완 성과 바이스에 대해 확실하지가 보인다?

대체로 addListener 기반 API는 보완 적입니다. Observable and Supplier의 이름 충돌은 불편할 수 있습니다.

아니면 영감을 받았습니까?

분명히 Rx에서 영감을받지 못했습니다.

구글은 동영상을 재생 우리는 내가 볼 넷플릭스 '발자취

가능한 소스 코드를 열 것을 좋아합니다. 아시다시피, 그들은 길을 따라 중요한 도움을 얻었습니다 ...

+0

전에이 문제를 읽었습니다. 따라서 Android에서 반응 형 프로그래밍을 이해하는 데 배울 필요가 없습니다. – nhoxbypass

+0

@nhoxbypass RxJava를 배우는 IMO는 더 많은 이점을 가지고 있습니다. 더 배우기는 어렵지만 (더 고급) 커뮤니티에서 더 많은 사용법을 가지고 있습니다. Agera는 RxJava를 배울 필요가 없습니다. – LordRaydenMK

+0

감사합니다. 나는 투표 할 것이고 당신의 대답을 받아 들일 것입니다 : D – nhoxbypass