Submit Search
Upload
Reactive android
•
27 likes
•
5,074 views
shinnosuke kugimiya
Follow
Reactive Programming with Android
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 35
Download now
Download to read offline
Recommended
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜ
Shinobu Okano
20141120 ぬるぬる動くandroid tips
20141120 ぬるぬる動くandroid tips
Yusuke Konishi
ログ管理でウキウキAndroid Life (Log Management in Android)
ログ管理でウキウキAndroid Life (Log Management in Android)
Tomoaki Imai
Google Analytics勉強会資料
Google Analytics勉強会資料
kimiyuki shirai
Using RSS feeds for content curation and social scheduling
Using RSS feeds for content curation and social scheduling
Anna Hamilton-Gunn
Participate in the Future of Java Oredev
Participate in the Future of Java Oredev
Heather VanCura
How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...
Mani Sarkar
How to run a hackday
How to run a hackday
RichardWarburton
Recommended
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜ
Shinobu Okano
20141120 ぬるぬる動くandroid tips
20141120 ぬるぬる動くandroid tips
Yusuke Konishi
ログ管理でウキウキAndroid Life (Log Management in Android)
ログ管理でウキウキAndroid Life (Log Management in Android)
Tomoaki Imai
Google Analytics勉強会資料
Google Analytics勉強会資料
kimiyuki shirai
Using RSS feeds for content curation and social scheduling
Using RSS feeds for content curation and social scheduling
Anna Hamilton-Gunn
Participate in the Future of Java Oredev
Participate in the Future of Java Oredev
Heather VanCura
How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...
Mani Sarkar
How to run a hackday
How to run a hackday
RichardWarburton
Android wear ui guidelines ( and Circle Design UX )
Android wear ui guidelines ( and Circle Design UX )
Yukio Andoh
Shared Preferences Anti Pattern
Shared Preferences Anti Pattern
Shinobu Okano
王道的な使い方 Android Wear
王道的な使い方 Android Wear
Mima Yuki
Android Wearアプリ開発経験談
Android Wearアプリ開発経験談
Kenichi Kambara
ANCSとAndroid Wear徹底比較
ANCSとAndroid Wear徹底比較
Akira Sasaki
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee
RxJava on Android
RxJava on Android
yo_waka
開発効率アンチパターン
開発効率アンチパターン
shinnosuke kugimiya
Effective SQLite For Android
Effective SQLite For Android
Shinobu Okano
Adopt a JSR: CDI 2.0 at Devoxx UK
Adopt a JSR: CDI 2.0 at Devoxx UK
Antoine Sabot-Durand
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
JavaOne 2016 :: Bringing Robot online with Robo4j Framework
JavaOne 2016 :: Bringing Robot online with Robo4j Framework
Miro Wengner
Top 10 Ways to Ally for Women in Technology
Top 10 Ways to Ally for Women in Technology
Heather VanCura
2016 JCP Year End Summary
2016 JCP Year End Summary
Heather VanCura
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
Koji Hasegawa
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
Adopt-a-JSR session (JSON-B/P)
Adopt-a-JSR session (JSON-B/P)
Dmitry Kornilov
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
Nozomi Ito
Stac2014 石川
Stac2014 石川
Tatsuya Ishikawa
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
オブジェクト指向最強
オブジェクト指向最強
haganemetal
More Related Content
Viewers also liked
Android wear ui guidelines ( and Circle Design UX )
Android wear ui guidelines ( and Circle Design UX )
Yukio Andoh
Shared Preferences Anti Pattern
Shared Preferences Anti Pattern
Shinobu Okano
王道的な使い方 Android Wear
王道的な使い方 Android Wear
Mima Yuki
Android Wearアプリ開発経験談
Android Wearアプリ開発経験談
Kenichi Kambara
ANCSとAndroid Wear徹底比較
ANCSとAndroid Wear徹底比較
Akira Sasaki
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee
RxJava on Android
RxJava on Android
yo_waka
開発効率アンチパターン
開発効率アンチパターン
shinnosuke kugimiya
Effective SQLite For Android
Effective SQLite For Android
Shinobu Okano
Adopt a JSR: CDI 2.0 at Devoxx UK
Adopt a JSR: CDI 2.0 at Devoxx UK
Antoine Sabot-Durand
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
JavaOne 2016 :: Bringing Robot online with Robo4j Framework
JavaOne 2016 :: Bringing Robot online with Robo4j Framework
Miro Wengner
Top 10 Ways to Ally for Women in Technology
Top 10 Ways to Ally for Women in Technology
Heather VanCura
2016 JCP Year End Summary
2016 JCP Year End Summary
Heather VanCura
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
Koji Hasegawa
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
Adopt-a-JSR session (JSON-B/P)
Adopt-a-JSR session (JSON-B/P)
Dmitry Kornilov
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
Nozomi Ito
Stac2014 石川
Stac2014 石川
Tatsuya Ishikawa
Viewers also liked
(20)
Android wear ui guidelines ( and Circle Design UX )
Android wear ui guidelines ( and Circle Design UX )
Shared Preferences Anti Pattern
Shared Preferences Anti Pattern
王道的な使い方 Android Wear
王道的な使い方 Android Wear
Android Wearアプリ開発経験談
Android Wearアプリ開発経験談
ANCSとAndroid Wear徹底比較
ANCSとAndroid Wear徹底比較
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
RxJava on Android
RxJava on Android
開発効率アンチパターン
開発効率アンチパターン
Effective SQLite For Android
Effective SQLite For Android
Adopt a JSR: CDI 2.0 at Devoxx UK
Adopt a JSR: CDI 2.0 at Devoxx UK
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
JavaOne 2016 :: Bringing Robot online with Robo4j Framework
JavaOne 2016 :: Bringing Robot online with Robo4j Framework
Top 10 Ways to Ally for Women in Technology
Top 10 Ways to Ally for Women in Technology
2016 JCP Year End Summary
2016 JCP Year End Summary
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
Adopt-a-JSR session (JSON-B/P)
Adopt-a-JSR session (JSON-B/P)
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
Stac2014 石川
Stac2014 石川
Similar to Reactive android
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
オブジェクト指向最強
オブジェクト指向最強
haganemetal
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Akihiro Kuwano
Reactive cocoaをかじってみた。
Reactive cocoaをかじってみた。
孝文 田村
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
Keisuke Takahashi
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
コンピュータビジョンの今を映す-CVPR 2017 速報より- (夏のトップカンファレンス論文読み会)
コンピュータビジョンの今を映す-CVPR 2017 速報より- (夏のトップカンファレンス論文読み会)
cvpaper. challenge
Shinyユーザのための非同期プログラミング入門
Shinyユーザのための非同期プログラミング入門
hoxo_m
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
Keiichiro Ono
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方
Yuki Ishikawa
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Mikiya Okuno
「ディープラーニングでは、エコシステムが大切よ!」
「ディープラーニングでは、エコシステムが大切よ!」
Mr. Vengineer
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
susumu tanaka
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Tatsuya Tojima
Reactive Systems と Back Pressure
Reactive Systems と Back Pressure
Akihiro Ikezoe
20200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その2
Hikaru Tanaka
20150204 イタンジプログラミング講座テキスト第一回
20150204 イタンジプログラミング講座テキスト第一回
Yusuke Yokozawa
Android案件見積りに現れる要素、あるいは丁寧に埋設された地雷たち
Android案件見積りに現れる要素、あるいは丁寧に埋設された地雷たち
Yamashita Takeshi
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
Similar to Reactive android
(20)
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
オブジェクト指向最強
オブジェクト指向最強
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Reactive cocoaをかじってみた。
Reactive cocoaをかじってみた。
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
コンピュータビジョンの今を映す-CVPR 2017 速報より- (夏のトップカンファレンス論文読み会)
コンピュータビジョンの今を映す-CVPR 2017 速報より- (夏のトップカンファレンス論文読み会)
Shinyユーザのための非同期プログラミング入門
Shinyユーザのための非同期プログラミング入門
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
「ディープラーニングでは、エコシステムが大切よ!」
「ディープラーニングでは、エコシステムが大切よ!」
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Reactive Systems と Back Pressure
Reactive Systems と Back Pressure
20200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その2
20150204 イタンジプログラミング講座テキスト第一回
20150204 イタンジプログラミング講座テキスト第一回
Android案件見積りに現れる要素、あるいは丁寧に埋設された地雷たち
Android案件見積りに現れる要素、あるいは丁寧に埋設された地雷たち
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
More from shinnosuke kugimiya
Coordinator Layout Behavior
Coordinator Layout Behavior
shinnosuke kugimiya
Framework code reading
Framework code reading
shinnosuke kugimiya
読むと怖くないDagger2
読むと怖くないDagger2
shinnosuke kugimiya
このあと滅茶苦茶LGTMした
このあと滅茶苦茶LGTMした
shinnosuke kugimiya
just one line
just one line
shinnosuke kugimiya
これからの設計の話をしよう
これからの設計の話をしよう
shinnosuke kugimiya
例の縛るやつ(Data binding)
例の縛るやつ(Data binding)
shinnosuke kugimiya
Android Architecture
Android Architecture
shinnosuke kugimiya
KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話
shinnosuke kugimiya
Model View Presenter for Android
Model View Presenter for Android
shinnosuke kugimiya
あの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoR
shinnosuke kugimiya
More from shinnosuke kugimiya
(11)
Coordinator Layout Behavior
Coordinator Layout Behavior
Framework code reading
Framework code reading
読むと怖くないDagger2
読むと怖くないDagger2
このあと滅茶苦茶LGTMした
このあと滅茶苦茶LGTMした
just one line
just one line
これからの設計の話をしよう
これからの設計の話をしよう
例の縛るやつ(Data binding)
例の縛るやつ(Data binding)
Android Architecture
Android Architecture
KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話
Model View Presenter for Android
Model View Presenter for Android
あの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoR
Reactive android
1.
4GCEVKXG#PFTQKF
2.
#IGPFC ! •
Reactive Programmingって何? • Android で使えるの? • 実際に作ってみる • まとめ
3.
4GCEVKXG2TQITCOOKPI闋闎∶獑
4.
䧕訳闁闳闐 ⚮㊽䥥防陈阋附阺陎阋
5.
“Reactive Programmingは データフローと変化の伝播を中心とした
プログラミングパラダイムである” –Wiki (意訳)
6.
“FRPは非同期データストリームを用いる プログラミングである” –@andrestaltz
7.
“Reactive Programmingとは Reactive
Programming的考え方を 実現するプログラミング手法のこと” –Kugimiya プログラミング手法の話をしているのに、 名前のない考え方を 内包しているので伝えにくい
8.
4GCEVKXG2TQITCOOKPI䥥勤閰㢚 闐闗獑 データの流れや変化が自動でインタラクティブに
Viewなどに反映させる考え方
9.
1, こんな状態 ≬閰闘閻闻闒㐀闀
2, B2に =A1+A2をいれると 3, 加算されて3が表示される 4, A2を4に変更する 5, B2が反応して5になる!!
10.
閻间闺銙䛟闁闳䎛闓㧕闓箞㹫闒Ⅼ闺勤閰闳 ストリームという概念で物事をとらえる。 ストリームとは、
時間順に並んだ進行中のイベントの列 time です。 1つのストリーム イベントイベントイベントイベント
11.
time ストリームを考える事で、 A1に1
A2に2 A1に3 B2を1 B2を3 B2を4 反応(Reactive)できる! 注: 画像はイメージです。 パフォーマンスがあがる訳ではありません
12.
㡕䛧闁闳闐 Reactive Programmingとは
データの流れや変化が自動でインタラクティブに Viewなどに反映させる考え方を 実現する為に 物事をストリームでとらえて プログラミングする手法 です
13.
闉闒闧闓珯珯珯
14.
4GCEVKXG2TQITCOKPI闖∮剏闍閹闗 㐀屻䥥闓閻闻闒㐀闀 ・オブジェクト指向
・関数型> ・MVC ・MVVM > Reactive (=) Programming デザイン パターン> スニペット
15.
4GCEVKXG2TQITCOOKPI闗 #PFTQKF闏≠閰闳闖獑
16.
≠閰闦闁
17.
4Z#PFTQKF闺瞪⑆闁闳閻闐闏伂☹闓 4GCEVKXG2TQITCOOKPI闏銙蜐閴闏閵闦闁 RxAndroidとはRxJavaのAndroid
Moduleです。 RxJavaはJavaでReactive Programmingを行う為の ライブラリです。
18.
瞪⑆闗伂☹ Gradleファイルに下記を書くだけ
19.
銙楼闓∽闋闎闧闳猳
20.
伂☹闒闪闖闺∽闋闎闧闳镩 【仕様】 ボタン1かボタン2を
押すと カウントが1増える。 ! それだけ。
21.
4GCEVKXG2TQITCOOKPI闋闥閷勤閰闎闧闳 time InputAのストリーム
クリック time InputBのストリーム time 見るべきのストリーム クリッククリッククリック 二つをmerge! クリッククリック クリッククリッククリッククリッククリッククリック
22.
4GCEVKXG2TQITCOOKPI闋闥閷勤閰闎闧闳 time 見るべきストリーム
表示表示表示表示表示表示 ストリームを監視してoutputに出力する
23.
銙蜐猳 InputAのストリームを作成 InputBのストリームを作成
ストリームをmerge! Rx○○ではObserverパターンを適用していて、 ストリームが監視対象のため ストリームの事をObservableと読んでます。
24.
屬闳闡閵阔阣际閥阻闺簬屷閿闎 QWVRWV闓孉䰛闁闳 subscribeで監視し、
Actionにイベント追加時の処理を書く
25.
伂☹闒闪闖闺∽闋闎闧闳镪 【仕様】 outputに常に
A と Bの加算された値が 表示される。 ! ただそれだけ。
26.
4GCEVKXG2TQITCOOKPI闋闥閷勤閰闎闧闳 time 値変更
InputAのストリーム 値変更値変更値変更 time 値変更 InputBのストリーム 値変更 time 値変更 見るべきのストリーム 値変更値変更値変更値変更値変更 merge!!
27.
time OGTIG閿闇⬕⛩珮閻閮闒闳 Bの値変更
見るべきのストリーム Aの値変更Bの値変更Aの値変更Aの値変更Aの値変更 19 1 20 22 5 9 19 + ?を表示?+5を表示 欲しいのは両方の値!
28.
EQODKPG.CVGUV闺≠閲閮 time 値変更
InputAのストリーム 値変更値変更値変更 time 値変更 InputBのストリーム 値変更 combineLatest! time 値変更 見るべきのストリーム 値変更値変更値変更値変更値変更
29.
ㄙ闓闪閮䔨㢚闖磷砒闖闿阴陎阣闐 time 阖阞阣闓閿闎閷间闳
値変更 見るべきのストリーム 値変更値変更値変更値変更値変更 表示表示表示表示表示表示 これで加算が可能。 あとはこのストリームを監視してoutputに出力するだけ
30.
銙蜐猳 InputAのストリームを作成 InputBのストリームを作成
31.
⛩∴猳 見るべきストリームを作成 combineLatestを使って合体する
32.
屬闳闡閵阔阣际閥阻闺簬屷閿闎 QWVRWV闓孉䰛闁闳 subscribeで監視し、
Actionにイベント追加時の処理を書く
33.
↷闓闗閵闋闐閻闻闒Ⅼ闓≠閰闳 闖闏闗闒閳闵閮閳 ・/QFGN%QPVTQNNGT闖闌闒閶
・*VVR聆⋂闖际阊阃阔阣陇阔阸陎阔 闒闑闒闑 闐闗閬閰珮 'XGT[VJKPIKUUVTGCO闱閿閬闖闏闒闻闏闪閬閹闳闗闂珯
34.
闦闐闩
35.
・4GCEVKXG2TQITCOKPI闋闎∶闆闬闺䛧缷閿闒閬闐 ֺ哋ⓧ閴∶閿闎闳閳闰閷闷閳闱闒閬珮㨍㈴闓 !
・倱⼡阸闿陎阣闗∶闺阔阣际閥阻闐闁闳閳闈闐㋾閮 ! ・∶闺阔阣际閥阻闐閿闎㕒閮閳闒闑闖 ֺ阴阔阣防附阊阡闾阔闗闦闈闧闻闒㴂倃ℎ㐀
Download now