Submit Search
Upload
2015 07-23 Tokyo Realm Meetup
•
6 likes
•
1,468 views
Niko Yuwono
Follow
Realm Meetup presentation about RxJava at SanSan Office (Shibuya, Tokyo)
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 15
Download now
Download to read offline
Recommended
アグリノートを支える技術
アグリノートを支える技術
Yukiya Nakagawa
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
gree_tech
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
Hideki Saito
What's new Swift3
What's new Swift3
toyship
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
JOYZO
アジャイルジャパン長野サテライト
アジャイルジャパン長野サテライト
Masahiro Tomita
Enterprise mobility のご紹介 ~Infragisticsが提供する SharePoint モバイルプラットフォーム~
Enterprise mobility のご紹介 ~Infragisticsが提供する SharePoint モバイルプラットフォーム~
インフラジスティックス・ジャパン株式会社
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
Ikada Kaori
Recommended
アグリノートを支える技術
アグリノートを支える技術
Yukiya Nakagawa
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
gree_tech
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
Hideki Saito
What's new Swift3
What's new Swift3
toyship
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
JOYZO
アジャイルジャパン長野サテライト
アジャイルジャパン長野サテライト
Masahiro Tomita
Enterprise mobility のご紹介 ~Infragisticsが提供する SharePoint モバイルプラットフォーム~
Enterprise mobility のご紹介 ~Infragisticsが提供する SharePoint モバイルプラットフォーム~
インフラジスティックス・ジャパン株式会社
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
Ikada Kaori
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
GuildWorks
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
toshihiro ichitani
AITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえり
dsuke Takaoka
kintone ポータルいじってみた
kintone ポータルいじってみた
Satoru Yamaguchi
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
Shinya Tachihara
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
Hirokazu Egashira
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
feedtailor
Pokelabo android web
Pokelabo android web
Shumpei Shiraishi
Microsoft AzureでスマホからIoTまで
Microsoft AzureでスマホからIoTまで
Masaki Yamamoto
Hackable IoT devices which are used for connected home
Hackable IoT devices which are used for connected home
Daisuke Kimura
データ視覚化・分析アプリケーションの超速開発
データ視覚化・分析アプリケーションの超速開発
Satoru Yamaguchi
Archer
Archer
Tokuhiro Matsuno
Spring I/O 2018 報告会
Spring I/O 2018 報告会
NTT Software Innovation Center
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Takuya Iwatsuka
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
aitc_jp
AgileShimane始動!! in OSC2011Shimane
AgileShimane始動!! in OSC2011Shimane
Ryuichi Tsuruhara
20150417 kintoneユーザー会発表資料
20150417 kintoneユーザー会発表資料
hiroponz
html5jロボット部 第3回勉強会「ロボット × ビジネス」
html5jロボット部 第3回勉強会「ロボット × ビジネス」
robotstart
2015 0710 東京鯱光会月例会_公開用.pptx
2015 0710 東京鯱光会月例会_公開用.pptx
Osamu Sugiura
SMBのバックオフィス業務を最適化するAPI連携
SMBのバックオフィス業務を最適化するAPI連携
API Meetup
More Related Content
Similar to 2015 07-23 Tokyo Realm Meetup
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
GuildWorks
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
toshihiro ichitani
AITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえり
dsuke Takaoka
kintone ポータルいじってみた
kintone ポータルいじってみた
Satoru Yamaguchi
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
Shinya Tachihara
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
Hirokazu Egashira
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
feedtailor
Pokelabo android web
Pokelabo android web
Shumpei Shiraishi
Microsoft AzureでスマホからIoTまで
Microsoft AzureでスマホからIoTまで
Masaki Yamamoto
Hackable IoT devices which are used for connected home
Hackable IoT devices which are used for connected home
Daisuke Kimura
データ視覚化・分析アプリケーションの超速開発
データ視覚化・分析アプリケーションの超速開発
Satoru Yamaguchi
Archer
Archer
Tokuhiro Matsuno
Spring I/O 2018 報告会
Spring I/O 2018 報告会
NTT Software Innovation Center
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Takuya Iwatsuka
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
aitc_jp
AgileShimane始動!! in OSC2011Shimane
AgileShimane始動!! in OSC2011Shimane
Ryuichi Tsuruhara
20150417 kintoneユーザー会発表資料
20150417 kintoneユーザー会発表資料
hiroponz
html5jロボット部 第3回勉強会「ロボット × ビジネス」
html5jロボット部 第3回勉強会「ロボット × ビジネス」
robotstart
2015 0710 東京鯱光会月例会_公開用.pptx
2015 0710 東京鯱光会月例会_公開用.pptx
Osamu Sugiura
SMBのバックオフィス業務を最適化するAPI連携
SMBのバックオフィス業務を最適化するAPI連携
API Meetup
Similar to 2015 07-23 Tokyo Realm Meetup
(20)
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
AITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえり
kintone ポータルいじってみた
kintone ポータルいじってみた
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
Pokelabo android web
Pokelabo android web
Microsoft AzureでスマホからIoTまで
Microsoft AzureでスマホからIoTまで
Hackable IoT devices which are used for connected home
Hackable IoT devices which are used for connected home
データ視覚化・分析アプリケーションの超速開発
データ視覚化・分析アプリケーションの超速開発
Archer
Archer
Spring I/O 2018 報告会
Spring I/O 2018 報告会
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
AgileShimane始動!! in OSC2011Shimane
AgileShimane始動!! in OSC2011Shimane
20150417 kintoneユーザー会発表資料
20150417 kintoneユーザー会発表資料
html5jロボット部 第3回勉強会「ロボット × ビジネス」
html5jロボット部 第3回勉強会「ロボット × ビジネス」
2015 0710 東京鯱光会月例会_公開用.pptx
2015 0710 東京鯱光会月例会_公開用.pptx
SMBのバックオフィス業務を最適化するAPI連携
SMBのバックオフィス業務を最適化するAPI連携
2015 07-23 Tokyo Realm Meetup
1.
Copyright 2014 Shiroyagi
Corporation. All rights reserved. 2015-07-23 Realm Meetup 白ヤギコーポレーション Shiroyagi Corporation Niko Adrianus Yuwono
2.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 2 自己紹介 Niko Adrianus Yuwono Android Developer Github : https://github.com/NAYOSO インドネシアから来ました!
3.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 3 300万テーマから選べるニュースアプリ 1 好きなテーマを探す 2 フォローする 3 毎日ニュースが届く 使い方は簡単! ベストアプリにも選ばれた「あなた色に染まる」ニュースアプリ
4.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 4 RxJava RxJavaはAsynchronousプログラミングのAPIです。 ObservablesでAsynchronousデータの流れを表しま す。Observablesも色んなオペレータがあって、オペ レータでObservableをフィルター、選択、変換、構 成、そして組み合わせすることができます。
5.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 5 Observableとは? ・ObservableというObjectはタスクが終わったあとに Subscriberに通知して、SubscriberはObservableが発 するものを操作します。 ・Observableは一つのタスクを待たずにSubscriberを 使って、SubscriberがObservableを監視して、 Observableのタスクが終わったら、Observableの結果 をSubscriberにパスします。そのように、他のタスクを ブロックしないので、複数のタスクを同時に操作すること ができます。
6.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 6 Observableとは? Observable .create(subscriber -> subscriber.onNext("カメリオ")) .subscribe(text -> Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT)); このコードで「カメリオ」Stringを発するObservableを作っ て、SubscriberがそのStringを受け取って、そのStringか らToastを表示します。
7.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 7 Observableを変換する Observableを変換する機能は多いですが、以下の三つの機能 が最も採用されていると思います: - map():Mapという機能はObservableが発するものを変換 して、同じタイプのものをreturnするか別のタイプのものも returnすることができます。 - flatMap() : FlatMapという機能はObservableが発するもの から他のObservableを作って、元のObservableをその新し いObservableに変換します。 - switchMap() : SwitchMapという機能はFlatMapに似てい るのですが、SwitchMapは一番新しいObservableだけを操作 します。
8.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 8 Mapの例 Observable. create(subscriber -> subscriber.onNext("カメリオ")) .map(text -> text + " Android"); このコードでObservableが「カメリオ」Stringを発して、 Map機能がそのStringを変換して、「 Android」Stringを 連結して、最後にObservableが「カメリオ Android」を 発します。
9.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 9 Observableをフィルターする Observableが発するものもフィルタすることができます。 例えば: Observable.from(new String[]{"Tokyo", "Osaka", "Jakarta", "Kanazawa"}) .filter(new Func1<String, Boolean>() { @Override public Boolean call(String text) { return cityOfJapanList.contains(text); } })
10.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 10 AndroidのActivity/Fragment Lifecycleに関して Androidアプリは普通のJavaアプリと違って、Activity/ FragmentのLifecycleがあります。 例えばサーバーから取ったデータをUIに表示しますが、そ れはActivity/Fragmentがまだアクティブな状態の間だけ 可能です。なので、エラーを防ぐ為にActivity/Fragment が破壊される前にObservableからunsubscribeしてくださ い。
11.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 11 Unsubscribeの例 @Override protected void onDestroy() { helloSubscription.unsubscribe(); super.onDestroy(); }
12.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 12 Activity/Fragment Lifecycle Observable<String> activityBindedObservable = Observable.create(subscriber -> subscriber.onNext("Hello RxAndroid")) .map(text -> text.hashCode()) .map(hashcode -> String.valueOf(hashcode)); AppObservable.bindActivity(this, activityBindedObservable). subscribe(text -> Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT)); 幸いにもこのケースの為にHelper機能があります。ObservableのSubscriber を登録する時にAppObservable.bindActivity()/bindFragment()という機能 を使って、その機能がActivity/Fragmentが破壊される前にそのObservable をunsubscribeします。そうするとObservableがSubscriberに通知しません。
13.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 13 Threadに関して もしObservableにどんなThreadでsubscribeするか、も しくはobserveするかを特定しない場合に、Observableが タスクを行うか、もしくは結果をパスする時にAndroidの Main Threadを使います。私の意見では、それはあまり良 くないことと考えています。全部のタスクがMain Thread で行われたらアプリが重くなり、ユーザーからしてもあま りよくないので、subscribeOn()とobserveOn()機能を 使って、Threadを特定してください。 例えば、subscribeOn(Schedulers.io()) と observeOn(AndroidSchedulers.mainThread()).
14.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 14 Realmと連携 RealmはRxJavaの公式サポートはまだまだないですが、 RealmのIssue一覧でAsync Queryについて話があるので、 多分これからRxJavaのサポートもあります。 ! RxJavaとRealmの連携の問題は? RealmObjectとRealmResultsは一つのThreadから他の Threadにパス出来ないです。 例えば、Background ThreadでQueryしたら、UI Thread で使えないです。
15.
Copyright 2015 Shiroyagi
Corporation. All rights reserved. 機密 15 Question?
Download now