Skip to content

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
Step-by-step guide: how to use SkeletonViewInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
SkeletonView (this)12.9kLibrarybeginner5 months agoiOS developers building apps that load data from the network
NVActivityIndicatorView10.7kLibrarybeginner8 months agoiOS developers who want a ready-made loading indicator with many styles
Hero22.5kLibraryintermediate1.8 years agoiOS developers who want custom screen transitions without writing UIKit animation code by hand
Eureka11.8kLibraryintermediate2.2 years agoiOS developers building form-heavy screens in Swift
animated-tab-bar11.1kLibraryintermediate4.8 years agoiOS developers who want animated tab bar icons without writing the animation logic from scratch
react-content-loader14kLibrarybeginner10 months agoReact 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.