Advanced Flutter - Industry-Level Architecture

A practical course where you build a production-level app from scratch. Learn how to develop scalable and maintainable apps by applying Clean Architecture and the MVVM pattern.

(4.7) 38 reviews

302 learners

Level Intermediate

Course period Unlimited

Flutter
Flutter
clean-architecture
clean-architecture
MVVM
MVVM
state-management
state-management
Flutter
Flutter
clean-architecture
clean-architecture
MVVM
MVVM
state-management
state-management

Reviews from Early Learners

Reviews from Early Learners

4.7

5.0

john snake

100% enrolled

Thanks to Junseok Oh, I started working at Flutter 5 months ago after joining the company last year. Usually, people start out by looking at Dart's easy grammar and fancy app UI, but when the project gets complicated, many people give up quickly because they don't know how to manage it. I was one of them 😭 This lecture is a very valuable lecture that teaches you how to efficiently manage Flutter projects. It doesn't teach you tricks, but the most important things. It's the most fundamental lecture among Flutter lectures. I recommend this lecture to other beginners and professionals so that they don't give up and survive in the industry!

5.0

Nostia

73% enrolled

Thank you for the great lecture. In addition, I wish there was a test code and an example of actual application like the previous lectures, but I will try to make up for it by doing it myself. I am always looking forward to it. I would appreciate it if you could come back soon with a better lecture next time ^^!!

5.0

Aiden Lee

100% enrolled

I had to deal with a project implemented with Flutter urgently, so I quickly skimmed the basics based on the official documents and took this course. I applied a new architecture by referring to the contents learned in the course and improved a lot of existing highly coupled code. Thanks to that, I was able to start with a lot of code cleanup and it is still very helpful. If I have to point out something that was lacking, since it is an intermediate to advanced course, it would have been great if I could have experienced writing test code along with more diverse implementation examples instead of just showing the simple UI implementation. However, this impression may be due to the fact that I have not taken other courses by the instructor that are composed of various topics. Above all, I think it is a useful course for learning practical Flutter experience while considering a good architecture, as the title suggests. Thank you for the great course!

What you will gain after the course

  • How to apply Clean Architecture and the MVVM pattern to a real-world project

  • How to design and implement complex UI components for reusability

  • How to effectively handle state management and routing

  • Error handling methods for production-level services

Modern App Architecture Chosen by Big Tech Companies
Clean Architecture & MVVM Pattern

Practical Flutter App Development:
App Architecture for Scalable App Design 🏗


Why is the code becoming increasingly difficult to manage as the app grows? 🤔

The answer lies in Clean Architecture and the MVVM pattern. This architecture, adopted by big tech companies, is a core design method that allows for the systematic management of complex business logic and the easy addition of new features.

In this course, we will implement a production-level app using Flutter and Clean Architecture. We cover in-depth topics encountered in practice, such as Dependency Injection, layered state management, writing testable code, and error handling.
If you are tired of Hello World-level tutorials, experience the true joy of architectural design by building a production-ready app in this course! 💪

Features of this course

📌 Presenting real-world production environment problems and their solutions

📌 Step-by-step source code provided via GitHub

📌 All code has been written in a format that allows for unit testing and UI testing.

📌 This course is for intermediate levels and above.

1⃣ A guide to building professional-level apps starting from Figma

This course provides a detailed guide on the process of developing an app starting from a Figma design.


2⃣ Folder structure of the app created in the lecture

The structure of the app created in the lecture.
MVVM and MVI patterns based on Clean Architecture


3⃣ No state management libraries used

Many developers use state management libraries out of a sense of obligation, but there is no need to do so. The basic features provided by Flutter are sufficient for state management.
In this course, we will use only the following minimal libraries.


4⃣ Designing testable UI

Writing UI that is not affected by any external factors


5⃣ Deep link-friendly router configuration

Guide on how to configure a deep link-friendly router, which is essential in the industry.


6⃣ Error handling strategies for more complex error processing

Presenting an improved error handling method suitable for complex situations by refining the existing Result pattern.


I recommend this to those who have these concerns

The code is becoming increasingly complex,
making it difficult to manage

I want to learn the architecture
used in actual practice

I want to create an app that is easy to test and maintain

"I can build widgets, but as the scale grows, the code keeps turning into spaghetti..."

"I don't know how to actually apply Clean Architecture and MVVM."

"I want to refactor my code, but I don't know where to start."

"I don't know how to handle state management"

"I need practical knowledge that I can use at work right away."

"I don't know how to write testable code"

"Every time I add a new feature, I have to modify a lot of existing code."

"I studied design patterns, but it's difficult to apply them to actual projects."

"I'm worried that technical debt is piling up and I'm not sure if it's okay to leave it like this."


This is how you will change after the course


1. Systematic app design becomes possible

  • You will be able to clearly distinguish and design each layer of Clean Architecture.

  • When new features need to be added, you will be able to extend them without touching the existing code.

  • You will be able to naturally apply SOLID principles to real-world projects.

2. You can implement professional state management

  • You will master efficient state management methods without relying on external libraries.

  • You can handle even complex business logic cleanly.

  • Clean state management without memory leaks becomes possible.

3. You can write testable code

  • You can write code that allows for everything from unit tests to UI tests.


  • You can continuously monitor and improve code quality.

4. You can write code that is recognized in the professional field

// Before class HomeScreen extends StatefulWidget { @override State<HomeScreen> createState() => _HomeScreenState(); } // After class HomeScreen extends StatelessWidget { final HomeState state; final void Function(HomeAction action) onAction; // Write testable and highly reusable code }

5. You will complete a project that can be used as a portfolio

  • You can use a high-quality, production-level app as your portfolio.


  • You can gain hands-on experience with real-world projects applying Clean Architecture.

Here is what you will learn.


Clean Architecture: Layer Separation and Dependency Injection

"An app without architecture is like a toy without Legos." You will learn how to cleanly separate business logic from the UI and write flexible, testable code through dependency injection.

MVVM Pattern: State Management and Unidirectional Data Flow

"State management is the heart of an app." Learn how to create predictable and easy-to-debug apps by designing efficient state management and unidirectional data flow.

Error Handling: Improving User Experience

"Errors are unavoidable, but they can be managed." This covers how to systematically handle network errors, data validation, and exceptional situations while providing appropriate feedback to users.

Reusable Components: UI Design and Implementation

"A good component is made once and used for a lifetime." Learn how to design and implement reusable UI components, efficient widget tree construction, and performance optimization techniques.

The person who created this course

  • 2018 : Wrote "Android Until It Works"

  • 2018 : Authored Oh Joon-seok's Android Survival Coding: Kotlin Edition

  • 2020 : Authored the first Flutter book in Korea: Oh Jun-seok's Flutter Survival Coding (Selected as a 2020 Sejong Book)

  • 2020 ~ 2024 : Operated 9 cohorts of Flutter developer training


Notes before taking the course

Practice Environment

  • The lectures were recorded based on macOS, Flutter 3.24, and Dart 3.5.4.

  • Android Studio is used.

  • The explanation is based on the Android emulator.


Prerequisite Knowledge and Precautions

  • It is recommended that you have watched "Flutter Intermediate - Clean Architecture" or possess equivalent knowledge.


  • It is recommended for intermediate Flutter users.

Roadmap

flutter_loadmap

Recommended for
these people

Who is this course right for?

  • Developers who want to develop actual services using Flutter

  • Developers who want to apply Clean Architecture and the MVVM pattern in practice

  • Those who want to learn how to develop apps with UI/UX in mind

  • Those interested in designing reusable components

Need to know before starting?

  • Dart Language Basic Syntax

  • Understanding Flutter Basic Widgets and Layouts

  • Basic Concepts of Object-Oriented Programming

Hello
This is survivalcoding

12,452

Learners

900

Reviews

865

Answers

4.7

Rating

15

Courses

I am Junseok Oh, a developer who teaches and writes books.
I run the 'Junseok Oh's Survival Coding' YouTube channel and the Survival Coding (https://survivalcoding.com) educational platform.

Specialties: Android, Flutter

Books
Oh Jun-seok's Flutter Survival Coding (Hanbit Media 2020)
Oh Jun-seok's Android Survival Coding: Kotlin Edition (Hanbit Media 2018)
Android Until It Works (Ruby Paper 2018)

Key Experience
CEO of OhRange
IT Development Vocational Training Instructor at Semin Vocational Training School
Director of Suwon Smart App Development Academy
LG Electronics MC Division
Security Division, Tokai Rika Co., Ltd., Aichi Prefecture, Japan
IT Division, Nihon Techseed Co., Ltd., Aichi Prefecture, Japan

LinkedIn: https://www.linkedin.com/in/junsuk5/

More

Curriculum

All

54 lectures ∙ (13hr 57min)

Published: 
Last updated: 

Reviews

All

38 reviews

4.7

38 reviews

  • iamlimyeonju2930님의 프로필 이미지
    iamlimyeonju2930

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    It was really helpful! I was glad that you explained how to make an app using Figma, which I didn't know when I was developing it alone. The way to divide folder structures and implement deep links were also really good. Thank you for the great lecture!!

    • songjin39148713님의 프로필 이미지
      songjin39148713

      Reviews 20

      Average Rating 5.0

      Edited

      5

      100% enrolled

      First, let's summarize why I think this lecture is good: 1. It was good to learn how to make an app based on the Figma design standard. 2. It was good to learn how to make custom widgets and how to implement deep links. 3. It was good to be able to quickly review the overall structure. Personally, when I heard about collaboration through Figma, mentioned in number 1, I was curious about the process of actually implementing the design in code, and I think that was the best part. Finally, I would like to thank the teacher for the good lecture.

      • emptynet님의 프로필 이미지
        emptynet

        Reviews 2

        Average Rating 5.0

        5

        73% enrolled

        Thank you for the great lecture. In addition, I wish there was a test code and an example of actual application like the previous lectures, but I will try to make up for it by doing it myself. I am always looking forward to it. I would appreciate it if you could come back soon with a better lecture next time ^^!!

        • rheech22님의 프로필 이미지
          rheech22

          Reviews 4

          Average Rating 5.0

          Edited

          5

          100% enrolled

          I had to deal with a project implemented with Flutter urgently, so I quickly skimmed the basics based on the official documents and took this course. I applied a new architecture by referring to the contents learned in the course and improved a lot of existing highly coupled code. Thanks to that, I was able to start with a lot of code cleanup and it is still very helpful. If I have to point out something that was lacking, since it is an intermediate to advanced course, it would have been great if I could have experienced writing test code along with more diverse implementation examples instead of just showing the simple UI implementation. However, this impression may be due to the fact that I have not taken other courses by the instructor that are composed of various topics. Above all, I think it is a useful course for learning practical Flutter experience while considering a good architecture, as the title suggests. Thank you for the great course!

          • mmmkb1님의 프로필 이미지
            mmmkb1

            Reviews 1

            Average Rating 5.0

            Edited

            5

            100% enrolled

            Thanks to Junseok Oh, I started working at Flutter 5 months ago after joining the company last year. Usually, people start out by looking at Dart's easy grammar and fancy app UI, but when the project gets complicated, many people give up quickly because they don't know how to manage it. I was one of them 😭 This lecture is a very valuable lecture that teaches you how to efficiently manage Flutter projects. It doesn't teach you tricks, but the most important things. It's the most fundamental lecture among Flutter lectures. I recommend this lecture to other beginners and professionals so that they don't give up and survive in the industry!

            survivalcoding's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!

            $93.50