Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Mobile Factory x RxJava
Pine Mizune
February 08, 2016
Programming
0
210
Mobile Factory x RxJava
2/8 に開催された、株式会社モバイルファクトリー・ナイル株式会社合同勉強会の発表資料です。
Pine Mizune
February 08, 2016
Tweet
Share
More Decks by Pine Mizune
See All by Pine Mizune
多言語対応と絵文字ジェネレーター / i18n of Emoji Generator
pine
0
380
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
820
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
420
Lerna による明示的疎結合アーキテクチャ
pine
1
520
CircleCI 2.0 x JavaScript
pine
3
460
Perl 卒業式
pine
0
270
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
380
Emoji Generator meets Browser Extensions
pine
1
2.7k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.4k
Other Decks in Programming
See All in Programming
Cloud Bigtable を使いこなす秘訣 2022
kusahana
0
230
GraphQL+KMM開発でわかったこと / What we learned from GraphQL+KMM development
kubode
0
100
Language Summit 2022: WebAssembly: Python in the browser and beyond
tiran
2
310
About Type Syntax Proposal
quramy
1
940
あなたの会社の古いシステム、なんとかしませんか?~システム刷新から考えるDX化への道筋とバリエーション~/webinar20220420-systems
grapecity_dev
0
120
Let's make a contract: the art of designing a Java API
mariofusco
0
160
脱オブジェクト指向講座(5分LT資料)
kishida
8
11k
Named Document って何?
harunakano
0
280
JGS594 Lecture 23
javiergs
PRO
0
400
microCMS × Shopifyで、ECサイトがリニューアル後急成長した話
microcms
0
450
Develop your CI tools
xgouchet
2
180
アプリのログをチーム外で活用してもらうためにやったこと
shotakashihara
0
130
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
157
12k
Ruby is Unlike a Banana
tanoku
91
9.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
It's Worth the Effort
3n
172
25k
Designing for humans not robots
tammielis
241
23k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
Statistics for Hackers
jakevdp
781
210k
5 minutes of I Can Smell Your CMS
philhawksworth
196
18k
GraphQLとの向き合い方2022年版
quramy
16
8.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
Fireside Chat
paigeccino
11
1.2k
Transcript
Mobile Factory x RxJava 8 Feb, 2016 18:00 〜 19:00
Mobile Factory x Nyle 合同勉強会 Kazuki Matsushita / Mobile Factory, Inc.
自己紹介 n ID / HN: @pine613 n 仕事: iOS /
Android 開発 ü Perl / Swift / Kotlin n 趣味: JavaScript / Crystal n Mobile Factory, Inc
目次 n 現在の仕事の技術領域 n RxJava とは ? n RxJava の利用シーン
n 他の言語での Rx n まとめ
目次 n 現在の仕事の技術領域 n RxJava とは ? n RxJava の利用シーン
n 他の言語での Rx n まとめ
現在の仕事の技術領域 ソーシャルアプリの開発 p サーバーサイド: Perl p ネイティブアプリ側: ü iOS: Swift
ü Android: Kotlin 本日は Android 側の話
目次 n 現在の仕事の技術領域 n RxJava とは ? n RxJava の利用シーン
n 他の言語での Rx n まとめ
RxJava とは ? (1/4) RxJava をヒトコトで言うと... 非同期ストリームのライブラリ n 非同期データを抽象化して同一に扱える n
複数の言語での実装があり n Netflix が開発 • UI イベント (タップ / スワイプ / etc ...) • ネットワークリクエスト
RxJava とは ? (2/4) 3Yͱࣅͨ֓೦ͱɺҐஔ͚ͮ 一つの値 複数の値 同期 Object Iterables
(Array, Hash, etc ...) 非同期 Promise / Future Observable Observable = Rx でストリームを扱う単位
RxJava とは ? (3/4) val odds = Observable.just(1, 3, 5)
val evens = Observable.just(2, 4, 6) val results = Observable.zip( odds, evens, { a, b -> a + b } ) results.subscribe { x -> println(x) } # => 3, 7, 11 ※ 諸事情により Kotlin
変換処理の一例 変換処理の一例
目次 n 現在の仕事の技術領域 n RxJava とは ? n RxJava の利用シーン
n 他の言語での Rx n まとめ
RxJava の利用シーン (1/3) ネットワーク リソース UI イベント UI コンポーネント ビューの状態
すべてのデータを非同期に結合
RxJava の利用シーン (2/3) あるデータのモデル UI コンポーネント ある状態変数 すべてのデータを非同期に結合 Observable<ModelFoo> タップのタイミング
Observable<Unit> Observable<Int> 変換処理
RxJava の利用シーン (3/3) 実際のアプリでの利用箇所 n ネットワークリソースの取得 n UI イベント (タップ
/ テキスト変更) n 位置情報の取得 n タイマー処理 ほぼ全ての場所で利用
目次 n 現在の仕事の技術領域 n RxJava とは ? n RxJava の利用シーン
n 他の言語での Rx n まとめ
ଞͷݴޠͰͷ 3FBDUJWF9 特に iOS / Android 業界で利用が活発 n Reactive
Extension (.NET) n RxJava (10,849 stars) n RxSwift (3,176 stars) n RxJS (1,311 stars) n 他 Ruby, Python, PHP の実装有り 元祖
言語が違っても、 同じインターフェイスで扱える!
目次 n 現在の仕事の技術領域 n RxJava とは ? n RxJava の利用シーン
n 他の言語での Rx n まとめ
·ͱΊ n 最近の Android 開発 -> RxJava を利用 n RxJava
-> 非同期ストリーム ü 非同期処理が楽に記述可能 n Rx は複数言語の実装あり ü 知識の流用が可能