The History of Everything
Source Code Now Available
Over the last three months, we’ve been working with Google to create an app that showcases the raw horsepower that Flutter has at its disposal. We wanted to create a real-world app that wasn’t just a demo. It needed to demonstrate not only how powerful Flutter apps are, but also how they enable developers and designers to create completely custom experiences on top of native design mechanisms. For us at 2Dimensions, it was also a unique opportunity to show off some compelling graphics built with our brand new design tool, Flare.
The app we designed and developed is the History of Everything, which uses some fancy scrolling mechanisms to allow the user to scroll and zoom the timeline, dynamically showing/hiding animated historic events as the available space allows. We use Flutter’s ScrollPhysics and GestureDetector to make scrolling feel native on both iOS and Android. This is built into a custom widget, where we’ve added additional view and zoom abilities. This allows the user to navigate through the timeline in a way that feels totally natural on their device, yet also adds elements of playfulness that are unique to this experience. This is what we love about working with Flutter, and all of this is done with a single codebase.
The inspiration for this concept came from The History and Future of Everything YouTube video, one of our favorites from the Kurzgesagt channel. If you’re not familiar with Kurzgesagt, they make beautiful videos with stunning animations, using concepts that tie together science, history, and art. This quote from Kurzgesagt sums it up well:
We create beautiful videos to share our passion for knowledge. We value quality over quantity, always. Nothing in the universe is boring if you tell a good story.
Today we are releasing the source code on GitHub! Feel free to take it for a spin and poke around, and please let us know if you have any questions or comments. All the animations are available as public files on our site. We hope this will serve as a great example for both the Flutter and the Flare communities!