switchのexhaustiveness/redundancy チェック 理論と実装 わいわいswiftc #8 @ukitaka
Swift のリアクティブプログラミングのライブラリといえば RxSwift か ReactiveSwift が有名ですよね。 今まで RxSwift しか使ってこなかったのですが ReactiveSwift を使ってみたらとても良かったのでそれについて書きたいと思います。 ReactiveSwift と RxSwift を比較する形で紹介します。 RxSwift やその他 Rx ライブラリをある程度自由に使いこなせるという方を対象に書いています。 ライブラリの構成 ReactiveSwift RxSwift for Swift ReactiveSwift RxSwift for Cocoa ReactiveCocoa RxCocoa 依存ライブラリ Result – ReactiveSwift の構成は RxSwift と似ています。 – xxxSwift がピュア Swift 用 –
iOSDC 2018 Reject Conferenceで行ったトークのスライドです。 RxTest、RxBlockingというライブラリの概要と、これらを使ったRxなコードのテストの基本的な書き方を、ViewModelとAPIクライアントという2つのクラスを題材に解説しています。 関連記事をQiitaにて公開しています。 https://qiita.com/takehilo/items/09f4a3077e441e5bb9de iOSDC 2018 Reject Conference days1 https://iosdc-reject-conference.connpass.com/event/93314/
RxSwift について基本を説明するとき、Observable から話を始めることが多いかと思います。一方で、RxSwift の実際の活用方法としては、データバインディングが大事になってくることが多いようです。 ここでは、まず従来どおりの Observable の話を簡単にしたあと、データバインディングの話をするという形で入門を書いてみます。 RxSwift とは RxSwift は「非同期イベントを受け取るための枠組み」を提供してくれるライブラリです。 UI イベント受け取り Web API レスポンス受け取り データの変化の監視 RxSwift は ReactiveX ファミリーのひとつです。ReactiveX には、C#、Java など様々な言語のライブラリがあります。 コード例 (1) UIButton button.rx.tap .subscribe { [unowned se
RxSwiftでViewControllerとViewModelのBinding部分をどう書けばいいかわからなかったので、サンプルコードを集めてみました。 ReactiveX/RxSwift GitHubSignupViewController2.swift class GitHubSignupViewController2 : ViewController { @IBOutlet weak var usernameOutlet: UITextField! @IBOutlet weak var usernameValidationOutlet: UILabel! @IBOutlet weak var passwordOutlet: UITextField! @IBOutlet weak var passwordValidationOutlet: UILabel! @IBOutlet wea
環境 業務でiOSアプリ開発ではRxSwiftとMVVMを導入しています。開発をはじめて1ヶ月半というところです。 Xcode 8.3.1 Swift 3 RxSwift 3.5.0 TL;DR textField.text = "hoge"してもtextFieldのストリームにイベントが流れてこない コードから代入したら、textField.sendActions(for: .valueChange)してやれば流れる 何をしようとして何が起こった 後輩くんが、日付とメッセージを入力する画面をつくっていました(本当はもっとたくさん入力する)。日付毎に入力するタイプのものなので、ユーザーが選択した日付に対応するメッセージがRealmに存在していた場合は、メッセージ入力フォームに予め値を入れておいてあげる必要がありました。また、日付とメッセージが入力されていた場合、保存ボタンを有効にするように
実用例 認証が必要なAPIを叩くとき、もし認証トークンが無効でAPIが失敗したらトークンを更新して再度APIを叩く、但し一定回数リトライしても認証トークンが無効となるようだったらリクエストを諦めてリクエスト失敗扱いにする 方法 特定のエラーが起きたら処理をやり直したい retryWhen 使う ただしリトライは一定回数までにしたい 今何回目のエラーか判断できればいいので、 enumerated で回数をつける サンプルコード リクエストの結果はSingleで受け取れる想定 成功するとsuccess、失敗するとerrorが流れてくる requiredAuthRequest.post(with: parameters) // 認証が必要なAPIを投げる .retryWhen { errorObservable in return errorObservable.enumerated() .fl
プライベートで開発していたアプリも無事リリースでき スッキリ晴れやかな気持ちになったので、去年に続き今年もポエムを書きます はじめに 仕事の方で、新規案件を行うにあたり、RxSwiftとFluxを採用して開発することにしました。 (ディレクトリ構成はducks、View部分はAtomic designを参考にしています) 悩む所は諸々に出てくるのですが、良い感触を得ているので そのあたりの話を書いていこうと思います。 (Rx要素は薄いです) Fluxってなに? だいたいどんなものかは知ってると思いますので、こちらを参考に。 facebook Flux with RxSwift iOS meets Flux なぜFluxにしたの?? 決定した理由はこちら。 状態の変化が色々とあるアプリを作ることになった。 状態を管理するというStoreという役割がFluxにある。 単一方向なフローで、状態の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く