Animated Transitions

A library for simplifying animated segues between application states

Chet Haase

Overview

This library, documented in Chapter 18 of the book Filthy Rich Clients, enables easy, automated transitions between different UI screens of an application. The library works by creating and configuring a ScreenTransition object, starting it when you want to run the transition, handling a single callback to an implementation of TransitionTarget.setupNextScreen(), and letting the library do everything else.

The library figures out which components change between the before/after screens and then automatically runs animated effects for all of those changing components. Which effects are run depends on how the components change and whether there are any custom effects installed in the system.

There is obviously a lot more to it, but I will leave the explanation of how it all works to the book, articles, and demos referenced in the Resources section below.

Downloads

Note: The current versions depends on version 1.0 of the Timing Framework; you will need to get that version from the project site in order to build and run Animated Transitions applications.

Version 0.11 (October 26, 2007)

Version 0.1 (October 17, 2007)

Resources

The library is fully documented in the book Filthy Rich Clients (see Chapter 18, cleverly entitled "Animated Transitions"). There are two demo applications using Animated Transitions in the book, and the chapter details how custom effects are used and how various aspects of the library get their job done. The two demo applications are available on the book's website.

Also:

Otherwise, feel free to download the library, the javadocs, and the source code. And start using it - move your users!

Update Log

October 26, 2007: Release 0.11

Minor but important change (to me, at least); I removed the internal hack that required applets/applications to be signed. Basically, the library was using reflection to set an internal property inside of JComponent that disabled double-buffering when rendering transition components to images. There was a better workaround available that required no such hack, so I've changed the code and it is no longer necessary go sign your apps, at least not because of AnimatedTransitions.

October 22, 2007: Release 0.1 debuted!

This is the first source release. It's nearly the same API as in the book (changes are documented on the book's website's "Errata" page), although there have been some important performance and leak fixes since the initial demos were released.

Limitations

As of October 22, 2007:

The library is, I subjectively think, a pretty cool utility for making screen transtions wayyyyyyyyyyyyyyyyyyyyyyyyyy way easier than they are if you're simply hand-coding all of the animations. However, there are rough edges to the API and the implementation that are worth noting. Think of these as notes on what to expect, what not to expect, and what I hope to work on in future releases.