An elegant iOS library to show skeleton loading views while content is being fetched.
SkeletonView is an iOS library that displays skeleton loading views to indicate that content is being loaded. It solves the problem of showing users that something is happening during async processes like API requests, providing a smooth visual placeholder that prepares them for incoming content. The library is fully customizable and works with all UIView subclasses, including UITableView and UICollectionView.
iOS developers building apps with async content loading who want to improve user experience with elegant skeleton screens. It's particularly useful for those working with complex views, collections, or needing fine control over loading animations.
Developers choose SkeletonView for its simplicity, extensive customization options, and seamless integration with UIKit. Unlike basic activity indicators, it provides realistic content placeholders, supports animations and gradients, and includes specialized protocols for collections, making it a comprehensive solution for loading states.
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integration requires only three steps with full Interface Builder support, making it accessible for developers of all levels.
Offers multiple skeleton types including gradient and animated variants, with configurable colors, animations, and transitions for tailored loading experiences.
Provides specialized data source protocols for UITableView and UICollectionView, enabling skeleton cells with minimal additional code.
Simulates multiline text with adjustable line count, spacing, and fill percentages, accurately mimicking content layout during loading.
Lacks native integration for SwiftUI, requiring developers to create bridges or use alternative solutions for modern SwiftUI-based apps.
Each UIView must be explicitly marked as skeletonable, and collection views need protocol conformance, adding boilerplate code in larger projects.
As admitted in the README, skeleton layouts may not automatically adjust to bounds changes, sometimes necessitating manual calls to layoutSkeletonIfNeeded.