A framework for composing iOS settings screens with built-in cell types and extensible customization.
Bohr is an iOS framework for composing settings screens in apps, providing a structured way to organize and manage user preferences. It solves the problem of building customizable and extensible settings interfaces by offering built-in cell types for common settings and allowing developers to create custom cells.
iOS developers building apps that require settings or configuration screens, particularly those using Objective-C or Swift with UIKit.
Developers choose Bohr for its ease of use, built-in cell types, and extensibility, enabling rapid development of settings screens without sacrificing customization.
Settings screen composing framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes ready-to-use cells for common setting types like switches, text fields, dates, and choices, as listed in the 'Built-in BOTableViewCell's' section of the README.
Allows easy creation of custom cell subclasses via the 'BOTableViewCell+Subclass.h' header, enabling support for any setting type, as demonstrated in the 'Subclassing BOTableViewCell' section.
Uses BOTableViewController and BOTableViewSection to logically group settings into sections and cells, simplifying setup as shown in the 'Basic setup' example.
Supports installation via Carthage, CocoaPods, or manual drag-and-drop, providing integration flexibility for different project workflows, per the 'Installation' section.
The README explicitly states 'THIS PROJECT IS NO LONGER MAINTAINED,' meaning no bug fixes, updates, or community support, which is a critical drawback for production use.
Does not support SwiftUI, Apple's modern UI framework, making it obsolete for new projects adopting current iOS development standards, as hinted by the suggested SwiftUI Form alternative.
While extensible, creating custom cells requires subclassing and manual implementation, which can be more time-consuming than using higher-level frameworks with pre-built components.