RX


RXとは?


RxKotlinとRxAndroidを知る前に、少し先に知る必要があります.
これがReactive Programingです.
コンピュータープログラムは3種類あります.
  • は、与えられた入力値に基づいて結果を計算する変換プログラムであり、一般にコンパイルおよび数値計算のプログラムである.
  • インタラクティブプログラムは、プログラムによって主導され、ユーザまたは他のプログラムとインタラクティブである.ユーザの観点から見ると、通常、時分割システムはインタラクティブなプログラムである.
  • 反応計画 プログラムが主導するのではなく、プログラム自体の周囲環境とインタラクティブになり、環境が変化するとイベントを受信して動作します.
  • つまり、最近出てきた Reactive Programingは、データストリームと伝送に関するプログラミングモードと見なすことができる.

    なぜ使うのですか?


    開発者はユーザー体験を向上させたいと考えています.ユーザーエクスペリエンス(UX)が作成したアプリケーションは,反応型アプリケーションを開発したいと考えている.
    したがって、アプリケーション内のプライマリ・スレッドを停止または遅くすることはできません.スムーズなユーザー・エクスペリエンス(UX)と優れたアプリケーション・パフォーマンスをユーザーに提供したいと考えています.
    ただし、メインスレッドを自由に回転させるには、バックグラウンドで時間のかかる作業を行う必要があります.また,バックグラウンドでも,煩雑で複雑な計算タスクであればサーバ上で実行することが望ましい.そのため,ネットワークを非同期操作する必要がある.

    非同期操作もAsyncTaskが使えるのではないでしょうか。


    そうだ.
    でも. 2019年11月8日、開発者のCharlesMungerがAsyncTaskを正式に発売した. つまり、別の非同期ライブラリを使用する必要があります.では、なぜこのような状況になったのか、AsyncTaskをよく検討する必要があります.
    AsyncTaskはプロセス全体を簡略化した. アンドロイドのライフサイクルは気にしない. だから. アクティビティまたはアップグレードがアンドロイドライフサイクルで再生または破壊されると、エンドワークの内容が保護されない不便さがあります.

    コマンドプログラミングとは異なります

  • コマンドプログラミング(Imployment Programming)-作成されたコードは、指定された順序で実行されます.
  • アクティブ・プログラミング–まずデータ・ストリームを定義し、データ変更に関連する関数またはメソッドを更新します.
  • だからReactiveXが現れた


    ReactiveX非同期プログラミングと観測可能シーケンスを使用してイベントを処理するライブラリ

    RxKotlin、RxAndroidも同じ?


    現在は反応に関連するライブラリが多く、ほとんどがReactiveXを使用しているため、RxKotlin、RxJava、RxAndroid、RxSwiftなどはReactiveX拡張と考えられる.
    以下のように簡単に整理します.
  • RxJava:JavaでJava(JVM)用のReactiveX ExtensionsReactive Programmingモードを実現したプログラミングライブラリ
  • RxKotlin:KotlinベースのReactiveX Extensions RxJavaライブラリCotlinのアクティブプログラミングの特定部分に対して関数式プログラミングにより実現されるライブラリ
  • RxAndroid:AndroidのReactiveX Extensions RxJavaに最小限のクラスを追加します. 
  • ライブラリにより、アクティブなコンポーネントをAndroidアプリケーションで簡単に使用できます.
  • RxSWIFT:SWIFT用ReactiveX Extensions
  • 上のReactiveX拡張には共通点があります.
  • 高効率高速非同期処理
  • 関数式プログラミング
  • を一部サポート
  • 傍観者モード(Observerモード)
  • を採用
  • 呼からまた呼地獄から抜け出すことができる.
  • RxJava REACTIVE Javaとは何ですか?

  • RxJavaは、JavaおよびAndroidに対する逆プログラミング実装体
  • である.
  • 関数式プログラミングの影響で、優先関数構成(Ramdaフォーマット)
  • グローバル状態または割り込みを回避し、非同期またはイベントベースのプログラムを作成するときにStreamを使用 ) とみなす
  • RxJavaには、生産者/消費者コールバックを使用するファイバ・モードから構成、変換、スケジューリング、制限、エラー処理、ライフサイクル管理を開始する演算子が多数用意されています.
    オープンソースライブラリであり、RxJava JavaとAndroidだけでなく、サーバにも関連しています.
    いわゆるアクティブプログラミング. データまたはイベントの変化および応答のプログラミングに使用される一般的な用語.
    厳密に言えば、機能創造プログラミング(FRP)はRxJavaとは異なる.FRPは連続する時間ストリームを含み,RxJavaは時間的に不連続なイベントのみを処理する.

    いわゆる逆関数式プログラミング


    同期性と並列性のプログラミングを解決し、コマンド方式でアクティビティまたは非同期要件を作成するときに発生するコールバック地獄の問題を解決します.
    すなわち,RxJavaを用いたリアクションプログラミングは命令的手法ではなく宣言的手法を用いる.

    積極的なプログラミングが必要な瞬間

  • マウス移動またはクリック、キーボード入力、GPS信号、自動切替信号、タッチイベント処理
  • 非同期ネットワーク等の遅延I/Oイベント応答
  • イベントまたは以前に発生したユーザイベント、アプリケーションで発生したイベントまたはデータを処理するとき、
  • RxJava動作方式


    データまたはイベントストリームの観測可能なタイプで、プッシュ/応答をサポート
    実行を遅らせることができ、非同期と同期を使用することができ、すぐに操作を実行するのではなく、時間に応じて多くのイベントを処理することができます.
    RxJavaが反応型の核心になるのは発売であり,観測可能と観測可能のタイプではこれを支持している.
    Observer/ABserverペアをsubscribeに接続してストレッチをサポート
    Observer는 구독을 통해 3가지 유형의 이벤트를 받는다.
    
    interface Observer<T>{
    		void onNext( T t )
    		void onError( Throwalbe t )
    		void onComplete()
    }