A customizable star rating UI control for iOS and tvOS apps, written in Swift.
Cosmos is a star rating UI control for iOS and tvOS applications, written in Swift. It provides developers with a ready-to-use component for displaying star ratings and collecting user ratings within their apps. The control solves the problem of building a custom, accessible, and visually consistent rating interface from scratch.
iOS and tvOS developers who need to integrate star rating displays or input controls into their apps, particularly those using Swift and Interface Builder.
Developers choose Cosmos for its seamless Storyboard integration, extensive customization options, and accessibility support, which saves development time compared to building a custom control. Its compatibility with multiple dependency managers and Swift versions ensures easy adoption.
A star rating control for iOS/tvOS written in Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Cosmos allows full configuration and preview directly in Interface Builder, enabling visual design without writing code, as shown in the README's step-by-step setup.
Offers control over star size, spacing, colors, and custom images, with support for full, half, and precise fill modes, detailed in the customization section.
Built-in VoiceOver compatibility and RTL language support make it accessible out of the box, emphasized as a key feature in the README.
Supports both iOS and tvOS, with interoperability for SwiftUI and Objective-C, covering a range of Apple development needs via multiple setup methods.
The README notes specific instructions for tvOS to avoid CocoaPods errors, indicating a less straightforward setup compared to iOS.
Requires manual disabling of pan gestures to work correctly in modal screens on iOS 13, as mentioned in the 'Using Cosmos in a modal screen' section, showing incomplete native integration.
As a UIView subclass, using Cosmos in SwiftUI requires additional wrapping via UIViewRepresentable, which can be cumbersome for pure SwiftUI projects, as referenced in the wiki link.