タグ

debounceに関するy-kobayashiのブックマーク (2)

  • RxSwift 3.3 でダブルタップを正確に検知 - Qiita

    やりたいこと RxSwiftで「x秒間なにもイベントがなかったらそれまでの値をまとめて受け取りたい」という状況はよくあると思います。 例えばダブルタップだと「0.25秒間なにもイベントがなかったとき、それまでのタップ数が2回だったらダブルタップである」という判定ができます。 他言語では RxJSなどではこのような要件は buffer と debounce (throttle) を組み合わせると簡単に実現できます。 buffer の引数にどのタイミングでイベントをまとめるかの条件を渡せるので、debounce を使って「x秒間なにもなかったら」という条件を指定できます 1。 extension ObservableType { func debouncedBuffer(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observ

    RxSwift 3.3 でダブルタップを正確に検知 - Qiita
  • DispatchQueueでthrottle/debounceを実現する - Qiita

    はじめに UITextFieldなどで文字が入力されたときに、その文字列をもとにAPIをたたくことがあると思います。 その際にサーバー負荷なども考慮して、APIを叩く頻度を絞ったりすると思います。 RxSwiftのthrottle/debounceを利用することで、上記のような仕様を満たした実装を容易に実現できますが、プロジェクトに何らかの理由(アプリの容量だったり、サービスの仕様であったり...)でRxSwiftを導入できないこともあるかと思います。 そういった場合、scheduledTimer(timeInterval:target:selector:userInfo:repeats:)などを利用して実装することになると思いますが、timerを管理したり、timerが実行された際にハンドリングするメソッドを実装したりしなければなりません。 そこでDispatchQueueのextens

    DispatchQueueでthrottle/debounceを実現する - Qiita
  • 1