
SkeletonView
A loading placeholder library for iOS that shows grey skeleton shapes where content will appear.
- Stars
- 12.9k
- Forks
- 1.1k
- Licence
- MIT
- Language
- Swift
- Last update
- 5 months ago
- Type
- Library
What it is
SkeletonView is a Swift library for iOS apps. While data loads, it covers views with animated or solid placeholder shapes so users can see roughly what content is coming. You mark which views should become placeholders, then call one of four show methods on a view or its container.
- Show animated gradient placeholders in a feed while an API request is running
- Display skeleton rows in a table view before the first page of data arrives
- Mark labels and images in a storyboard as skeletonable and toggle the skeleton on and off
Great for
- iOS developers building apps that load data from the network
- Teams using UITableView or UICollectionView lists that need loading placeholders
- Developers who want a loading state without writing custom animation code
Not ideal for
- Developers who need Android, web, or cross-platform support, since the README only covers iOS
- Projects that want a simple spinner and do not need placeholders matching the layout
- Apps with very old iOS targets, since the README does not list minimum supported versions
How to get it
- 1
Install with a package manager
You'll need: Xcode · Swift Package Manager, CocoaPods, or Carthage
Swift Package Manager (add to Package.swift dependencies)
.package(url: "https://github.com/Juanpe/SkeletonView.git", from: "1.7.0")CocoaPods (Podfile)
pod 'SkeletonView' - 2
Run it
- Add the dependency with one of the package managers listed in the README.
- Add import SkeletonView to the file where you want placeholders.
- Set isSkeletonable = true on the views you want to cover, either in code or in Interface Builder.
- Call showSkeleton(), showGradientSkeleton(), showAnimatedSkeleton(), or showAnimatedGradientSkeleton() on the container view.
- 3
Get the most out of it
- Call the show method on a main container view, since the README says SkeletonView is recursive.
- For table and collection views, implement SkeletonTableViewDataSource or the collection equivalent to control cell count and identifiers.
- Return UITableView.automaticNumberOfSkeletonRows to fill the table with as many placeholder rows as needed.
- Use the prepareCellForSkeleton method to hide specific labels in placeholder cells.
- Watch the linked YouTube guides for walkthroughs of setup in different Swift versions.
Downloads
Strengths
- Setup is three steps: import, mark views as skeletonable, show the skeleton
- Supports Swift Package Manager, CocoaPods, and Carthage
- Works with both code and Interface Builder or Storyboards
Trade-offs
- The README is truncated, so details beyond the table view and collection view sections are unclear from this source
- Table and collection support needs extra data source protocol methods to be implemented
- Support for newer iOS or Swift versions is not stated in the README excerpt
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| SkeletonView (this) | 12.9k | Library | beginner | 5 months ago | iOS developers building apps that load data from the network |
| NVActivityIndicatorView | 10.7k | Library | beginner | 8 months ago | iOS developers who want a ready-made loading indicator with many styles |
| Hero | 22.5k | Library | intermediate | 1.8 years ago | iOS developers who want custom screen transitions without writing UIKit animation code by hand |
| Eureka | 11.8k | Library | intermediate | 2.2 years ago | iOS developers building form-heavy screens in Swift |
| animated-tab-bar | 11.1k | Library | intermediate | 4.8 years ago | iOS developers who want animated tab bar icons without writing the animation logic from scratch |
| react-content-loader | 14k | Library | beginner | 10 months ago | React developers who want loading placeholders for cards, lists, or profiles |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.