SSSwiftUIGIFView icon indicating copy to clipboard operation
SSSwiftUIGIFView copied to clipboard

SSSwiftUIGIFView is a custom controller designed to help load GIFs in SwiftUI. It supports loading GIFs from remote URLs, is compatible with both iOS and macOS, and implements a caching mechanism to i...

SSSwiftUIGIFView

Swift Package Index Swift Package Index SPM Compatible-badge Version License PRs Welcome Twitter

SSSwiftUIGIFView is a custom controller designed to help load GIFs in SwiftUI. It supports loading GIFs from remote URLs, is compatible with both iOS and macOS, and implements a caching mechanism to improve loading times and reduce data usage. Additionally, it provides both a default progress view and support for custom progress views while loading the GIF.

Features

  • [x] Support for loading local GIFs and GIFs from remote URLs
  • [x] Cache mechanism support
  • [x] Cross-platform compatibility (iOS & macOS)
  • [x] Custom and default progress view support

Requirements

  • iOS 14.0+
  • MacOS 13.0+
  • Xcode 11+

Installation

CocoaPods

SSSwiftUIGIFView is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'SSSwiftUIGIFView'

Swift Package Manager

When using Xcode 11 or later, you can install SSSwiftUIGIFView by going to your Project settings > Swift Packages and add the repository by providing the GitHub URL. Alternatively, you can go to File > Add Package Dependencies...

     dependencies: [
         .package(url: "https://github.com/SimformSolutionsPvtLtd/SSSwiftUIGIFView.git", from: "2.0.0")
     ]
     

Manually

  1. Add GIFCache.swift, GIFImageViewModel.swift, GIFPlayerView.swift and SwiftUIGIFPlayerView.swift to your project.
  2. Grab yourself a cold 🍺.

Documentation

Documentation - Find the full API reference for more detailed documentation.

Usage example

  • Import framework

      import SSSwiftUIGIFView
    
  • Load GIF with SwiftUIGIFPlayerView function

      SwiftUIGIFPlayerView(gifName: "Gif Name")
    
  • Load GIF URL with SwiftUIGIFPlayerView function

      SwiftUIGIFPlayerView(gifURL: gifURL) // Here the gifURL is a link to a GIF.
    
  • If we want to show the default progress bar while loading a GIF

      // Default value for isShowProgressView is false 
    
      SwiftUIGIFPlayerView(gifURL: gifURL, isShowProgressView: true)
    
  • If we want to show a custom progress bar while loading a GIF

      SwiftUIGIFPlayerView(gifURL: gifURL) {
          //Custom Progress bar view
      }
    



How to Contribute 🤝

Whether you're helping us fix bugs, improve the docs, or a feature request, we'd love to have you! :muscle: Check out our Contributing Guide for ideas on contributing.

Find this example useful? ❤️

Support it by joining stargazers :star: for this repository.

Bugs and Feedback

For bugs, feature feature requests, and discussion use GitHub Issues.

Check out our other Libraries

🗂 Simform Solutions Libraries→

MIT License

This project is licensed under the MIT License - see the LICENSE file for details