An iOS view controller transition animation implementing Google's Material Design motion principles.
JTMaterialTransition is an iOS library that provides custom animated transitions between view controllers based on Google's Material Design motion principles. It solves the problem of creating engaging, standardized animations where a new view appears to expand from a specific source element on screen. The library implements the Material "hero" transition pattern to enhance visual continuity and user experience.
iOS developers building apps that follow Material Design guidelines or seeking polished, custom view controller animations. It's particularly useful for developers who want to implement specific motion patterns without building complex transition logic from scratch.
Developers choose JTMaterialTransition for its straightforward implementation of Material Design motion, requiring minimal code to achieve professional animations. Its unique selling point is providing a ready-made, design-system-accurate transition that would otherwise require significant custom Core Animation work.
An iOS transition for controllers based on material design.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Accurately implements the Material Design 'hero' transition pattern, providing fluid and engaging animations that enhance user experience with minimal code.
Easy to attach to any view controller by setting it as the transitioningDelegate, as demonstrated in the basic usage example with just a few lines of code.
Allows customization of the animation's origin from a specific view or custom frame and background color, offering design flexibility without complex setup.
Requires only iOS 8.0+ and Swift 4.2, with straightforward installation via CocoaPods, making it a low-effort addition to UIKit projects.
Mandates that the presented controller has a defined backgroundColor; otherwise, the animation can appear visually incorrect, as explicitly warned in the README.
Primarily designed for custom modal transitions between view controllers, not supporting other types like navigation pushes or tab switches without additional work.
Setting the startFrame requires converting coordinates to the window's system, which can be error-prone and adds complexity, as noted in the instructions.