explaingit

facebookarchive/shimmer

9,332Objective-CAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

Shimmer is a small, archived iOS library from Facebook that adds a moving light-sweep loading animation, like the skeleton screens in social media apps, to any UI element with a single property toggle.

Mindmap

mindmap
  root((Shimmer))
    What It Does
      Loading animation
      Light sweep effect
    Integration
      CocoaPods
      Manual source copy
    API
      FBShimmeringView
      FBShimmeringLayer
    Platform
      iOS 6 plus
      CoreAnimation
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add a shimmering placeholder animation to text labels and images while an iOS app fetches data from a server

USE CASE 2

Create skeleton loading screens in iOS apps to improve perceived responsiveness

USE CASE 3

Drop in a polished loading effect without writing CoreAnimation mask code from scratch

Tech stack

Objective-CiOSCoreAnimationCocoaPods

Getting it running

Difficulty · easy Time to first run · 5min

This repository is archived and no longer maintained, consider alternatives for new projects.

Use freely for any purpose including commercial use, as long as you keep the copyright notice (BSD license).

In plain English

Shimmer is a small iOS library, originally built by Facebook for their Paper app, that adds a shimmering light-sweep animation to any element on screen. The effect is the kind you have likely seen in social media apps when content is loading: a soft glimmer moves across a placeholder or label to signal that something is on its way. It is not a flashy animation but a quiet, unobtrusive way to let users know the app is working. Using Shimmer is straightforward. You wrap your existing UI element, like a text label or image view, inside a special container called FBShimmeringView, then flip one property to start the animation. A matching FBShimmeringLayer is also available for lower-level use. The library ships with an interactive example project where you can swipe in different directions to adjust shimmer settings and tap to toggle the effect on and off. Adding Shimmer to a project can be done through CocoaPods, which is a dependency manager for iOS and Mac projects, or by manually copying the source files directly into Xcode. The library requires iOS 6 or later. Under the hood, Shimmer works by applying a mask to an iOS layer, a technique built into Apple's animation framework. It uses CoreAnimation's timing features to make the shimmer start and stop smoothly rather than cutting in and out abruptly, keeping the visual effect consistent with the rhythm of the surrounding interface. This repository sits in Facebook's archive, meaning it is no longer actively maintained. An Android version of the library is available separately on GitHub. The code is released under the BSD license.

Copy-paste prompts

Prompt 1
Show me how to wrap a UILabel in FBShimmeringView and start the shimmer animation while my iOS app loads remote data, then stop it when data arrives.
Prompt 2
I'm using Shimmer in my iOS app. How do I customize the shimmer speed, direction, and highlight opacity to match my design?
Prompt 3
Write Swift code that displays a shimmering placeholder for a user profile image and name label, then fades them out when the real data loads.
Open on GitHub → Explain another repo

← facebookarchive on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.