A customizable iOS download button component that replicates Netflix's app download button animation and states.
NFDownloadButton is a Swift-based UI component library that provides an animated download button for iOS applications. It reverse-engineers Netflix's app download button interaction, offering developers a ready-to-use button with smooth state transitions and progress tracking. The component solves the need for polished, engaging download functionality without requiring custom animation implementation.
iOS developers building apps with download functionality, particularly those looking for production-ready UI components with Netflix-style interactions. It's ideal for developers who want to implement engaging download buttons without spending time on custom animation development.
Developers choose NFDownloadButton because it provides a battle-tested, visually appealing download button that mimics popular app interactions while offering full customization. Unlike building from scratch, it saves development time and ensures consistent, polished animations across different download states.
Revamped Download Button. It's kinda a reverse engineering of Netflix's app download button.
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 four distinct download states with smooth transitions, as demonstrated in the GIFs, providing a Netflix-like user experience without custom animation code.
Includes customizable button styles for iOS, watchOS, tvOS, and macOS, ensuring design consistency across Apple devices, with examples shown in the README images.
Provides a flexible palette system allowing control over initial, ripple, background, and download colors, as illustrated in the palette screenshot.
Supports @IBDesignable and @IBInspectable properties, enabling configuration directly from Interface Builder without code, as shown in the storyboard example.
Built-in progress indicator automatically transitions to Downloaded state at 100%, simplifying download state management, as explained in the usage section.
Built on UIKit, making it incompatible with SwiftUI projects without using UIViewRepresentable, which adds complexity and breaks native SwiftUI workflows.
Only supports Apple platforms, so it's not suitable for cross-platform development beyond iOS, watchOS, tvOS, and macOS, restricting broader app compatibility.
Last updated to version 0.0.6 with Swift 4.2+, which may not be actively maintained or compatible with newer Swift versions, posing risks for long-term projects.
Animations are predefined and tied to specific states, limiting flexibility for custom animation sequences or behaviors beyond the provided transitions.