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
RxJava 1.x -> 2.x に移行した話
Search
uzzu
July 25, 2017
Technology
910
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RxJava 1.x -> 2.x に移行した話
https://potatotips.connpass.com/event/60015/
uzzu
July 25, 2017
More Decks by uzzu
See All by uzzu
あなたは 何をして 何をもたらすのか? / reskilling-at-tokyo-2026
uzzu
0
42
Context Receiversに思いを馳せる / Context Receivers
uzzu
0
800
StoreKitのこれまでとこれから / StoreKit 2 from 1
uzzu
5
22k
Autofill Framework
uzzu
0
160
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
uzzu
3
4.7k
Billing Client 2.0 acknowledgement
uzzu
0
17k
Promoting IAP対応から学ぶ外部アプリ内課金実装 / Promoting IAP and others
uzzu
2
1.6k
ブログ作り直した / My blog @ Othlo Tech
uzzu
0
230
新規アプリ開発を支えるユーザ・決済基盤
uzzu
2
3k
Other Decks in Technology
See All in Technology
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
150
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
480
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
280
Kiro Crewをはじめよう
kizawa2020
1
160
Running Kotlin + Quarkus with Lambda
nealle
1
3.7k
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
420
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
150
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
130
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
2
720
How STYLIGHT went responsive
nonsquared
100
6.3k
Producing Creativity
orderedlist
PRO
348
41k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
WENDY [Excerpt]
tessaabrams
14
40k
New Earth Scene 8
popppiees
4
2.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Six Lessons from altMBA
skipperchong
29
4.5k
Transcript
RxJava 1.x -> 2.x @uzzu
None
⽅針 ・基本minimum releaseしたい ・master branchで1.xと2.xを共存させない ・適切な記述には書き換えない ・シナリオテストをトピック毎に通す
1. null許容なコードをnull⾮許容な形に修正 2. 依存ライブラリをnull⾮許容な形に修正 3. シナリオテスト実施、リリース 4. 統合⽤branch作成、RxJava1.xとRxJava2.xを共存させる 5. 依存ライブラリ利⽤箇所にRxJava2Interopを適⽤
6. シナリオテスト実施 7. 依存ライブラリの2.x対応 8. 依存ライブラリ利⽤箇所のRxJava2Interop利⽤箇所を削除 9. シナリオテスト実施 10. 本体コードにRxJava2Interopを適⽤ 11. シナリオテスト実施 12. Observable Sourceを2.x対応、 RxJava2Interop利⽤箇所を削除 13. シナリオテスト実施 14. 1.x, RxJava2Interopを削除 15. 実⽤段階アナウンス & masterマージ 16. リリース(予定)
1. null許容なコードをnull⾮許容な形に修正 2. 依存ライブラリをnull⾮許容な形に修正 3. シナリオテスト実施、リリース 4. 統合⽤branch作成、RxJava1.xとRxJava2.xを共存させる 5. 依存ライブラリ利⽤箇所にRxJava2Interopを適⽤
6. シナリオテスト実施 7. 依存ライブラリの2.x対応 8. 依存ライブラリ利⽤箇所のRxJava2Interop利⽤箇所を削除 9. シナリオテスト実施 10. 本体コードにRxJava2Interopを適⽤ 11. シナリオテスト実施 12. Observable Sourceを2.x対応、 RxJava2Interop利⽤箇所を削除 13. シナリオテスト実施 14. 1.x, RxJava2Interopを削除 15. 実⽤段階アナウンス & masterマージ 16. リリース(予定)
null⾮許容対応 ・2.xからnull⾮許容 ・これだけでminimum releaseできそう ・Completable, ⾃作Optional<T>, 空List<T>
1.xと2.xの共存 ・共存した状態でトピック毎に リリース可能な状態にはしていた ・ただ頭がおかしくなりそうだった ・共存しながらminimum releaseしつつ 徐々に移⾏は困難と判断 ・適宜masterブランチを取り込み2.x対応
ਆ https://github.com/akarnokd/RxJava2Interop
地味なTIPS (via: https://github.com/ReactiveX/RxJava/issues/4445)
シナリオテストの実施 ・リリース前に実施するシナリオテストを トピック毎に実施 ・動作互換性の担保
より適切なreactive streamの記述には書き換えない ・綺麗にするのは我慢 ・コードレビューのしやすさと 動作互換性を優先 ・2.x勉強がてらリファクタリングできる 隙があってもいいと思う
実⽤段階アナウンス リリース済 バージョン RCバージョン 次の バージョン
実⽤段階アナウンス ・Rx⽤語の変更差分 ・コーディングにおける注意点 ・依存ライブラリのAPI Changesの列挙 ・「RxJava2やっていこうな」
None
まとめ ・⼤掛かりな移⾏になりそうだったら… ・minimum releaseできそうならしよう ・まず⾮null許容対応をしよう ・RxJava2Interopを使おう ・1.xと2.xの共存は周辺整備しないと無理 ・テスト書こう ・「RxJava2やっていこうな」
End RxJava 1.x -> 2.x