NEW: Pre-order my Vapor book and learn server-side Swift! >>

SkeletonView makes loading content beautiful

Paul Hudson    November 17th 2017    @twostraws

You've made a gorgeous app design, and you've tested your code until you're sure it's bug free. But there's one thing you can't control, which is your user's network connection – and if you need to fetch and display remote data, that means users are going to stare at a blank screen for a few seconds until that data comes back.

Or at least that's what they would do without a beautiful new Swift project called SkeletonView from Juanpe Catalán. This was designed to control the display of your views while your network requests are still running, and automatically provide placeholder graphics for images and text that show something is loading.

Multiline text being replaced by SkeletonView

The process for enabling skeleton views couldn't be simpler:

  1. Import the library (yes, it supports Carthage and CocoaPods.)
  2. Mark any view as being skeletonable using someView.isSkeletonable = true
  3. Activate the skeleton drawing using someView.showSkeleton()

Helpfully, SkeletonView operates recursively: if you call it on a container view, e.g. view.showSkeleton() for your view controller's main view, then it will wind its way through your view hierarchy to make subviews skeletonable. Even better, you can add gentle animations from built-in defaults, or add your own – it's really customizable!

SkeletonView is available under the MIT license, so this is the kind of thing you can drop in and use to get immediate wins.

Link: SkeletonView.

 

About the author

Paul Hudson is the creator of Hacking with Swift, the most comprehensive series of Swift books in the world. He's also the editor of Swift Developer News, the maintainer of the Swift Knowledge Base, and Mario Kart world champion. OK, so that last part isn't true. If you're curious you can learn more here.

Click here to visit the Hacking with Swift store >>