Soumettre la recherche
Mettre en ligne
RxSwift x APIKit
•
12 j'aime
•
3,459 vues
Kosuke Usami
Suivre
関西モバイルアプリ研究会 #6 - connpass http://kanmoba.connpass.com/event/19592/
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 19
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
RxSwift x Realm
RxSwift x Realm
Kosuke Usami
RxSwift
RxSwift
Kosuke Usami
RxSwift
RxSwift
Kosuke Usami
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
Hironytic
クラスメソッド第4回登壇資料 RxRealm
クラスメソッド第4回登壇資料 RxRealm
Daisuke Nagata
Rx swift,Repro framewolrk
Rx swift,Repro framewolrk
Daisuke Nagata
Sansan様 登壇資料
Sansan様 登壇資料
Daisuke Nagata
Flux with RxSwift
Flux with RxSwift
Yuji Hato
Recommandé
RxSwift x Realm
RxSwift x Realm
Kosuke Usami
RxSwift
RxSwift
Kosuke Usami
RxSwift
RxSwift
Kosuke Usami
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
Hironytic
クラスメソッド第4回登壇資料 RxRealm
クラスメソッド第4回登壇資料 RxRealm
Daisuke Nagata
Rx swift,Repro framewolrk
Rx swift,Repro framewolrk
Daisuke Nagata
Sansan様 登壇資料
Sansan様 登壇資料
Daisuke Nagata
Flux with RxSwift
Flux with RxSwift
Yuji Hato
大規模ログ集約実現のためのアーキテクチャ
大規模ログ集約実現のためのアーキテクチャ
Yugo Shimizu
RxJava on Android
RxJava on Android
yo_waka
Serverless apps on aws using scala
Serverless apps on aws using scala
Yoshitaka Fujii
Devfes kyoto2017
Devfes kyoto2017
Satomi Tsujita
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11
Yutaka Tachibana
第5回Sql server2017勉強会資料
第5回Sql server2017勉強会資料
TakenoriIijima
Miyazaki Resistanceを作ってみたよ
Miyazaki Resistanceを作ってみたよ
Tsukasa Oishi
Starting java fx
Starting java fx
Kazuhiro Eguchi
Reactive Systems と Back Pressure
Reactive Systems と Back Pressure
Akihiro Ikezoe
CSV
CSV
Masahiro Tomita
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
chuck h
Reactive
Reactive
Akihiro Ikezoe
ネットワークこわい
ネットワークこわい
Masahiro Tomita
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
Alibaba Cloud Serverless
Alibaba Cloud Serverless
真吾 吉田
Scala.jsはじめました!
Scala.jsはじめました!
K Kinzal
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
都元ダイスケ Miyamoto
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
小林 弘明
Contenu connexe
Tendances
大規模ログ集約実現のためのアーキテクチャ
大規模ログ集約実現のためのアーキテクチャ
Yugo Shimizu
RxJava on Android
RxJava on Android
yo_waka
Serverless apps on aws using scala
Serverless apps on aws using scala
Yoshitaka Fujii
Devfes kyoto2017
Devfes kyoto2017
Satomi Tsujita
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11
Yutaka Tachibana
第5回Sql server2017勉強会資料
第5回Sql server2017勉強会資料
TakenoriIijima
Miyazaki Resistanceを作ってみたよ
Miyazaki Resistanceを作ってみたよ
Tsukasa Oishi
Starting java fx
Starting java fx
Kazuhiro Eguchi
Reactive Systems と Back Pressure
Reactive Systems と Back Pressure
Akihiro Ikezoe
CSV
CSV
Masahiro Tomita
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
chuck h
Reactive
Reactive
Akihiro Ikezoe
ネットワークこわい
ネットワークこわい
Masahiro Tomita
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
Alibaba Cloud Serverless
Alibaba Cloud Serverless
真吾 吉田
Scala.jsはじめました!
Scala.jsはじめました!
K Kinzal
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
都元ダイスケ Miyamoto
Tendances
(20)
大規模ログ集約実現のためのアーキテクチャ
大規模ログ集約実現のためのアーキテクチャ
RxJava on Android
RxJava on Android
Serverless apps on aws using scala
Serverless apps on aws using scala
Devfes kyoto2017
Devfes kyoto2017
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11
第5回Sql server2017勉強会資料
第5回Sql server2017勉強会資料
Miyazaki Resistanceを作ってみたよ
Miyazaki Resistanceを作ってみたよ
Starting java fx
Starting java fx
Reactive Systems と Back Pressure
Reactive Systems と Back Pressure
CSV
CSV
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
Reactive
Reactive
ネットワークこわい
ネットワークこわい
Bundler 2 の胎動
Bundler 2 の胎動
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Alibaba Cloud Serverless
Alibaba Cloud Serverless
Scala.jsはじめました!
Scala.jsはじめました!
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
Similaire à RxSwift x APIKit
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
小林 弘明
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fumiya Sakai
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.
node-handlersocket
node-handlersocket
koichik
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Takahiro Yonei
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版
Fumiya Sakai
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
recotech
Nginx
Nginx
Soichi Takamura
Reactive Extensions v2.0
Reactive Extensions v2.0
Yoshifumi Kawai
React Native GUIDE
React Native GUIDE
dcubeio
Reactの全体像と新しい情報を収集する方法
Reactの全体像と新しい情報を収集する方法
プログラミングをする パンダ
React+redux+saga 03
React+redux+saga 03
TIS Inc
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
Shinichi Tomita
How To Drink Wsgi
How To Drink Wsgi
Atsushi Odagiri
Rx java x retrofit
Rx java x retrofit
Shun Nakahara
MlnagoyaRx
MlnagoyaRx
Shoichi Kakamu
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
JavaScriptとCollection
JavaScriptとCollection
Kazuhiro Karino
Similaire à RxSwift x APIKit
(20)
実践 Reactive Extensions
実践 Reactive Extensions
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
node-handlersocket
node-handlersocket
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
Nginx
Nginx
Reactive Extensions v2.0
Reactive Extensions v2.0
React Native GUIDE
React Native GUIDE
Reactの全体像と新しい情報を収集する方法
Reactの全体像と新しい情報を収集する方法
React+redux+saga 03
React+redux+saga 03
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
How To Drink Wsgi
How To Drink Wsgi
Rx java x retrofit
Rx java x retrofit
MlnagoyaRx
MlnagoyaRx
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
JavaScriptとCollection
JavaScriptとCollection
Plus de Kosuke Usami
SnapKit
SnapKit
Kosuke Usami
View 系ライブラリに関する悩み
View 系ライブラリに関する悩み
Kosuke Usami
Auto Layout Tips
Auto Layout Tips
Kosuke Usami
Eddystone Beacon
Eddystone Beacon
Kosuke Usami
Xamarin で Apple Watch アプリを作る
Xamarin で Apple Watch アプリを作る
Kosuke Usami
iBeacon Applications
iBeacon Applications
Kosuke Usami
APIKit
APIKit
Kosuke Usami
Swift Library
Swift Library
Kosuke Usami
JXUG Conference 2 West
JXUG Conference 2 West
Kosuke Usami
すごいHaskell読書会
すごいHaskell読書会
Kosuke Usami
Xamarin.iOS
Xamarin.iOS
Kosuke Usami
CotEditor Script
CotEditor Script
Kosuke Usami
Affine Transform
Affine Transform
Kosuke Usami
Semantic Versioning
Semantic Versioning
Kosuke Usami
Mac アプリの Retina 対応
Mac アプリの Retina 対応
Kosuke Usami
Mountain Lion Sharing Service
Mountain Lion Sharing Service
Kosuke Usami
OS X LionのVersions対応
OS X LionのVersions対応
Kosuke Usami
Plus de Kosuke Usami
(17)
SnapKit
SnapKit
View 系ライブラリに関する悩み
View 系ライブラリに関する悩み
Auto Layout Tips
Auto Layout Tips
Eddystone Beacon
Eddystone Beacon
Xamarin で Apple Watch アプリを作る
Xamarin で Apple Watch アプリを作る
iBeacon Applications
iBeacon Applications
APIKit
APIKit
Swift Library
Swift Library
JXUG Conference 2 West
JXUG Conference 2 West
すごいHaskell読書会
すごいHaskell読書会
Xamarin.iOS
Xamarin.iOS
CotEditor Script
CotEditor Script
Affine Transform
Affine Transform
Semantic Versioning
Semantic Versioning
Mac アプリの Retina 対応
Mac アプリの Retina 対応
Mountain Lion Sharing Service
Mountain Lion Sharing Service
OS X LionのVersions対応
OS X LionのVersions対応
RxSwift x APIKit
1.
RxSwift x APIKit
2.
About me 4 宇佐見
公輔 (@usamik26) 4 フェンリル株式会社 4 iOS アプリエンジニア
3.
今回の内容 4 最近 RxSwift
推し 4 APIKit も使ってる 4 組み合わせて使うといいよ
4.
関連 : 以前の関モバで発表した内容
5.
関連 : Realm
meetup で発表した内容
6.
RxSwift とは
7.
RxSwift とは 4 Reactive
Programming のためのライブラリ 4 ReacticeX ファミリー 4 Rx.NET / RxJS / RxJava / ...
8.
例:イベント処理 button.rx_tap .subscribeNext { _
in // ボタンがタップされたときの処理 } .addDisposableTo(disposeBag)
9.
例:非同期処理 URLSession.rx_response(request) .subscribeOn(sessionScheduler) .map { (data,
response) in // バックグラウンド処理 } .observeOn(mainScheduler) .map { data in // UI処理 }
10.
APIKit とは
11.
APIKit とは 4 Web
API 通信のためのライブラリ 4 Swift を生かして簡潔に実装できる
12.
API クライアント実装側のコード protocol HogeAPIRequest:
Request {} extension HogeAPIRequest { var baseURL: NSURL { return NSURL(...) } } struct HogeAPI { struct HogeRequest: HogeAPIRequest { typealias Response = HogeResponse } struct HogeResponse { ... } }
13.
API クライアント利用側のコード let request
= HogeAPI.HogeRequest(...) API.sendRequest(request) { result in switch result { case .Failure(let error): // 失敗時の処理 case .Success(let response): // 成功時の処理 } }
14.
RxSwift x APIKit
15.
APIKit を Rx
に対応させたい 4 NSURLSession の rx_response のノリで
16.
NSURLSession の実装を参照する func rx_response(request:
NSURLRequest) -> Observable<NSData!, NSURLResponse!> { return create { observer in // request を送信してレスポンスを受け取る if 失敗 { observer.on(.Error(error)) } else { observer.on(.Next(data, response)) observer.on(.Completed) } return AnonymousDisposable { /* キャンセル処理 */ } } }
17.
APIKit 版 func responseFrom<T:
AppAPIRequest>(request: T) -> Observable<T.Response> { return create { (observer: ObserverOf<T.Response>) in API.sendRequest(request) { result in switch result { case .Failure(let error): observer.on(.Error(error)) case .Success(let response): observer.on(.Next(response)) observer.on(.Completed) } } return AnonymousDisposable { API.cancelRequest(T) } } }
18.
使い方 let request =
HogeAPI.HogeRequest(...) HogeAPI.responseFrom(request) .subscribeOn(sessionScheduler) .map { (data, response) in // バックグラウンド処理 } .observeOn(mainScheduler) .map { data in // UI処理 }
19.
ふりかえり 4 簡単に実装できた 4 便利 4
あれ、Result 型の意味は? 4 Rx の実装の中でしか使われなくなったけど・・・ 4 エラーハンドリングは RxSwift でやればいい
Télécharger maintenant