Suche senden
Hochladen
RxJava on Android
•
27 gefällt mir
•
16,245 views
yo_waka
Folgen
RxJava NightのLTで発表した資料です。
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 17
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
freee社でのReactiveCocoa活用例
freee社でのReactiveCocoa活用例
yo_waka
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
Syo Ikeda
Sansan様 登壇資料
Sansan様 登壇資料
Daisuke Nagata
Starting java fx
Starting java fx
Kazuhiro Eguchi
React+TypeScriptもいいぞ
React+TypeScriptもいいぞ
Mitsuru Ogawa
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
React入門-JSONを取得して表示する
React入門-JSONを取得して表示する
regret raym
Wpfと非同期
Wpfと非同期
yone64
Empfohlen
freee社でのReactiveCocoa活用例
freee社でのReactiveCocoa活用例
yo_waka
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
Syo Ikeda
Sansan様 登壇資料
Sansan様 登壇資料
Daisuke Nagata
Starting java fx
Starting java fx
Kazuhiro Eguchi
React+TypeScriptもいいぞ
React+TypeScriptもいいぞ
Mitsuru Ogawa
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
React入門-JSONを取得して表示する
React入門-JSONを取得して表示する
regret raym
Wpfと非同期
Wpfと非同期
yone64
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
scala-kaigi1-sbt
scala-kaigi1-sbt
Kenji Yoshida
SQLQL とは!?
SQLQL とは!?
yancya
REACT & WEB API
REACT & WEB API
Shigeru Kondoh
Rx java x retrofit
Rx java x retrofit
Shun Nakahara
明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
yancya
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
はじめての Gatling
はじめての Gatling
Naoya Nakazawa
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
Riot.js と戦った話 (8月26日 oRo LT 会)
Riot.js と戦った話 (8月26日 oRo LT 会)
kata shin
Spring と TDD
Spring と TDD
Takeshi Ogawa
OpenStack API
OpenStack API
Akira Yoshiyama
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.
React Native GUIDE
React Native GUIDE
dcubeio
Rpscala18th
Rpscala18th
nanjakkun
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
心 谷本
Introduction to Retrofit and RxJava
Introduction to Retrofit and RxJava
Fabio Collini
Weitere ähnliche Inhalte
Was ist angesagt?
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
scala-kaigi1-sbt
scala-kaigi1-sbt
Kenji Yoshida
SQLQL とは!?
SQLQL とは!?
yancya
REACT & WEB API
REACT & WEB API
Shigeru Kondoh
Rx java x retrofit
Rx java x retrofit
Shun Nakahara
明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
yancya
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
はじめての Gatling
はじめての Gatling
Naoya Nakazawa
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
Riot.js と戦った話 (8月26日 oRo LT 会)
Riot.js と戦った話 (8月26日 oRo LT 会)
kata shin
Spring と TDD
Spring と TDD
Takeshi Ogawa
OpenStack API
OpenStack API
Akira Yoshiyama
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.
React Native GUIDE
React Native GUIDE
dcubeio
Rpscala18th
Rpscala18th
nanjakkun
Was ist angesagt?
(20)
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
scala-kaigi1-sbt
scala-kaigi1-sbt
SQLQL とは!?
SQLQL とは!?
REACT & WEB API
REACT & WEB API
Rx java x retrofit
Rx java x retrofit
明日から使える Java SE 7
明日から使える Java SE 7
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
はじめての Gatling
はじめての Gatling
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Riot.js と戦った話 (8月26日 oRo LT 会)
Riot.js と戦った話 (8月26日 oRo LT 会)
Spring と TDD
Spring と TDD
OpenStack API
OpenStack API
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
React Native GUIDE
React Native GUIDE
Rpscala18th
Rpscala18th
Andere mochten auch
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
心 谷本
Introduction to Retrofit and RxJava
Introduction to Retrofit and RxJava
Fabio Collini
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
Ryota Murohoshi
2 презентация rx java+android
2 презентация rx java+android
STEP Computer Academy (Zaporozhye)
Reactive Android: RxJava and beyond
Reactive Android: RxJava and beyond
Fabio Tiriticco
RxJava for Android - GDG and DataArt
RxJava for Android - GDG and DataArt
Constantine Mars
RxJava on Android
RxJava on Android
Dustin Graham
The Mayans Lost Guide to RxJava on Android
The Mayans Lost Guide to RxJava on Android
Fernando Cejas
RxJava in practice
RxJava in practice
Javier Gamarra
RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015
Constantine Mars
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
Yoshiharu Hashimoto
Intro to Functional Programming with RxJava
Intro to Functional Programming with RxJava
Mike Nakhimovich
JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢
なおき きしだ
Reactive programming with Rxjava
Reactive programming with Rxjava
Christophe Marchal
Introduction to rx java for android
Introduction to rx java for android
Esa Firman
Rxjava 介紹與 Android 中的 RxJava
Rxjava 介紹與 Android 中的 RxJava
Kros Huang
Practical RxJava for Android
Practical RxJava for Android
Tomáš Kypta
Headless fragments in Android
Headless fragments in Android
Ali Muzaffar
Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...
Mario Fusco
Andere mochten auch
(20)
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
Introduction to Retrofit and RxJava
Introduction to Retrofit and RxJava
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
2 презентация rx java+android
2 презентация rx java+android
Reactive Android: RxJava and beyond
Reactive Android: RxJava and beyond
RxJava for Android - GDG and DataArt
RxJava for Android - GDG and DataArt
RxJava on Android
RxJava on Android
The Mayans Lost Guide to RxJava on Android
The Mayans Lost Guide to RxJava on Android
RxJava in practice
RxJava in practice
RxJava for Android - GDG DevFest Ukraine 2015
RxJava for Android - GDG DevFest Ukraine 2015
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
Intro to Functional Programming with RxJava
Intro to Functional Programming with RxJava
JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢
Reactive programming with Rxjava
Reactive programming with Rxjava
Introduction to rx java for android
Introduction to rx java for android
Rxjava 介紹與 Android 中的 RxJava
Rxjava 介紹與 Android 中的 RxJava
Practical RxJava for Android
Practical RxJava for Android
Headless fragments in Android
Headless fragments in Android
Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...
Ähnlich wie RxJava on Android
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
Hironytic
Rx swift,Repro framewolrk
Rx swift,Repro framewolrk
Daisuke Nagata
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみた
Hironov OKUYAMA
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Toshiyuki Ienaga
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
ksimoji
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
Hiroyuki Ohnaka
はじめよう Backbone.js
はじめよう Backbone.js
Hiroki Toyokawa
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
なおき きしだ
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
R5 3 type annotation
R5 3 type annotation
EIICHI KIMURA
var RAC3 = ReactiveCocoa + Swift
var RAC3 = ReactiveCocoa + Swift
Syo Ikeda
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Kohei Asai
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
Kazuki Nakajima
Apache geode at-s1p
Apache geode at-s1p
Masaki Yamakawa
Om Next ~React.jsを超えて
Om Next ~React.jsを超えて
Kazuki Tsutsumi
実践 NestJS
実践 NestJS
Ayumi Goto
Java EE8 Report
Java EE8 Report
Norito Agetsuma
Tech talk salesforce mobile sdk
Tech talk salesforce mobile sdk
Kazuki Nakajima
Ähnlich wie RxJava on Android
(20)
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
Rx swift,Repro framewolrk
Rx swift,Repro framewolrk
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみた
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
はじめよう Backbone.js
はじめよう Backbone.js
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
R5 3 type annotation
R5 3 type annotation
var RAC3 = ReactiveCocoa + Swift
var RAC3 = ReactiveCocoa + Swift
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
Apache geode at-s1p
Apache geode at-s1p
Om Next ~React.jsを超えて
Om Next ~React.jsを超えて
実践 NestJS
実践 NestJS
Java EE8 Report
Java EE8 Report
Tech talk salesforce mobile sdk
Tech talk salesforce mobile sdk
Kürzlich hochgeladen
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Kürzlich hochgeladen
(10)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
RxJava on Android
1.
RxJava on Android
2014/10/28 @yo_waka
2.
はじめまして 若原 祥正
@yo_waka • freeeという会計サービスの会社で Android/iOSアプリを作っています
3.
ちょっとだけ宣伝 • 個人事業主の確定申告、
小規模法人の決算をもっと カンタンに • PC,モバイルはこだわらず、 どこでもどのデバイスでも帳 簿をつけられるよ
4.
RxJavaの使いどころ • MVVMのつなぎとして使っています
• FragmentからViewの状態変更を監視してコール バック実行 • ViewModelからAPIリクエストの結果を Fragmentに返す • ViewModelの状態をFragmentに反映させる ! • それぞれのインターフェースをObservableで統一
5.
RxJavaでMVVM Observable Activity/
ViewModel Model Fragment Observable Observable CustomView API Client
6.
API Client •
APIを叩いた結果をObservableで返す protected Observable<String> request(final int method, final String path) { return Observable.create(new RequestSubscriber(method, path)) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()); } // Observable.OnSubscribeを実装したクラスはObservableにできる public class RequestSubscriber implements Observable.OnSubscribe<String> { @Override public void call(final Subscriber<? super String> subscriber) { // リクエストのコールバックで // subscriber.onNext(string), subscriber.onCompleted() を呼ぶ } }
7.
ViewModel • APIクライアントの結果を処理するObservableを
返す public Observable<Item> getItems(String name) { return apiClient.request(Request.Method.POST, API_URL) .map(new GettingItemFunc()) /* doOnNextの前に処理を挟む */ .doOnError(new ErrorHandler()); /* エラー処理 */ } // callメソッドに渡す引数の数に応じて、Func0~Nまであるよ! private class GettingItemsFunc implements Func1<String, List<Item>> { @Override public List<Item> call(String jsonResponse) { Gson gson = GsonFactory.getInstance(); itemList = gson.fromJson(jsonResponse, ItemList.class); } }
8.
Fragment • APIクライアントの結果を処理するObservableを
返す public Observable<Item> getItems(String name) { return apiClient.request(Request.Method.POST, API_URL) .map(new GettingItemFunc()) /* doOnNextの前に処理を挟む */ .doOnError(new ErrorHandler()); /* エラー処理 */ } private class GettingItemsFunc implements Func1<String, List<Item>> { @Override public List<Item> call(String jsonResponse) { Gson gson = GsonFactory.getInstance(); itemList = gson.fromJson(jsonResponse, ItemList.class); } }
9.
RxAndroidについて
10.
RxAndroid • RxJavaのAndroid向けバインディングを提供して
くれるライブラリ • RxJavaと時を同じくしてio.reactivexに移った • Undocumented!! compile 'io.reactivex:rxandroid:0.22.0'
11.
実行スレッドの指定 • SubscriberとObserverの実行スレッドを指定できる
(AndroidSchedulerというユーティリティも提供) • APIコールなど非同期処理をSubscribeする場合はこい つで Observable.from("one", "two", "three", "four", "five") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(/* an Observer */);
12.
ハマりどころ • Activity,
Fragment上で実行する場合は注意が必要 • Subscriber実行中に画面回転などが起きると、 Fragmentが破棄された状態でコールバックが実行 されてNullPointerExceptionが起きがち • 気にしていても忘れがちなので何とかしたい
13.
Activity,Fragmentの バインディング •
実行前にactivity.isFinishing()、 fragment.isAdded()をチェック • ライフサイクルを気にせずObserveできて便利 AndroidObservable.bindFragment( // bindActivityもあるよ this, viewModel.getList() ) .subscribeOn(Schedulers.io()) .subscribe(/* an Observer */); // 自動でmainThreadで実行
14.
便利なOperator • OperatorConditionalBinding便利
条件付きObserverをカンタンに作れる falseが返された時は自動でunsubscribe()も呼ばれて素敵 public class Validator implements Func1<SomeClass, Boolean>() { @Override public Boolean call(SomeClass obj) { return obj.isValid(); } }; viewModel.createNew() .subscribe(new Observer<List<Deal>>() { /** do something */ }) .lift(new OperatorConditionalBinding<T, SomeClass>( new SomeClass(), new Validator() ));
15.
便利なOperator • ViewObservableでView,TextView,AdapterView
などのイベントをバインドできる ViewObservable.clicks(view, false).subscribe(new Observer<OnClickEvent>() { @Override public void onNext(OnClickEvent evt) {} }); ViewObservable.text(inputView, false) .delay(1000, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) // これを忘れると動かない .subscribe(new Observer<String>() { @Override public void onNext(String s) {} }); ViewObservable.itemClicks(adapter, false).subscribe(new Observer<OnItemClickEvent>() { @Override public void onNext(OnItemClickEvent evt) {} });
16.
まとめ • RxAndroidはAndroidでRxJavaのお供に
特にAndroidSchedulerは便利 • 用意されているOperatorは便利だけど実装小さい ので自分で作るのと大して変わらない • クラスファイルはどれも小さいので自前のRx実装 の参考にもしやすい • ドキュメントは無いけど
17.
ありがとうございました
Jetzt herunterladen