O'Reilly logo
live online training icon Live Online training

Flutter First Steps

Building iOS and Android apps and websites with a single codebase

Topic: Web & Mobile
Rap Payne

Flutter is the framework that finally puts developing apps in the reach of mere mortals, whether your app is aimed at iOS devices, Android devices, or even a website. And when you write the code for any one of those platforms, it runs—natively—in all three.

Join expert Rap Payne to build the key skills you need to begin writing apps in Flutter. By the time you’re through, you’ll be able to create your own Flutter app that takes input from the user, lays out nicely on any screen, and presents information in a way that’s beautiful and fast.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand: - The problems Flutter solves - Flutter’s strengths and weaknesses relative to other options - The architecture of a Flutter app - How and why Flutter uses widgets and composition - The Dart language: How it’s similar to other languages and how it’s different - Foundational widgets like MaterialApp, Scaffold, Text, Icon, TextField, the button family, and more

And you’ll be able to: - Create a new Flutter app - Write your own widgets, whether stateless or stateful - Manage state within a widget - Create gorgeous user interfaces that run on iOS, Android, and the web - Handle basic stack navigation to move between screens

This training course is for you because...

  • You’re an experienced developer who wants to create apps and websites.
  • You’re a manager or architect who wants to evaluate a new tool for your team.


  • A working knowledge of object-oriented development

Recommended preparation: - A machine with the Flutter developer tools installed (The installation can be time-consuming because there are so many different combinations of operating systems, hardware, and other tools; please follow these step-by-step instructions before the course.) - Read chapters 1–4 in Beginning App Development with Flutter: Create Cross-Platform Mobile Apps (book)

Recommended follow-up: - Finish Beginning App Development with Flutter: Create Cross-Platform Mobile Apps (book) - Watch Learn Flutter and Dart to Build iOS and Android Apps (video) - Read “Introduction to Dart” and “The Flutter User Interface - Everything Is a Widget” (sections 1 and 2 in Flutter for Beginners)

About your instructor

  • Rap Payne is a consultant, trainer, author, and entrepreneur who has written apps, mentored developers, and taught software development classes for Fortune 500 companies like Boeing, Walmart, Coca-Cola, Wells Fargo, Honda, CVS, GE, Chase, HP, Lockheed, Lowe's, Nike, JCPenney, USAA, and Walgreens and government agencies like the NSA, the US Air Force, Navy, and Army, NASA, Britain's GCHQ, Canada's postal service, and several provincial governments, to name a few. He’s focused on mobile development since he started mobile app development company Agile Gadgets in 2003. As a professional mentor and trainer, Rap has developed a talent for communicating highly complex ideas in easy-to-understand ways. And as a real-world developer, he understands the need to teach these topics using practical and realistic examples and exercises.


The timeframes are only estimates and may vary according to how the class is progressing

Overview of Flutter (25 minutes) - Presentation: Why use Flutter?; Which of your problems will it solve?; other options compared with Flutter; Which is best for you? - Group discussion: How will you use Flutter after the course?; If you have experience with the alternatives, what would you tell someone who wanted to use that technology?; What were some of the pain points that caused you to be open to Flutter? - Q&A

Overview of the Dart language (30 minutes) - Presentation: What Dart looks like; viewing Dart as an experienced developer—the basics; unexpected things about Dart; how it’s different from other languages - Q&A

Break (5 minutes)

Creating a Flutter project (45 minutes) - Presentation: Steps to create a new Flutter project; a tour through the files in a project; What’s there and why?; a tour through the code itself (MaterialApp, Scaffolds, etc.); the dartpad.dev REPL for prototyping and sharing Flutter apps - Demonstration: Creating a project - Group discussion: How might Flutter integrate with your existing projects?; What are your first impressions of the Flutter code? - Hands-on exercises: Create a new project called task_app; fill out the body; run your app - Q&A

Break (5 minutes)

Stateless and stateful widgets (40 minutes) - Presentation: Everything is widgets!; composition with stateless widgets; stateful widgets; how to manage state in your widgets - Group discussion: What are the advantages of composition versus object-oriented development? - Hands-on exercises: Create all the widgets needed for the task_app; look at each one in your app - Q&A

Value widgets and forms (40 minutes) - Presentation: Text and icon widgets; the button family; the TextField widget; the other form widgets - Group discussion: When would each button be most appropriate? - Demonstration: Building a TextField widget; creating each form widget - Hands-on exercises: Fill out your to-do/task custom widget with a description; add a floatingActionButton with an icon; add some labels; add a TextField for a new widgets - Q&A

Break (5 minutes)

Putting it all together in an app (45 minutes) - Presentation: Casting the vision for the app project; a high-level intro to stack navigation; introducing a ListView Widget; state management within widgets - Group discussion: What blockages or troubles do you foresee?; How could you mitigate them? - Hands-on exercises: Navigate between your two widgets; use the ListView to present all of your to-dos; allow the user to tap to “complete” a to-do/task - Q&A