We may earn an affiliate commission when you visit our partners.
Andrea Bizzotto

Want to learn how to build completely custom and performant UIs in Flutter?

This practical course will teach you exactly that, by showing you how to create a clone of the iOS stopwatch app from scratch.

As part of this, you'll learn about the foundations of the Flutter animation framework and build a completely custom UI using:

  • Ticker and TickerProvider

  • Matrix Transforms

  • Stack, LayoutBuilder, AspectRatio, and other layout widgets

Would you like to:

Read more

Want to learn how to build completely custom and performant UIs in Flutter?

This practical course will teach you exactly that, by showing you how to create a clone of the iOS stopwatch app from scratch.

As part of this, you'll learn about the foundations of the Flutter animation framework and build a completely custom UI using:

  • Ticker and TickerProvider

  • Matrix Transforms

  • Stack, LayoutBuilder, AspectRatio, and other layout widgets

Would you like to:

  • build UIs that render every frame, in sync with the screen refresh rate, and without compromising performance?

  • rotate, scale, or translate widgets, and combine them all together to build custom UIs?

Then you've come to the right place.

This course is short and to the point. But it will give you valuable knowledge and a few tricks that will come handy in your future Flutter projects.

What does the completed project look like?

Go check the video preview for a complete overview of the project you'll build in this course.

Other things included in the course:

- How to switch betwen light and dark mode

- How to manage the stopwatch state and start, stop, and reset the timer

- How to optimize the application performance

- How to build modular code by creating small, reusable widgets

- A final challenge to test your knowledge

Frequently Asked Questions

Will we use Flutter 2? Yes. The entire course uses Flutter 2 with Null Safety and I will keep it up to date.

What are the course prerequisites?You should be already familiar with StatelessWidgets and StatefulWidgets, common layouts (Row, Column, Stack), and the foundations of state management in Flutter.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Learn about how to create performant flutter uis that update every frame at 60 fps
  • Work with custom flutter layout widgets: stack, align, positioned, aspectratio, layoutbuilder, transform
  • Work with matrix transforms (scale, rotate, translate) to create custom flutter uis
  • Build a clone of the ios stopwatch app

Syllabus

Flutter Stopwatch App Challenge

In this section will complete a UI challenge and build a stopwatch application.

The two most important topics we will cover are tickers and matrix transforms.

- Tickers are at the foundation of the Flutter animation framework. By learning what they are and how to use them you'll get a much better understanding about how animations work under the hood.

- When you build custom UIs with animations, you'll often need to translate, rotate or scale widgets on screen. Matrix transforms are key in understanding how to do this.

We'll also get some practice working with widgets such as Stack, Align, Positioned, AspectRatio, LayoutBuilder, and cover a bit of state management.

Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Teaches how to build performant UIs that update every frame, which is essential for creating smooth and responsive mobile applications
Explores matrix transforms, which are key to translating, rotating, or scaling widgets on screen when building custom UIs with animations
Uses Flutter 2 with Null Safety, which ensures that learners are working with a modern and up-to-date version of the framework
Requires familiarity with Stateless and Stateful widgets, common layouts, and state management, suggesting it is designed for those with some Flutter experience
Covers tickers, which are at the foundation of the Flutter animation framework, giving learners a better understanding of how animations work

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Mastering flutter custom ui and animations

According to learners, this course provides a practical, hands-on approach highly effective for building custom user interfaces and animations in Flutter. Students particularly appreciate the clear explanations of foundational animation concepts like Tickers and the use of Matrix Transforms. The main project, building a stopwatch app, is widely seen as a valuable learning experience that reinforces the techniques taught. While the course is lauded for being short and to the point, some reviewers note that it assumes a certain level of prior Flutter knowledge, specifically with basic widgets and state management, making it less suitable for absolute beginners.
Short, focused on specific topics.
"This course is short and to the point, which I appreciated."
"It doesn't waste time and gets straight into custom UIs and animations."
"It covers exactly what it promises, without unnecessary fluff."
"A very focused course on advanced UI concepts, not a general Flutter intro."
Builds a functional stopwatch app.
"Building the stopwatch app was a great way to practice everything learned."
"The hands-on project solidified my understanding of custom layouts and animations."
"I enjoyed following along and building the complete stopwatch app."
"It was satisfying to see the final project come together."
Clear explanations of Tickers and Transforms.
"The explanation of Tickers was incredibly clear and helped me understand animations."
"Understanding matrix transforms from this course made a huge difference in my custom UI skills."
"The sections on TickerProvider and Matrix Transforms were very well done."
"I finally understood how Flutter animations work under the hood thanks to this."
Deep dive into custom UI and animations.
"Really gets into the nitty-gritty of building completely custom UIs that perform well."
"I learned so much about creating UIs frame by frame with animations and transforms."
"This course was exactly what I needed to understand custom rendering in Flutter."
"Focuses specifically on building complex UI layouts and integrating animations effectively."
Needs prior basic Flutter knowledge.
"Make sure you have basic Flutter experience before taking this, especially with stateful widgets."
"As noted, it's not for absolute beginners; you should know basic layouts and widgets."
"Felt a bit fast-paced at the start because it assumes you know the basics well."
"I recommend having a solid grasp of StatelessWidget/StatefulWidget beforehand."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Build a Flutter Stopwatch App with Custom UI and Animations with these activities:
Review Flutter Layout Widgets
Strengthen your understanding of fundamental Flutter layout widgets before diving into custom UI creation.
Browse courses on Stack
Show steps
  • Read the official Flutter documentation for each widget.
  • Practice implementing simple layouts using each widget.
  • Experiment with nesting widgets to achieve complex layouts.
Review 'Flutter Complete Reference'
Solidify your understanding of Flutter fundamentals with a comprehensive reference guide.
Show steps
  • Read the chapters on layout widgets and animations.
  • Review the code examples and try them out.
  • Use the book as a reference when working on the stopwatch app.
Practice Matrix Transformations
Reinforce your understanding of matrix transformations through targeted exercises.
Show steps
  • Implement scaling, rotation, and translation using Matrix4.
  • Combine multiple transformations to create complex effects.
  • Visualize the effect of each transformation on a simple widget.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review 'Practical Flutter'
Learn practical Flutter development techniques for building robust applications.
View Practical Flutter on Amazon
Show steps
  • Read the chapters on state management and performance optimization.
  • Implement the best practices in your own projects.
  • Use the book as a guide for building scalable Flutter applications.
Follow Advanced Flutter Animation Tutorials
Deepen your knowledge of Flutter animations by following advanced tutorials that go beyond the basics.
Browse courses on Animations
Show steps
  • Search for tutorials on implicit and explicit animations.
  • Implement the animation examples from the tutorials.
  • Adapt the animation code to your own projects.
Build a Custom Animated UI Component
Apply your knowledge by building a custom animated UI component from scratch.
Show steps
  • Design the UI component and its animation behavior.
  • Implement the UI using Flutter layout widgets and matrix transforms.
  • Animate the UI component using tickers and animation controllers.
  • Optimize the animation performance for smooth rendering.
Write a Blog Post on Flutter Animations
Deepen your understanding of Flutter animations by explaining the concepts in your own words.
Browse courses on Animations
Show steps
  • Choose a specific aspect of Flutter animations to focus on.
  • Research the topic and gather relevant information.
  • Write a clear and concise blog post explaining the concepts.
  • Include code examples and visuals to illustrate the concepts.

Career center

Learners who complete Build a Flutter Stopwatch App with Custom UI and Animations will develop knowledge and skills that may be useful to these careers:
Flutter Developer
A Flutter Developer specializes in building cross-platform applications using the Flutter framework. This course is particularly helpful for a Flutter Developer because it provides a practical and hands-on approach to learning UI development. A Flutter Developer will need an understanding of how to create custom user interfaces and handle animations and this course covers how to use matrix transforms, TickerProviders, and layout widgets such as Stack, AspectRatio, and LayoutBuilder. This course gives an experience building custom interfaces from the ground up. A Flutter Developer can use the skills learned in this course to build a variety of complex and efficient user interfaces.
Mobile Application Developer
A Mobile Application Developer builds applications for mobile devices, often working on both the front-end interface and the back-end logic. This course can help a future Mobile Application Developer learn to create custom and performant user interfaces using Flutter, such as the iOS stopwatch clone built in the course. The course teaches how to use widgets like Stack, AspectRatio, and LayoutBuilder, as well as matrix transforms for scaling and rotation, all of which are essential for creating high-quality mobile applications. The course also gives experience optimizing app performance, creating modular code, and managing application state. Learning these tools and techniques from this course will provide a solid base for a career as a Mobile Application Developer.
User Interface Engineer
A User Interface Engineer focuses on the design and implementation of user interfaces for software applications. A User Interface Engineer would benefit from this course because it provides crucial knowledge about how to create custom interfaces and animations in Flutter. The course explores topics such as matrix transforms, layout widgets, and how to optimize for performance. The course's focus on building a stopwatch app using Ticker and TickerProvider provides a practical illustration of animation frameworks. It would be useful to a User Interface Engineer who wants to learn how to make interfaces that perform well. By taking this course, a User Interface Engineer can learn the skills necessary to build sophisticated and engaging user interfaces.
Mobile Software Developer
A Mobile Software Developer focuses on designing and building software applications specifically for mobile devices. This course is useful for a Mobile Software Developer because it provides practical training in building mobile user interfaces with Flutter. The course covers key topics such as matrix transforms, layout widgets, and tickers, which are essential for smooth animations. A Mobile Software Developer will benefit from learning how to optimize app performance, manage application states, and create reusable code, as covered in this course. This course helps build skills for creating high-performing mobile applications.
UI/UX Developer
A UI/UX Developer works on both the user interface and user experience aspects of software applications. This course is relevant to a UI/UX Developer who needs to know how to create high performing custom UI elements. The course teaches how to implement animations using matrix transforms and work with layout widgets like Stack and AspectRatio. The course includes learning to use Ticker and TickerProvider, which are essential for creating smooth animations. This course can help a UI/UX developer build applications that are both functional and visually appealing.
Front-End Developer
A Front End Developer is responsible for building the user-facing parts of applications. The knowledge of how to build custom and performant UIs in Flutter offered in this course is invaluable to a Front End Developer. This course teaches how to use matrix transforms, Ticker and TickerProvider, Stack, LayoutBuilder, and AspectRatio widgets. Learning to optimize application performance and build modular code, as taught in this course, would be useful to a Front End Developer. The course, with its focus on creating a complete application from scratch, offers hands on experience for aspiring Front End Developers.
Application Developer
An Application Developer designs and builds software applications for various platforms, including mobile devices. This curriculum is useful to an Application Developer in learning how to create completely custom user interfaces using Flutter. An Application Developer needs to know how to use layout widgets such as Stack, AspectRatio, and LayoutBuilder. This course shows a project that uses a stopwatch to demonstrate how to implement animations with matrix transforms and optimize for the performance needed in a mobile application. This course may help an Application Developer learn the skills for building high-quality mobile applications.
Mobile UI Designer
A Mobile UI Designer focuses on the visual aspects of mobile applications, ensuring that interfaces are intuitive and aesthetically pleasing. This course can be beneficial for a Mobile UI Designer since it can provide a deeper understanding of how UI elements are implemented in Flutter. This program goes into the details of custom UI work with layout widgets and matrix transforms, thus giving a Mobile UI Designer insight on what can be done with UI elements. The course may be useful to a Mobile UI Designer because it demonstrates how to optimize performance. This knowledge may help a Mobile UI Designer work more effectively with developers to achieve the best user experience.
UX Engineer
A UX Engineer focuses on the technical implementation of user experience designs, ensuring that interfaces are both functional and user-friendly. The ability to create custom user interfaces and animations in Flutter is useful to a UX Engineer. This course can help a UX Engineer learn how to use layout widgets, matrix transforms, and animation frameworks. The course involves creating a complete application. This practical focus makes it helpful to a UX Engineer who needs to understand how to bring their designs to life. This course may help a UX Engineer build the technical background for their career.
Software Developer
A Software Developer designs, develops and tests software applications. This course is beneficial to a Software Developer because it teaches how to create custom user interfaces using Flutter. A Software Developer will need to understand concepts like matrix transforms, TickerProvider, and layout widgets such as Stack, LayoutBuilder, and AspectRatio. The practical nature of the course, which involves building a stopwatch application, can aid a Software Developer in learning how to apply theoretical concepts in real-world scenarios. The course may help a Software Developer acquire new, useful programming skills.
Interaction Designer
An Interaction Designer focuses on the user's experience with a product, paying special attention to how users interact with its interface. A foundation in UI development, such as that provided by this course, is useful to an Interaction Designer. This course provides hands-on experience creating a user interface that would benefit an Interaction Designer in understanding the principles in application development. The course covers skills such as using matrix transforms and layout widgets. The course may be helpful to an Interaction Designer who wants to understand the technical constraints of user interfaces.
Software Engineer
A Software Engineer is a computer professional who designs, develops, and maintains software systems. This course may be helpful for a Software Engineer because it teaches how to build user interfaces using the Flutter framework. This includes learning how to create custom layouts, use matrix transforms for animations, and optimize application performance. Although a Software Engineer may work on many parts of an application, the specific skills taught in the course, such as using Tickers and managing state, are beneficial for anyone creating a user interface. This course may help a Software Engineer become more proficient in building high-performing, user-friendly mobile applications.
Applications Engineer
An Applications Engineer specializes in applying engineering principles to develop applications and solve problems. This course may be helpful to an Applications Engineer due to its focus on creating custom user interfaces with Flutter. This course covers the use of matrix transforms, layout widgets, and Tickers. By working through the material, an Applications Engineer can gain expertise in mobile application development. The course also covers performance optimization. These skills may allow an Applications Engineer to create efficient and user-friendly applications. This course can help provide a more complete skill set.
Creative Technologist
A Creative Technologist bridges the gap between creative ideas and technical implementation, often working on innovative projects. This course may be useful to a Creative Technologist who wants to explore the creative possibilities of user interface design in Flutter. The course covers techniques such as using matrix transforms, layout widgets, and animations. The project-based nature of the course, focused on building a complete stopwatch application, provides a practical understanding of these topics. A Creative Technologist may use this knowledge in their approach to developing novel digital experiences.
Product Developer
A Product Developer is involved in the entire lifecycle of a product, from conception to launch. This course can be beneficial to a Product Developer who needs a basic understanding of how user interfaces are made. The course explores topics such as matrix transforms and layout widgets. The course's approach of building a full application may be useful to a Product Developer who needs to understand development tools and processes. This course may help a Product Developer to make more informed decisions about the technical aspects of their products.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Build a Flutter Stopwatch App with Custom UI and Animations.
Focuses on practical, real-world Flutter development techniques. It covers topics such as state management, UI design, and performance optimization. It is especially useful for understanding how to build robust and scalable Flutter applications. This book provides valuable insights into best practices and common pitfalls to avoid.
Serves as a comprehensive guide to Flutter development, covering a wide range of topics from basic widgets to advanced animations. It provides a solid foundation for understanding the concepts used in the course. It is particularly helpful for those who are new to Flutter or want a refresher on the fundamentals. This book can be used as a reference throughout the course and beyond.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser