Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here

Shimmer

An easy way to add a simple, shimmering effect to any view in an iOS app.

Subscribe to updates I use Shimmer


Statistics on Shimmer

Number of watchers on Github 8404
Number of open issues 17
Average time to close an issue 6 days
Main language Objective-C
Average time to merge a PR 1 day
Open pull requests 7+
Closed pull requests 8+
Last commit over 2 years ago
Repo Created over 5 years ago
Repo Last Updated over 1 year ago
Size 2.69 MB
Organization / Authorfacebook
Contributors16
Page Updated
Do you use Shimmer? Leave a review!
View open issues (17)
View Shimmer activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating Shimmer for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Shimmer

Shimmer is an easy way to add a shimmering effect to any view in your app. It's useful as an unobtrusive loading indicator.

Shimmer was originally developed to show loading status in Paper.

Shimmer

Usage

To use Shimmer, create a FBShimmeringView or FBShimmeringLayer and add your content. To start shimmering, set the shimmering property to YES.

An example of making a label shimmer:

FBShimmeringView *shimmeringView = [[FBShimmeringView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:shimmeringView];

UILabel *loadingLabel = [[UILabel alloc] initWithFrame:shimmeringView.bounds];
loadingLabel.textAlignment = NSTextAlignmentCenter;
loadingLabel.text = NSLocalizedString(@"Shimmer", nil);
shimmeringView.contentView = loadingLabel;

// Start shimmering.
shimmeringView.shimmering = YES;

There's also an example project. In the example, you can swipe horizontally and vertically to try various shimmering parameters, or tap to start or stop shimmering. (To build the example locally, you'll need to open FBShimmering.xcworkpace rather than the .xcodeproj.)

Installation

There are two options:

  1. Shimmer is available as Shimmer in Cocoapods.
  2. Manually add the files into your Xcode project. Slightly simpler, but updates are also manual.

Shimmer requires iOS 6 or later.

How it works

Shimmer uses the -[CALayer mask] property to enable shimmering, similar to what's described in John Harper's 2009 WWDC talk (unfortunately no longer online). Shimmer uses CoreAnimation's timing features to smoothly transition on-beat when starting and stopping the shimmer.

Other Platforms

We have a version of Shimmer for Android, too! It's also available on GitHub.

Contributing

See the CONTRIBUTING file for how to help out.

License

Shimmer is BSD-licensed. We also provide an additional patent grant.

Shimmer open issues Ask a question     (View All Issues)
  • almost 3 years Tag a new release ?
  • almost 3 years SIGSEGV when deallocating view controller
  • over 3 years -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 0]
  • over 4 years Ability to change the shimmer colour?
Shimmer open pull requests (View All Pulls)
  • Add Carthage Support
  • Adds Carthage framework build
  • Self shimmering (no `contentView`) as per #15
  • [ADD] Carthage Installation Guide on ReadMe file
  • Adding CALayerDelgate in Class FBShimmerLayer interface
  • Update .gitignore
  • Tvos support
Shimmer questions on Stackoverflow (View All Questions)
  • Facebook shimmer remove mask after animation
  • Shimmer animation in IOS?
  • How can I create a shimmer over time animation with a canvas element?
  • How can I modify Grant Pauls's Shimmer control so the mask responds to accelerometer input?
  • Shimmer for android
  • Programming Shimmer 3D sensor in C#
  • Make a QBFlatButton Shimmer with FBShimmer
  • How to use multiple features such as pitch, formants, shimmer and jitter to train HMM using HTK toolkit instead of MFCC only?
  • How To Add Shimmer for Android Library in My Project Android Eclipse
  • How to use Shimmer for Android while a webview is loading?
  • jQuery Shimmer Button Effect
  • WS_EX_COMPOSITED causes entire app to flicker/shimmer when tab control has too many tabs
  • Shimmer device X Y Z Axis
  • Apply a mask to a UIView to simulate a glass shimmer
  • Integrating Shimmer with Android Tablet
  • Any techniques for coding a heat shimmer/haze with actionscript 3?
Shimmer list of languages used
Other projects in Objective-C