A reactive keyboard observer for iOS that provides keyboard frame changes as RxSwift observables.
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.
iOS developers using RxSwift who need to handle keyboard interactions in their apps, particularly those building forms, chat interfaces, or any input-heavy screens.
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.
Reactive Keyboard in iOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
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.
Works seamlessly with UIScrollViewKeyboardDismissMode.interactive, providing smooth keyboard interactions demonstrated in the provided GIFs for chat and text view examples.
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.
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.
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.
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.