RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など

on

  • 242 views

2014/10/28にpixivさんで行われたRxJavaNightの@RyotaMurohoshiの資料です。

2014/10/28にpixivさんで行われたRxJavaNightの@RyotaMurohoshiの資料です。

Statistics

Views

Total Views
242
Views on SlideShare
176
Embed Views
66

Actions

Likes
1
Downloads
1
Comments
0

1 Embed 66

https://twitter.com 68

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など Presentation Transcript

  • 1. @RyotaMurohoshi 2014/10/28'RxJava'Night
  • 2. 残念ながら、初心者です ごめんなさい
  • 3. 突然ですが質問です!
  • 4. RxJavaなどをもうすでに ガッツリやっている方?
  • 5. RxJava、Hello*world はしたよって方?
  • 6. RxJavaよくわからないけど 興味あるよって方?
  • 7. プログラミング言語Groovy 使っている!or!知っている方?
  • 8. C#erな方、C#分かる方?
  • 9. Unity使っている方?
  • 10. ありがとうございました
  • 11. お前だれよ • 名前":"室星亮太 • 仕事":"Unityゲーム開発(C#)、【前】Androidアプリ開発(Java) • Twi6er":"@RyotaMurohoshi • 投稿先":"h6p://qiita.com/RyotaMurohoshi • 興味":"Unity、C#、Groovy
  • 12. 【初心者がやってみた】 Rx、チャレンジしてみた というテーマで、冒頭の質問に関係のある内容でお送りします。
  • 13. 会場が「Rxすごい人たち」ばかりだったら ガチ焦りしています 生暖かい目で見てあげてください
  • 14. みなさんはRxJavaを知りました。 使ってみたいですね。 まず、どこを見ますか?
  • 15. RxJavaのwiki h"ps://github.com/Reac3veX/RxJava/wiki
  • 16. RxJavaのWiki)filterメソッドの説明より h0ps://github.com/Reac<veX/RxJava/wiki/FilteringAObservables) numbers = Observable.from([1, 2, 3, 4, 5, 6, 7, 8, 9]); numbers.filter({ 0 == (it % 2) }).subscribe( { println(it); }, // onNext { println("Error: " + it.getMessage()); }, // onError { println("Sequence complete"); } // onCompleted );
  • 17. ん?
  • 18. なんだこれ? • [1,%2,%3,%4,%5,%6,%7,%8,%9] • {%0%==%(it%%%2)%} • it • println%("Sequence%Complete")
  • 19. Groovy
  • 20. 【よいとおもった、コレ便利!】 RxJava使うならば、Groovyもあり!
  • 21. RxJavaのwikiのサンプルコード、 結構Groovyで書かれている
  • 22. Groovy • JVM言語 • Javaとの親和性が高い • 簡潔な記述や柔軟な処理ができる • Groovy2.4からAndroidに対応(今beta63)
  • 23. RxJava、インターフェースを引数にとるメソッドばかりですね .map(new Func1<OnClickEvent, Integer>() { @Override public Integer call(OnClickEvent clickEvent) { return 1; } }) 無駄に長い...
  • 24. 無駄に長いのは嫌だ! • Java8ならばラムダ式 • Java8より前でもretrolambda
  • 25. 無駄に長いのは嫌だ! • Java8ならばラムダ式 • Java8より前でもretrolambda • Groovyもあり!
  • 26. Androidだと、
  • 27. RxAndroidとRxJava、Bu.onクリック回数をTextViewに表示 ViewObservable.clicks(findViewById(R.id.button)) .map(new Func1<OnClickEvent, Integer>() { @Override public Integer call(OnClickEvent clickEvent) { return 1; } }) .scan(new Func2<Integer, Integer, Integer>() { @Override public Integer call(Integer acc, Integer current) { return acc + current; } }) .subscribe(new Action1<Integer>() { @Override public void call(Integer clickCount) { TextView textView = (TextView)findViewById(R.id.text_view); textView.setText(clickCount.toString()); } });
  • 28. 長い!
  • 29. RxAndroidとRxJavaとGroovy、Bu0onクリック回数をTextViewに表示 ViewObservable.clicks(findViewById(R.id.button)) .map { 1 } .scan { acc, current -> acc + current } .subscribe { findViewById(R.id.text_view).setText(it.toString()) }
  • 30. すっきり!
  • 31. Groovyのクロージャで、とってもすっきり! RxAndroid+Groovyの例-h/p://qiita.com/RyotaMurohoshi/items/48bbbecea49591fd20a2 クロージャの書き方いろいろ!h#p://qiita.com/RyotaMurohoshi/items/2a30a74c0074e11d0207
  • 32. RxGroovy • RxJavaのインターフェースを引数にとるメソッドで、Groovyの クロージャを渡せるようにするもの • Groovy2.2以上ならクロージャの暗黙的な強制型変換により、 RxGroovyなしでもクロージャを渡せる • AndroidでGroovy2.4以上使うなら、RxGroovy無くてもOK h"p://qiita.com/RyotaMurohoshi/items/3f1f3cde0e5c6785b2f1
  • 33. Groovyで、RxJavaこんな短い記述で始められる @Grab(group='com.netflix.rxjava', module='rxjava-core', version='0.20.4') import rx.Observable import rx.functions.Action1 Observable.from("Taro", "Jiro", "Saburo").subscribe { println "Hello $it"}
  • 34. RxJavaに限らず、Javaのライブラリをチョロっと試す時 Groovyは超便利だと思います! • クラスとかmainメソッドなしでいきなり書ける(スクリプト) • Grapeにより、アノテーション一発でライブラリ使える • GroovyShellで対話的に試せる h"p://qiita.com/RyotaMurohoshi/items/99475255e56f8fae712b
  • 35. 【よいとおもった、コレ便利!】 RxJava使うならば、Groovyもあり! でした!
  • 36. さて、RxJava使いこなせるようになりたいですよね? どうしましょう?
  • 37. RxJava&is&a&Java&VM&implementa1on& of&Reac1ve&Extensions:&a&library&for& composing&asynchronous&and&event> based&programs&by&using&observable& sequences. —"RxJavaのwiki"Homeより(h1ps://github.com/Reac<veX/RxJava/wiki)
  • 38. Reac%ve'Extensions
  • 39. RxJavaはReac(ve)Extensions(C#のライブラリ)を基にしている RxJavaを使いこなしたいならば Reac%ve'Extensionsの記事・投稿などの情報も役立つ!
  • 40. 【この情報が素敵!とっても分かりやすい!】 Reac%ve'Extensionsの資料でRxの勉強をし、 RxJavaを使いこなす
  • 41. もちろんJavaとC#の違いはあります メソッド名が違うやつもあります(Whereとfilter、Selectとmap)
  • 42. それでもRxの考え方を 理解するのには、 とってもいいと思います!
  • 43. プログラミングC#第7版 11章は丸々Rx(Reac(ve*Extensions) ごめんなさい、最初にこれ読むのはちょっとつらかったです
  • 44. Reac%ve'Extensions(C#のライブラリ)の 素敵なブログ・記事を投稿されている方達がいます その方達のブログはとても分かりやすかったです
  • 45. xin9leさん Rx入門 h"p://xin9le.net/rx/intro
  • 46. xin9leさんのRx入門 Rxの入門。プログラミングC#%第7版を読む前に、こちらを先に読みたかった。 初めにこちらを読むのがとてもいいと思います! 他にスライドもたくさん公開されています!
  • 47. okazukiさん Reac%ve'Extensions'再入門 h"p://okazuki.hatenablog.com/archive/category/Reac9ve%20Extensions
  • 48. okazukiさんのReac*ve,Extensions再入門 Reac%ve'Extensionsのメソッドを実際に動かしたサンプルコードがたくさん リファレンスの説明文を見てもメソッドのイメージが湧きませんでしたが、 実際のコードと実行結果でイメージが湧きました!
  • 49. neueccさん 連載:Reac%ve'Extensions(Rx)入門 h"p://www.atmarkit.co.jp/fdotnet/introrx/index/ UniRxについて h"p://neue.cc/2014/08/23_476.html7など
  • 50. neueccさん かなり早い段階からReac%ve'Extensionsに注目されていてます ブログ、スライドだけでなく@ITさんで連載もされています Unityで使えるReac*ve,Extensions移植のUniRxの作者さんです 今日登壇されています
  • 51. 【この情報が素敵!とっても分かりやすい!】 Reac%ve'Extensionsの資料でRxの勉強をし、 RxJavaを使いこなす でした!
  • 52. シンプルな例ですが、 まず手を動かしてみました! 今後もやってみて、投稿していこうと思います 間違っていたら、優しくまさかり投げていただけるとうれしいです RxAndroid+Groovy-: h0p://qiita.com/RyotaMurohoshi/items/48bbbecea49591fd20a2 UnityでUniRxを使って(:(h+p://qiita.com/RyotaMurohoshi/items/7e1509e03d8e3a1eae4f
  • 53. 反省 理論的な基礎の勉強を後回しにしすぎてしまった。
  • 54. FRPやRxについて まったくふれず申し訳ないです!
  • 55. 【初心者だけれど】 Rx、Groovyで試すのありだと思うし、 Reac%ve'Extensinsの資料は とっても参考になると思う。 でした。
  • 56. ご清聴ありがとうございました。 @RyotaMurohoshi h"p://qiita.com/RyotaMurohoshi