Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
KT
Uploaded by
Keisuke Tatsumi
PPTX, PDF
2,714 views
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
道玄坂BeerBash#1 LT夏祭 CA系メディアサービス編( http://dogenzaka-beerbash.connpass.com/event/37072/ )での発表資料です。
Engineering
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 47
2
/ 47
3
/ 47
4
/ 47
5
/ 47
6
/ 47
7
/ 47
8
/ 47
9
/ 47
10
/ 47
11
/ 47
12
/ 47
13
/ 47
14
/ 47
15
/ 47
16
/ 47
17
/ 47
18
/ 47
19
/ 47
20
/ 47
21
/ 47
22
/ 47
23
/ 47
24
/ 47
25
/ 47
26
/ 47
27
/ 47
28
/ 47
29
/ 47
30
/ 47
31
/ 47
32
/ 47
33
/ 47
34
/ 47
35
/ 47
36
/ 47
37
/ 47
38
/ 47
39
/ 47
40
/ 47
41
/ 47
42
/ 47
43
/ 47
44
/ 47
45
/ 47
46
/ 47
47
/ 47
More Related Content
PDF
RxSwiftを“チーム開発に”導入する話
by
LINE Corporation
PPTX
オブジェクト指向な人がRx swiftを試してみた
by
小林 弘明
PDF
What is reactive programming?
by
Kenji Tanaka
PDF
SIerでもSphinxを使いたい! 後編
by
kk_Ataka
PDF
チーム開発にSwiftLintを導入してみた・詳細版
by
Ikada Kaori
PDF
既存プロジェクトにSwiftLintを導入した話
by
akatsuki174
PDF
Oktavia全文検索エンジン - SphinxCon JP 2014
by
Yoshiki Shibukawa
PDF
Detroit Programming City
by
Koichi ITO
RxSwiftを“チーム開発に”導入する話
by
LINE Corporation
オブジェクト指向な人がRx swiftを試してみた
by
小林 弘明
What is reactive programming?
by
Kenji Tanaka
SIerでもSphinxを使いたい! 後編
by
kk_Ataka
チーム開発にSwiftLintを導入してみた・詳細版
by
Ikada Kaori
既存プロジェクトにSwiftLintを導入した話
by
akatsuki174
Oktavia全文検索エンジン - SphinxCon JP 2014
by
Yoshiki Shibukawa
Detroit Programming City
by
Koichi ITO
What's hot
PPTX
マイクロサービスにおける非同期アーキテクチャ
by
ota42y
PDF
The World is Connected
by
Koichi ITO
PPTX
世界のSphinx事情 @ SphinxCon JP 2015
by
Takayuki Shimizukawa
PDF
受託開発とRubyGems
by
Koichi ITO
PDF
インタフェースのこころ
by
Koichi ITO
PDF
進撃の受託開発
by
Koichi ITO
PDF
Reading 1st dRuby
by
Koichi ITO
PPTX
20160615 知能犯もシャットアウト!アイドルが教えるAmazonInspector♡
by
Haruna Nakayama
PPTX
Spring I/O 2017での拡張のお話
by
Alisa Sasaki
PDF
Skinny Meetup Tokyo 2 日本語スライド
by
Kazuhiro Sera
PDF
Skinny Framework で始めた Scala
by
Ryuji Yamashita
PPTX
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
by
Michio Kataoka
PDF
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
by
kk_Ataka
PDF
海外で注目されてるJs framework “mithril”の特徴
by
Shoyo Kyou
PPTX
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
PPTX
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
by
ryoheiseki1
PDF
SwaggerとAPIのデザイン
by
Kazuhiro Hara
PDF
Swiftで、Webサーバにデータを送信・登録しよう!
by
Kanako Kobayashi
PDF
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
by
Koichi ITO
PDF
進撃のSbt
by
Yuto Suzuki
マイクロサービスにおける非同期アーキテクチャ
by
ota42y
The World is Connected
by
Koichi ITO
世界のSphinx事情 @ SphinxCon JP 2015
by
Takayuki Shimizukawa
受託開発とRubyGems
by
Koichi ITO
インタフェースのこころ
by
Koichi ITO
進撃の受託開発
by
Koichi ITO
Reading 1st dRuby
by
Koichi ITO
20160615 知能犯もシャットアウト!アイドルが教えるAmazonInspector♡
by
Haruna Nakayama
Spring I/O 2017での拡張のお話
by
Alisa Sasaki
Skinny Meetup Tokyo 2 日本語スライド
by
Kazuhiro Sera
Skinny Framework で始めた Scala
by
Ryuji Yamashita
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
by
Michio Kataoka
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
by
kk_Ataka
海外で注目されてるJs framework “mithril”の特徴
by
Shoyo Kyou
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
by
ryoheiseki1
SwaggerとAPIのデザイン
by
Kazuhiro Hara
Swiftで、Webサーバにデータを送信・登録しよう!
by
Kanako Kobayashi
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
by
Koichi ITO
進撃のSbt
by
Yuto Suzuki
Viewers also liked
PPTX
サイバーエージェント様 発表「OpenStackのNWと物理の話」
by
VirtualTech Japan Inc.
PDF
あなたのScalaを爆速にする7つの方法
by
x1 ichi
PDF
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
by
VirtualTech Japan Inc.
PDF
Apache Drill で見る Twitter の世界
by
Masaru Watanabe
PPTX
F.O.Xを支える技術
by
Yuto Suzuki
PDF
Atomic Design powered by React @ AbemaTV
by
Yusuke Goto
PDF
Wowzaを用いた配信基盤 Takusuta tech conf01
by
Kazuhiro Ota
PDF
AWSとGCPを使用したインフラ環境
by
Katsutoshi Nagaoka
PPTX
ポコロンダンジョンズを彩るアニメーションノウハウ
by
GameCreators,CyberAgent
PDF
GKEで半年運用してみた
by
Katsutoshi Nagaoka
PDF
レスポンシブWebデザインでうまくやるための考え方
by
Hayato Mizuno
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
by
Takahiro Moteki
サイバーエージェント様 発表「OpenStackのNWと物理の話」
by
VirtualTech Japan Inc.
あなたのScalaを爆速にする7つの方法
by
x1 ichi
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
by
VirtualTech Japan Inc.
Apache Drill で見る Twitter の世界
by
Masaru Watanabe
F.O.Xを支える技術
by
Yuto Suzuki
Atomic Design powered by React @ AbemaTV
by
Yusuke Goto
Wowzaを用いた配信基盤 Takusuta tech conf01
by
Kazuhiro Ota
AWSとGCPを使用したインフラ環境
by
Katsutoshi Nagaoka
ポコロンダンジョンズを彩るアニメーションノウハウ
by
GameCreators,CyberAgent
GKEで半年運用してみた
by
Katsutoshi Nagaoka
レスポンシブWebデザインでうまくやるための考え方
by
Hayato Mizuno
[社内勉強会]ELBとALBと数万スパイク負荷テスト
by
Takahiro Moteki
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
1.
- RxSwiftを実際に導入してみた件 -
2.
辰己 佳祐 Twitter:@TK_u_nya Github:cztatsumi-keisuke Qiita:Nietzsche • 所属 –
株式会社CyberZ OPENREC事業部 • 職種 – iOSエンジニア • 個人アプリ – AppStoreで「Keisuke Tatsumi」で検索検索ぅ〜♪
3.
Agenda • はじめに • RxSwiftとは •
RxSwiftだとこう書ける • RxSwiftを使ってみた結果
4.
Agenda • はじめに • RxSwiftとは •
RxSwiftだとこう書ける • RxSwiftを使ってみた結果
5.
はじめに • なぜRxSwiftを使うことになったのか 1. 2. 3.
6.
はじめに • なぜRxSwiftを使うことになったの? 1. 新規サービスの開発の話が来た 2. 3.
7.
OPENREC Messenger • ゲーマー向け無料コミュニ ケーションアプリ •
一人で複数のプロフィールを 使える • AppStore、Google Play にて、ダウンロード よろしくお願いします!
8.
はじめに • なぜRxSwiftを使うことになったの? 1. 新規サービスの開発の話が来た 2.
開発言語をSwiftに 3.
9.
OPENRECでのiOS開発 • OPENREC.tv は
Objective-C で開発 • Version 4.0 で大幅なリニューアルを行った • 今までの技術資産を使うのならそのままでも
10.
OPENRECでのiOS開発 • OPENREC.tv は
Objective-C で開発 • Version 4.0 で大幅なリニューアルを行った • 今までの技術資産を使うのならそのままでも ところが、、、
11.
最近のiOS界隈 「Objective-Cはゴミ箱へ」というツイート Objective-C から
Swift への変換サービス
12.
最近のiOS界隈 「Objective-Cはゴミ箱へ」というツイート Objective-C から
Swift への変換サービス 進むSwiftへの移行!
13.
Swiftにしましょうか(ニッコリ )
14.
はじめに • なぜRxSwiftを使うことになったの? 1. 新規サービスの開発 2.
開発言語をSwiftに 3. 流行に乗ろう
15.
RxSwiftにピンッときたら • 最近よく「RxSwiftはいいぞ。」といった内容の 記事やスライドをよく目にする • 他社も導入しはじめている –
ニコニコ漫画アプリ(ドワンゴ)、アッテ(メルカリ)、 ヤフオク!(ヤフー) など • RxSwiftの知見が増えてきている
16.
乗るしかない このビッグウェーブに! ー Butchさん
17.
はじめに • なぜRxSwiftを使うことになったの? 1. 新規サービスの開発 2.
開発言語をSwiftに 3. 流行に乗ろう というわけで、、、
18.
はじめに • なぜRxSwiftを使うことになったの? 1. 新規サービスの開発 2.
開発言語をSwiftに 3. 流行に乗ろう やっはろー !!! RxSwift World! というわけで、、、
19.
Agenda • はじめに • RxSwiftとは •
RxSwiftだとこう書ける • RxSwiftを使ってみた結果
20.
RxSwiftとは • RxSwiftではなく、Rx +
Swift = RxSwift – RxSwiftとは、RxのSwift版のこと • Rx = Reactive Extensionsの略 – イベントストリームを抽象化するライブラリ (メルカリのishkawaさんの表現をお借りしました) – 他にもいろんな言語のRxがある http://reactivex.io/ ロゴかっこいい → シャケかな? →
21.
イベントストリームを抽象化するライブラリ
22.
(´・ω・`)ちょっと何言ってるかわかんない イベントストリームを抽象化するライブラリ
23.
イベントストリームとは × 受け取った値 エラー 完了開始 マーブル図によるストリームのイメージ 時間 • 流れのイメージは「川」 •
川から流れてくるのは値、エラー、完了の3種類 • 値のみ必要な場合はエラーと完了は無視することもできる
24.
RxSwiftはこの川を監視する
25.
何をストリームにできるの? • UIイベント • KVO •
デリゲートメソッドの呼び出し • 文字列 などなど… ほぼ全てストリームにできます!
26.
ex.1)UIButtonのタップ タップ 時間 タップ 時間差で2回タップしたでござるの巻
27.
ex.2)UITextFieldのテキストの変化 a ab aを入力 時間 bを入力 時間差で文字を入力したでござるの巻 a bを削除
28.
Ex.3)UITableViewの生成 セルのアイテム数を取得 時間 セルそのものを取得 テーブルを作りたいでござるの巻 テーブルの更新
29.
では、実際に書くとどうなる?
30.
Agenda • はじめに • RxSwiftとは •
RxSwiftだとこう書ける • RxSwiftを使ってみた結果
31.
ex.1)UIButtonのタップ
32.
ex.1)UIButtonのタップ ① ② ①:@objc を付けなければならない ②:メソッドとして分ける必要がある
33.
ex.1)UIButtonのタップ ①:@objc を付けなくてもよい! ②:メソッドとして分ける必要がない!
34.
ex.2)UITextFieldのテキストの変化
35.
ex.2)UITextFieldのテキストの変化 ① ② ③ ①:デリゲートを宣言しなければいけない ②:デリゲートを設定しなければいけない ③:デリゲートメソッドを使って検知する必要がある
36.
ex.2)UITextFieldのテキストの変化 ①:デリゲートを宣言しなくてよい! ②:デリゲートを設定しなくてよい! ③:デリゲートメソッドとかいらないね!
37.
Ex.3)UITableViewの生成
38.
Ex.3)UITableViewの生成 ① ② ③ ①:デリゲートを宣言しなければいけない ②:デリゲートを設定しなければいけない ③:デリゲートメソッドを使って検知する必要がある
39.
Ex.3)UITableViewの生成 ①:デリゲートを宣言しなくてよい! ②:デリゲートを設定しなくてよい! ③:デリゲートメソッドとかやっぱりいらないね!
40.
RxSwiftすごすぎないですか?
41.
RxSwift使ってみたくなりません?
42.
Agenda • はじめに • RxSwiftとは •
RxSwiftだとこう書ける • RxSwiftを使ってみた結果
43.
RxSwiftを導入した結果 短所 • 学習コストは高め – 慣れるためにチーム内で勉強会を開いたり、情 報共有用のスプレッドシートを作成したりしました •
ビルドに少し時間がかかる – たまに補完が狂ってコードのハイライトが真っ黒 になるときもある • アプリのバイナリサイズは10MBほど増える
44.
RxSwiftを導入した結果 長所 • 慣れれば超便利 – 使えるようになると、手放せなくなりそう •
ストリームで監視するため、フラグが減った – OPENREC.tvの開発時には多数生成していた状態 保持用のフラグがほぼ不要になった • コードの可読性が上がった – デリゲートやボタンの反応など、メソッドの目移り をする必要がなくなった
45.
結果的には導入して正解!
46.
みなさんもRxSwiftで楽しませんか?
47.
以上です! ご静聴ありがとうございました!
Editor's Notes
#21
何の魚か知ってる人いたら教えてください。
#25
可愛い娘を監視するのではなくて川を監視するのです。
#34
Pub / Sub モデル: Publish / Subscribe disposeBag:監視対象のストリームを登録しておくと、自身のクラスが解放された時に監視を終了させてくれます。逆にこれを用意していないとずっと監視が終了しませんので要注意 rx_tap:ボタンのタップ検知用のストリーム
#37
Pub / Sub モデル: Publish / Subscribe disposeBag:監視対象のストリームを登録しておくと、自身のクラスが解放された時に監視を終了させてくれます。逆にこれを用意していないとずっと監視が終了しませんので要注意 rx_text:textfieldの文字列変化検知用のストリーム
#40
Pub / Sub モデル: Publish / Subscribe disposeBag:監視対象のストリームを登録しておくと、自身のクラスが解放された時に監視を終了させてくれます。逆にこれを用意していないとずっと監視が終了しませんので要注意 Variable:RxSwiftのSubjectsクラスの一つで、プロパティの変化を監視できるようにするKVO的なやつです。 rx_itemWithIdentifier:RxSwiftのデータバインド用メソッドの一つで、UITableViewDataSourceのcellForRowAtIndexPathと連動しています。
Download