A custom iOS UIView that replicates Snapchat's stories timer with independent animations and customizable colors.
SnapTimer is an open-source iOS library that provides a custom UIView replicating the timer used in Snapchat stories. It allows developers to add a visually identical, animated progress timer to their apps for features like timed content displays or story viewers. The component supports independent inner and outer timers, customizable colors, and smooth animations.
iOS developers building apps that require timed content displays, such as social media stories, tutorials, or progress indicators. It's particularly useful for those seeking a polished, Snapchat-like timer without building it from scratch.
Developers choose SnapTimer for its exact visual match to Snapchat's timer, easy integration via Interface Builder, and full Swift implementation. It saves time compared to custom timer development and offers built-in animation control for app lifecycle events.
Implementation of Snapchat's stories timer.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Replicates Snapchat's timer pixel-perfect, saving development time for apps aiming for that specific aesthetic without custom design work, as shown in the sample images.
With @IBDesignable and @IBInspectable support, developers can customize colors and preview the timer directly in Interface Builder, streamlining the UI design process.
Inner and outer timers can be animated separately with configurable durations and completion handlers, enabling flexible progress indicators for features like story viewing.
Provides pauseAnimation() and resumeAnimation() methods to handle app background transitions effortlessly, ensuring timer animations don't break during interruptions.
Focused on mimicking Snapchat's timer, so altering animation curves, adding more timers, or changing the visual style beyond colors requires modifying the source code directly.
Carthage setup is marked as TODO in the README, and there's no Swift Package Manager support, which can hinder adoption for teams using modern dependency managers.
While it integrates well with Storyboards, developers who prefer programmatic UI without IB might find the setup less intuitive, as much of the documentation assumes IB usage.