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
38
Context Receiversに思いを馳せる / Context Receivers
uzzu
0
780
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 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
module Synths; end
asonas
1
130
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
420
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
350
When Does a Local Qwen Start to Break
morshoto
0
200
20260912_スクフェス三河
kgnkhkr
0
280
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
280
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
260
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
230
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
420
AIで仕事のやり方を変える
matsu7874
3
1k
omasushiというライブラリを作った
polidog
PRO
0
200
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Code Review Best Practice
trishagee
74
20k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
210
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
310
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Embracing the Ebb and Flow
colly
88
5.2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
How STYLIGHT went responsive
nonsquared
100
6.3k
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