A Swift library that adds sparkling particle effects to any UIView in iOS and tvOS apps.
Twinkle is a Swift library that adds sparkling particle animations to UIViews in iOS and tvOS applications. It uses CAEmitterLayers to generate customizable sparkle effects, solving the need for engaging visual feedback without complex animation code. Developers can apply these effects with minimal configuration to enhance user interfaces.
iOS and tvOS developers looking to add subtle, visually appealing particle effects to their apps without implementing complex Core Animation logic.
Twinkle offers a dead-simple API for creating polished sparkle animations, reducing the boilerplate code typically required for CAEmitterLayer configurations. Its lightweight design and customization options make it a preferred choice over manual animation implementations.
:sparkles: Twinkle interface elements 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.
Offers a UIView extension with a single method call like `view.twinkle()` for quick addition of sparkle effects, as shown in the basic usage example.
Allows fine-tuning of particle parameters such as count, birth rate, and scale through the `Twinkle.Configuration` struct, enabling precise visual control.
Supports using custom images for particles, such as stars, via the `image` parameter in the `twinkle` method, for personalized animations without relying on default sparkles.
Includes a companion library for Android, facilitating consistent sparkle effects across iOS and Android platforms, though as separate implementations.
Relies on CAEmitterLayers which are GPU-intensive and can impact app performance, especially on older devices or when animating multiple views simultaneously.
Focused solely on sparkle particle animations, lacking support for other common UI animations like transitions or gestures, which may require integrating additional libraries.
Built for UIKit and UIView, not natively compatible with SwiftUI, requiring extra effort such as wrappers for integration in modern SwiftUI-based projects.