March 28 update - Spruce Android is now publically available

Projects: [Android] [iOS]

What is it?

Spruce is a lightweight library engineered to reduce the friction of managing complex subview animations on user interface layouts. Current libraries out on the market consider only a single view to animate. Spruce can take those beautiful animations and choreograph them across the screen.


With the selection of a SortFunction and animation type, native app developers can introduce screen animations to subviews faster than a designer could construct it in After Effects or Principle! The left and center animations above implement a LinearSortFunction to produce their effect on a Table and Custom View respectively. The right animation uses a CornerSortFunction on a Collection view. Playing around with different styles of animations provided by Spruce or even simply changing the SortFunction can apply a whole new feel to screens within your app.

Why use a SortFunction? With so many apps providing unlimited content to users, designers need to find a way to direct the user’s eye to the most important views on the screen. By using one of the many stock SortFunction implementations provided in the app or developing one of your own, you can decide which views to animate first and grab the user’s attention.

Spruce is scalable

This library isn’t intended to solve one specific use case for animations. Its abstracted management of views and subviews can be applied to any native app. Use it for the most standard features like menus or lists, or add some flair to enhance the UI around a scrolling shelf or calendar.

Spruce is adaptable

Mix and match animations with sort functions for the exact look you want. The current library provides a strong foundation of sort functions and animations to utilize. Use the example app to play around with different combinations. See something that is missing? Work with us to add it in!*

Spruce is efficient

Our clients want world class apps while keeping it under a budget. Spruce can provide that extra zest needed to delight users while keeping the integration simple to use. We don’t exaggerate when we say it could take a single line of code to provide users just the animation they were looking for.

Jump In!

*WillowTree, Inc® is excited to announce we’re launching Spruce as a public and open source project. You can find the iOS project here and the Android project here.

Interested in working on more unique projects like Spruce? Check out our careers page.