Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. RxKeyboard

RxKeyboard

MITSwift2.0.1

A reactive keyboard observer for iOS that provides keyboard frame changes as RxSwift observables.

GitHubGitHub
1.6k stars177 forks0 contributors

What is RxKeyboard?

RxKeyboard is a reactive library for iOS that provides keyboard frame changes as observable streams using RxSwift. It solves the problem of cumbersome keyboard notification management by offering a declarative way to react to keyboard visibility and frame adjustments. Developers can subscribe to keyboard events and update UI components like scroll views and toolbars seamlessly.

Target Audience

iOS developers using RxSwift who need to handle keyboard interactions in their apps, particularly those building forms, chat interfaces, or any input-heavy screens.

Value Proposition

Developers choose RxKeyboard because it replaces verbose notification-based keyboard handling with clean, reactive code. Its built-in support for interactive dismiss modes and scroll view adjustments saves time and reduces bugs compared to manual implementations.

Overview

Reactive Keyboard in iOS

Use Cases

Best For

  • Building chat or messaging interfaces where the input toolbar must move with the keyboard
  • Creating forms with multiple text fields that require scroll view adjustments
  • Implementing interactive keyboard dismiss gestures in scrollable views
  • Developing apps with complex Auto Layout constraints that depend on keyboard visibility
  • Simplifying keyboard event handling in RxSwift-based iOS projects
  • Avoiding boilerplate code for keyboard frame observation and state management

Not Ideal For

  • Projects not using RxSwift or reactive programming paradigms, as it adds unnecessary dependencies and complexity.
  • Apps with minimal keyboard interaction where native UIKit notifications suffice with a few lines of code.
  • Cross-platform or multi-platform development targeting macOS, watchOS, or other frameworks beyond iOS.

Pros & Cons

Pros

Reactive Keyboard Streams

Delivers keyboard frame changes as RxSwift Driver streams, eliminating manual notification management and making state changes easy to subscribe to, as highlighted in the README's core features.

Interactive Dismiss Integration

Works seamlessly with UIScrollViewKeyboardDismissMode.interactive, providing smooth keyboard interactions demonstrated in the provided GIFs for chat and text view examples.

Built-in UI Adjustments

Includes helpers for adjusting UIScrollView content inset and Auto Layout constraints, with clear code snippets in the README for common scenarios like toolbar movement and scroll view updates.

Cons

RxSwift Dependency

Requires RxSwift and RxCocoa (>=6.0), making it unsuitable for projects not already using reactive programming or those aiming to minimize third-party library overhead.

Installation Restrictions

Carthage support is limited to specific Xcode and Swift versions, as detailed in the README, which can cause compatibility issues in environments with newer or older toolchains.

Platform Limitation

Exclusively designed for iOS (9+), so it cannot be used in cross-platform projects or other Apple platforms like macOS or watchOS without significant workarounds.

Frequently Asked Questions

Quick Stats

Stars1,603
Forks177
Contributors0
Open Issues17
Last commit2 months ago
CreatedSince 2016

Tags

#ios#keyboard-handling#reactive-programming#ui-kit#keyboard#cocoapods#swift#carthage#rxswift

Built With

R
RxCocoa
S
Swift
R
RxSwift

Included in

iOS51.7k
Auto-fetched 10 hours ago

Related Projects

RxSwiftRxSwift

Reactive Programming in Swift

Stars24,647
Forks4,154
Last commit3 days ago
ReactiveCocoaReactiveCocoa

Cocoa framework and Obj-C dynamism bindings for ReactiveSwift.

Stars19,808
Forks3,410
Last commit1 year ago
ReSwiftReSwift

Unidirectional Data Flow in Swift - Inspired by Redux

Stars7,589
Forks518
Last commit2 years ago
JASONETTE-iOSJASONETTE-iOS

📡 Native App over HTTP, on iOS

Stars5,223
Forks347
Last commit4 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub