Skip to content

Hero vs Spring

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

Hero

Open source · MIT

A Swift library for custom iOS and tvOS screen transitions, set up declaratively.

Spring

Open source · MIT

A Swift library that adds ready-made animation effects to iOS views with little code.

The short answer

Choose Hero if you need…

  • iOS developers who want custom screen transitions without writing UIKit animation code by hand
  • Developers who want shared-element style transitions between matching views
  • Teams building Swift apps that use UINavigationController, UITabBarController, or modal presentations
  • Developers who prefer setting up animations in code or in the storyboard

Choose Spring if you need…

  • iOS developers who want common UI animations without building them from scratch
  • Developers prototyping app screens and transitions quickly
  • Developers who prefer setting animations in Storyboard without much code
  • Teams maintaining Swift 4.2-era iOS projects

Side-by-side

HeroSpring
TypeLibraryLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars22.5k14.1k
Setup difficultyIntermediateBeginner
How you get itInstall with a package managerClone and build from source
Main languageSwiftSwift
Last code update22 months ago3 years ago

What each one is

Hero

Hero is a Swift library that makes custom animations between screens (view controllers) in iOS apps easier to build. It sits on top of UIKit's transition APIs, which the README describes as cumbersome, and lets developers match views across screens using a heroID and describe changes with heroModifiers. Developers use it to add polished transitions without writing low-level animation code.

Spring

Spring is a Swift library for iOS that provides a set of prebuilt animations, such as shake, pop, fade, slide and zoom, that can be applied to user interface views. It can be used by setting properties in Xcode's Storyboard editor or by writing a few lines of code. It is mainly used to make app interfaces move in a polished way without writing animation math by hand.

Best for

Hero

  • iOS developers who want custom screen transitions without writing UIKit animation code by hand
  • Developers who want shared-element style transitions between matching views
  • Teams building Swift apps that use UINavigationController, UITabBarController, or modal presentations
  • Developers who prefer setting up animations in code or in the storyboard

Spring

  • iOS developers who want common UI animations without building them from scratch
  • Developers prototyping app screens and transitions quickly
  • Developers who prefer setting animations in Storyboard without much code
  • Teams maintaining Swift 4.2-era iOS projects

Strengths

Hero

  • Declarative API: views are matched with a simple heroID property instead of manual animation code
  • Works with Auto Layout, programmatic layout, UICollectionView, UITableView, and navigation or tab bar controllers, per the README
  • Actively maintained on GitHub with about 22,000 stars, MIT license, and a documented usage guide

Spring

  • Provides a large set of built-in animation presets and curve options listed in the README
  • Can be used from Storyboard without writing code
  • Widely starred and well known in the iOS community, with a demo app and tutorials referenced

Not ideal for

Hero

  • Projects that only need the standard iOS transitions, since the built-in ones may already be enough
  • Developers building for Android, web, or other platforms, since the library is for iOS and tvOS only
  • Anyone expecting a visual tool that needs no coding, since usage is through Swift code or storyboard settings

Spring

  • Projects on current Swift or Xcode versions, since the README states it was updated for Swift 4.2 and Xcode 10 and the last push was in 2023 with no release listed
  • Developers who need Android or web animations, since this is iOS-only
  • Anyone needing a documented, versioned API, since the README is short and no release is published

Trade-offs

Hero

  • Limited to iOS and tvOS; not usable on other platforms
  • The README is brief and points to an external wiki for detailed documentation
  • Some behavior needs extra setup, such as the global coordinate space modifier for views being covered during a transition

Spring

  • The README targets Swift 4.2 and Xcode 10, which are old, so compatibility with current tools is unclear
  • The README notes that not all properties work together and that a known issue affects segue-based views
  • No published release or topics listed, and the README is brief about maintenance status

Getting started

Hero

Add to Podfile, then install (CocoaPods)

pod 'Hero'

Install pods (CocoaPods)

pod install
Step-by-step guide: how to use Hero

Spring

Clone the repository

git clone https://github.com/MengTo/Spring

CocoaPods entry (add to Podfile)

pod 'Spring', :git => 'https://github.com/MengTo/Spring.git'
Step-by-step guide: how to use Spring

Frequently asked questions

What is the difference between Hero and Spring?

Hero: A Swift library for custom iOS and tvOS screen transitions, set up declaratively. Spring: A Swift library that adds ready-made animation effects to iOS views with little code. Hero suits ios developers who want custom screen transitions without writing uikit animation code by hand, while Spring suits ios developers who want common ui animations without building them from scratch.

Are Hero and Spring free?

Hero: Free and open source. Spring: Free and open source.

Which is easier to set up, Hero or Spring?

Spring is easier to get started with (rated beginner); Hero is rated intermediate and usually needs more setup.

Is Hero or Spring more popular?

Hero has more GitHub stars (22.5k) than Spring (14.1k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to Hero and Spring?

Other options people compare them with include NVActivityIndicatorView, Material, SkeletonView, RAMAnimatedTabBarController, FoldingCell.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.