今日たまたま同僚のAndroidエンジニアと話をしていて、 「RxSwiftにcomposeとかliftあればいいのにね」という話があったので、試しにcomposeっぽいものを作ってみました。

もしも既に全く同じようなのがRxSwiftにあったらごめんなさい。チョットジシンナイデス。

Continue reading

FirebaseAuth+RxSwift

Firebase Authでのサインイン・サインアウトの処理をRxSwiftを使ってイベントとして流せるようにしました。
また、RxSwift3.3.0から Single, Maybe, Completable が使えるようになったので、それらを使って実装してみます。

  • Swift 3.1
  • RxSwift 3.4.0

Continue reading

RxSwiftで良くDataSourceもしくはあるデータの配列をUITableViewやUICollectionViewにbindさせる時に
それをより安全にしたり、bindしつつcellに必要なパラメータを渡せるようにパワーアップさせてみます。

ちなみに例ではRxDataSourceは使わず、データの入った配列をbindする想定でやっていきます。

Continue reading

よくRxSwiftを使っていると、流れてきた値を使わずにVoidとして次に流す時なんかに、 map { _ in } と書くことがあります。 public var viewWillAppear: Observable<Void> { return sentMessage(#selector(UIViewController.viewWillAppear(_:))) .map { _ in } // { _ in () } や { _ in Void() } でも同様 .shareReplay(1) } ただ、これ毎回書くのも面倒になってきたり、ダサいなぁ…って思ってきたら、 // ※toplevelで定義すること // 明示的にVoidを返すと丁寧に定義した場合 public func void<T>(_: T) -> Void { return Void() } // 省略した場合 public func void<T>(_: T) {} toplevel関数として void を定義してあげて、 public var viewWillAppear: Observable<Void> { return sentMessage(#selector(UIViewController.viewWillAppear(_:))) .map(void) .shareReplay(1) } こんな感じで使ってあげるとちょっぴり幸せになれるかも。

Continue reading

最近空き時間にRxを触ってあれこれ書いていたりします。

UITabBarController のTabBarItemがタップされたのをObserveしたかったのですが、
RxSwift(RxCocoa)でそのまま提供されていないので extension として作成してみました。

Continue reading

Author's picture

su-

iOS/Firebaesなひとの技術ブログ

iOS Enginner

Tokyo, Japan