Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Transition at RxJava 1.x to 2.x
Search
Ryutaro Miyashita
February 01, 2017
Technology
590
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Transition at RxJava 1.x to 2.x
第2回スタートアップAndroid勉強会
https://connpass.com/event/48090/
Ryutaro Miyashita
February 01, 2017
More Decks by Ryutaro Miyashita
See All by Ryutaro Miyashita
Java で書かれた Android アプリを Kotlin で書き直すまでの話 / Talk of rewrite Android app for Java to Kotlin
ryugoo
0
1.9k
開発 4 年目のアプリへの Kotlin 導入
ryugoo
0
480
チーム開発と Android アプリの構成
ryugoo
5
1.3k
開発 4 年目のアプリへの Kotlin 導入
ryugoo
1
2.8k
Either で想定内のエラーと想定外のエラーを別ものにしたい!
ryugoo
2
1.8k
全て S になる -RxJava と LWS を持ち込む楽しさ-
ryugoo
4
810
Kotlin さんと誕生日が近いだけの男の話
ryugoo
2
580
Android エンジニアになって 2 年の学び
ryugoo
1
2.8k
年末だしお掃除をしよう!
ryugoo
0
840
Other Decks in Technology
See All in Technology
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
170
ゼロから作るWebアプリの新定番!?Amplify Gen 2 × AWS Blocksで実現する「開発速度とRDBの柔軟性のいいとこ取り」
amixedcolor
1
160
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
140
「いつか使う」の「いつか」は来ない 〜AI駆動開発における「作らない」判断について〜
ikki0006
0
140
試験勉強はGrokBotでやれ
maigo999
0
110
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
600
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
1
250
HQ駆動開発で最高のAI-Contextを作ろう
sansantech
PRO
1
100
公共システムAdventCalendar2026
toru_kubota
0
260
生成AI時代のIAMのマニアックな話
takuros
6
2.5k
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
150
コードレビューをなくして見えたもの
henteko
0
140
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Believing is Seeing
oripsolob
1
270
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
390
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
BBQ
matthewcrist
90
10k
Odyssey Design
rkendrick25
PRO
2
930
Building the Perfect Custom Keyboard
takai
2
950
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
Technical Leadership for Architectural Decision Making
baasie
3
640
Raft: Consensus for Rubyists
vanstee
143
7.9k
Transcript
5SBOTJUJPOBU3Y+BWBYUPY 3Y+BWBYַ3Y+BWBYפך獳遤
3ZVUBSP.JZBTIJUB $IBU8PSL !SZVHPP@
3Y+BWB 3FBDUJWF&YUFOTJPOTGPSUIF+7. "OESPJE涪ַ鋅גծ葿ղדֹ ؝ؙٖءّٝ乼⡲ "TZOD5BTLך➿
%BUBCJOEJOH +BWB"1*ך➿ 4USFBN 0QUJPOBM &WFOU#VT
3Y+BWBY 㸜㹀晛ٔٔ٦أ 3FBDUJWF4USFBNTך➬圫彊䬿 ➭ך㹋鄲חכ"LLB4USFBNTהַ 3Y+BWBYַ㢌刿ָֿֿ֮
3Y+BWBYח獳遤ׅ (JU)VCך8IBUˏTEJFSFODFJO铣 ֻֻה"1*刿倜ׅ 3Y+BWB鸬䵿ٓ؎ـٓٔ،حفر٦زׅ ⹛⡲然钠
/POOVMM Observable.<Void>create(emitter -> { emitter.onNext(null); // NPE });
/POOVMM enum Notification { INSTANCE; } Observable.<Object>create(emitter -> { emitter.onNext(Notification.INSTANCE);
});
/POOVMM OVMMFNJUֿׅהכדֹזְ 0CTFSWBCMF7PJEכ0CTFSWBCMF0CKFDUד FOVNך⦼FNJUׅ״ֲח㢌ִ NBQؔلٖ٦ة٦זודSFUVSOOVMMׯג ⢽ִל/VMM0CKFDUػة٦ٝד㼎䘔ׅ
-JHIUXFJHIU4USFBN"1*ה穈さׇג ⦼0QUJPOBMדٓحفׅך葺ְַ
,JDLTUBSUFSBOESPJEPTT
#BDLQSFTTVSF Y List<Integer> nums; // Huge list Observable<Integer>create(emitter -> {
for (int i : nums) { emitter.onNext(i); } }) .onBackPressureBuffer() .subscribe(i -> { /* ignored */ });
#BDLQSFTTVSF Y List<Integer> nums; // Huge list Flowable<Integer>create(emitter -> {
for (int i : nums) { emitter.onNext(i); } }, BackpressureStrategy.BUFFER) .subscribe(i -> { /* ignored */ });
#BDLQSFTTVSF 0CTFSWBCMFד#BDLQSFTTVSFכ《䪔ִזְ 'MPXBCMF⢪ֲ 0CTFSWBCMFה'MPXBCMF幉㖈ׇׁהֹכ岣䠐 0CTFSWBCMFUP'MPXBCMF
'MPXBCMFUP0CTFSWBCMF 'MPXBCMFח㺔ׇ倯ָ#BDLQSFTTVSFח㼎䘔דֲֹ
4VCKFDU Y Subject<String, String> subject = new SerializedSubject( PublishSubject.create());
4VCKFDU Y Subject<String> subject = PublishSubject.<String>create() .toSerialized(); Processor<String, String> processor
= PublishProcessor.<String>create() .toSerialized();
4VCKFDU 4FSJBMJ[FE4VCKFDUכOFXדכזֻ 傀㶷ך4VCKFDUַUP4FSJBMJ[FEًاحسד⡲ 4VCKFDUדכ#BDLQSFTTVSFכ《䪔ִזְ 1SPDFTTPS⢪ֲ
4DIFEVMFST Y .subscribeOn(Schedulers.immediate())
4DIFEVMFST Y .subscribeOn(Schedulers.trampoline())
4DIFEVMFST 4DIFEVMFSTJNNFEJBUFכYדכ㶷㖈׃זְ ➿חUSBNQPMJOF⢪ֲ 5ISFBE-PDBMחُؗ٦؎ؚٝ׃ג鷵如Ⳣ椚
3Y#JOEJOH 3Y#JOEJOHכ7JFXך؎كٝز 0CTFSWBCMFח㢌䳔׃גֻ ⥋걾ה㸜䗰ך+BLF8IBSUPO⯓欰⡲ㅷ 植㖈NBTUFSـٓٝثָ3Y+BWBYח 㼎䘔׃גְָծ姻䒭ٔٔ٦أָת
3Y#JOEJOH allprojects { repositories { maven { url 'https://jitpack.io' }
} } compile 'com.github.JakeWharton.RxBinding:rxbinding:71f3a1b' CVJMEHSBEMF SPPU CVJMEHSBEMF BQQ ˟SYCJOEJOHBQQDPNQBUWװSYCJOEJOHTVQQPSUWず圫ךغ٦آّٝ䭷㹀ד0,
3Y+BWBYח獳遤׃ג ֻֻה堣唒涸ח縧ֹ䳔ִגְֻ OVMMFNJU׃גה/1&חזךד岣䠐ָ䗳銲 ずׄせך"1*ד䮙⹛ָ㢌גך،ٔ ⢽ִל0CTFSWBCMFUP-JTUכ4JOHMF鵤ׅ
4JOHMF.BZCF$PNQMFUBCMF鵤ׅ㢌刿כ㢳ְ 8IBUTEJFSFOUJO擾铣ׅץ׃ ㉏겗搀ֻ麊欽דֹגְ
&OKPZ3Y4USFBN-JGF