A customizable iOS image viewer written in Swift with support for multiple images, animated GIFs, and SwiftUI.
Agrume is an open-source iOS image viewer library written in Swift that enables developers to display single images, galleries, and animated GIFs within their apps. It solves the need for a customizable, easy-to-integrate image viewing component with features like background blurring, custom download handlers, and SwiftUI support. The library handles common tasks like image loading, zooming, and dismissal gestures out of the box.
iOS developers building apps that require image viewing capabilities, such as photo galleries, social media apps, or content viewers. It's particularly useful for those using SwiftUI or needing advanced features like animated GIF support and custom overlays.
Developers choose Agrume for its extensive customization options, native iOS feel, and seamless integration with both UIKit and SwiftUI. Its support for animated GIFs, multiple images, and flexible download handlers sets it apart from simpler image viewers.
🍋 A lemony fresh iOS image viewer written in Swift.
Provides smooth gestures like drag-to-dismiss and synced scrolling with UICollectionView, creating a polished user experience that matches iOS conventions.
Allows extensive tweaks such as blurred or colored backgrounds, custom close buttons, and overlay views, enabling developers to match app design closely.
Built-in support for SwiftyGif handles local and remote animated images seamlessly, a feature not common in basic image viewers.
Offers components for both frameworks, including AgrumeView for SwiftUI, making it versatile across different iOS project types.
Supports iOS 16+ Live Text for interactive text and QR code detection in images, leveraging modern iOS capabilities without extra code.
The README admits that SwiftUI implementation doesn't surface configurations, restricting it to basic use and requiring PRs or workarounds for advanced needs.
Animated GIF support relies on SwiftyGif, adding an external dependency that increases project complexity and potential bloat.
Implementing custom download handlers or data sources requires additional boilerplate code and understanding of the library's architecture, as shown in the MapleBacon example.
Lacks native image caching; developers must integrate third-party libraries or write custom handlers, which can be time-consuming and error-prone.
A lightweight, pure-Swift library for downloading and caching images from the web.
An open source iOS framework for GPU-based image and video processing
Image loading system
iOS library for quickly displaying images while scrolling
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.