RxSwift優良記事まとめ

# 予備知識
・**[【Swift】クロージャの使い方。名前の無い関数を作る。](https://hajihaji-lemon.com/smartphone/swift/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/)**
・**[特有の関数？ mapとは？$0とは？](https://kichie-com.hatenablog.com/entry/2017/02/01/194217)**
・**[Swiftのmap, filter, reduce（などなど）はこんな時に使う！](https://qiita.com/motokiee/items/cf83b22cb34921580a52)**
・**[バインド (bind)とは](https://wa3.i-3-i.info/word12448.html)**
・**[forとforeachの違い](https://teratail.com/questions/50583)**
**・[【Swift】for と forEach の書き方メモ](https://kosukeblog.com/2018/05/forforeach/)**
・**[Promiseと仲良くなって気持ち良く非同期処理を書こう](https://qiita.com/progre/items/03626b7f4655007d8cb2)**

# 基本
#### ハンズオン
・**[RxSwift入門(ハンズオン)](https://qiita.com/r_chiba/items/5618a3dd96618222cca8)**
**・[【RxSwift+MVVM入門】チャット風アプリのハンズオン Swift4 - Qiita](https://qiita.com/okamok/items/c98d8dd45385a0488fbf)**


・**[比較して学ぶRxSwift4入門」で基本が理解できた](https://qiita.com/powerispower/items/d4d70b50503c45978a70#_reference-6f3d7780009f8bb5c1b1)**
・**[オブザーバーパターンから始めるRxSwift入門](https://qiita.com/k5n/items/17f845a75cce6b737d1e)**(vol.1)
**・[RxSwift 入門 その１ - タコさんブログ](http://tiny-wing.hatenablog.com/entry/2016/01/02/161322)**
・**[非同期処理してみる](https://qiita.com/k5n/items/98aaf84fc164f7a5502c)**(vol.2)
・**[RxSwiftの動作を深く理解する](https://qiita.com/k5n/items/643cc07e3973dd1fded4#map%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B)**(vol.3)
・**[RxSwiftにおけるマルチスレッドの理解を深める — Schedulerについて](https://medium.com/eureka-engineering/rxswift%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%81%AE%E7%90%86%E8%A7%A3%E3%82%92%E6%B7%B1%E3%82%81%E3%82%8B-scheduler%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-2471ec76e518)**
・**[RxSwiftのObservable とは何か](https://53ningen.com/rxswift-observable/)**
・**[RxSwiftのbindToについて](http://toshi0383.hatenablog.com/entry/2016/08/22/210124)**
・**[RxSwiftでBindTo可能な独自プロパティを生やす方法](https://blog.a-azarashi.jp/entry/2018/01/13/222537/)**
・**[RxSwiftのDisposeBagとWeakの関係について](https://qiita.com/syou007/items/d527b4486c34686d0acd)**

#### イベント発生系
・**[【RxSwift】BehaviorRelayとPublishRelayについてまとめてみた](https://egg-is-world.com/2018/08/11/rxswift-behaviorrelay-publishrelay/)**

#### イベント整理系
**・[【RxSwift】concatとmergeの違いをサンプルを元に整理してみる](https://tech-blog.sgr-ksmt.org/2016/04/26/rx_concat_merge/)**
→`merge`は**イベントがcompleteしてようとなかろうと**流れてきた順番に1つずつ通す, `concat`は**先に流れてきたイベントがcompleteするまでもう片方は通さない**かつ流れてきた順番に1つずつ通す

**・[【Swift】RxSwiftのPlaygroundを読む⑤ - Qiita](https://qiita.com/KentaKudo/items/c5eefa22706893834c86)**
→各関数(`filter`, `distinctUntilChanged`)が流すイベントの例も合わせて乗っている。
シリーズ通して読みたい

#### RxOptional
**・[RxSwiftでnilをフィルタリングする – ukitaka – iOS開発とかのメモ](https://blog.waft.me/2016/09/20/rx-optional/)**

#### 他言語(ReactiveXに関する記事)
・**[連載：Reactive Extensions(Rx)入門 - 第2回 イベント・プログラミングとRx](https://www.atmarkit.co.jp/fdotnet/introrx/introrx_02/introrx_02_01.html)**


# 辞書
・**[RxSwiftの機能カタログ](https://qiita.com/k5n/items/e80ab6bff4bbb170122d#map)**

**・[RxSwift コードリーディングの勘所@社内RxSwift勉強会](https://www.slideshare.net/yukitakahashi3139241/rxswift-rxswift)**
→`RxSwift`の各関数を定義から遡って読み解こうという資料

# 実践
**・[fumiyasac/RxSwiftPracticeNote: [ING]RxSwiftの練習記録ノート](https://github.com/fumiyasac/RxSwiftPracticeNote)**
**・[RxSwiftでの実装練習の記録ノート（前編：Observerパターンの例とUITableViewの例） - Qiita](https://qiita.com/fumiyasac@github/items/90d1ebaa0cd8c4558d96)**
→[iOSアプリ開発　UI実装であると嬉しいレシピブック](https://www.amazon.co.jp/iOS%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA-UI%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%82%E3%82%8B%E3%81%A8%E5%AC%89%E3%81%97%E3%81%84%E3%83%AC%E3%82%B7%E3%83%94%E3%83%96%E3%83%83%E3%82%AF-%E6%8A%80%E8%A1%93%E6%9B%B8%E5%85%B8%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E9%85%92%E4%BA%95-%E6%96%87%E4%B9%9F-ebook/dp/B07NQDXY1F)の著者`fumiyasac`さんの教材。**githubのリポジトリをQiitaの記事の解説**を見ながら取り組むと理解が深まる
**・[RxSwiftを使ってアプリを作ってみて、よく使った書き方 - Qiita](https://qiita.com/Tueno@github/items/099d287217b38c314e1e)**

**・[RxSwiftとUIライブラリの表現を組み合わせたサンプル紹介 - Qiita](https://qiita.com/fumiyasac@github/items/e426d321fbb8ab846bb6#7-%E3%81%82%E3%81%A8%E3%81%8C%E3%81%8D)**
**・[fumiyasac/RxSwiftUIExample: [ING] - RxSwiftとUI実装の組み合わせサンプル](https://github.com/fumiyasac/RxSwiftUIExample)**
→こちらも**githubリポジトリとセットで見て欲しい**`fujiyasac`さんの教材。MVVMなど他の設計パターンとの兼ね合いも学べる
**・[RxSwiftでの実装練習の記録ノートとはじめの一歩](https://www.slideshare.net/fumiyasakai37/rxswift-72129568)**
→`fujiyasac`さんの教材のスライド

**・[RxSwift ObserverとPublishObject, BehaviorSubject - なんとかするから、なんとかなる](https://hopita.hatenablog.com/entry/2018/08/12/113101)**

**UIごと**
**・[【RxSwift入門】普段使ってるこんなんもRxSwiftで書けるんよ - Qiita](https://qiita.com/ikemai/items/8d3efcc71ea9db340484)**
**・[RxSwiftのUITableViewとのバインディングまとめ - Qiita]
(https://qiita.com/hironytic/items/71bc729abe73ab9f0879)**
**・[RXSwiftを使ったUIScrollViewのページング - Qiita](https://qiita.com/higan96/items/a449b4515e06b0f586a9)**
**・[RxWebKitがいい感じだったよ - タマネギプログラマーの雑記](http://gaopin1534.hatenablog.com/entry/2017/05/31/225807)**
**・[RxSwiftのすぐに取り込める使用例をまとめてみた🏄🏻 - Qiita](https://qiita.com/yuzushioh/items/634a96c6fd69de4acdd0)**



(🔽以下**英語2記事**)
**・[ClintJang/sample-rxswift-reactorkit-app: RxSwift ReactorKit RxFlow Sample App](https://github.com/ClintJang/sample-rxswift-reactorkit-app)**
**・[ClintJang/sample-rxswift-beginning: RxSwift 시작하기 위해 시작시점의 알아야될 것을 정리 및 셈플링 해보는 저장소입니다.](https://github.com/ClintJang/sample-rxswift-beginning)**

# 設計込み
・**[iOSアプリの基本設計を考える：疎結合の概念から構造化,MVVM,RxSwiftまで](https://qiita.com/BlueEventHorizon/items/a712e6fa9fcdc1bdd4b5)**
・**[MVVMとFluxを勉強してみた。](https://qiita.com/rkamiya/items/f899de1778bc25bf07e5)**
・**[RxSwiftでのデータストリームの処理について理解しよう(連載第3回)](https://codezine.jp/article/detail/11091)**
・**[RxSwiftで双方向データバインディング](https://qiita.com/cross-xross/items/c18744512cb37793b0a2)**
・**[Rxを使った設計をビジュアル化する](https://qiita.com/k5n/items/b8d2277cfe11f81111a7)**(vol.4)
・**[AVFoundationとRxを組み合わせる
](https://qiita.com/to4iki/items/44b87aba9eea5d7cbe9e)**
# 後回し
・**[はじめてのRxSwiftのメモ](https://qiita.com/syou007/items/41ff1469ee7a92e7ec57)**
・**[RxSwift bind(to: ) を使ってIndicatorViewを回す。](https://qiita.com/keisukeYamagishi/items/e7ce8e41b73715eea7e1)**