강의

멘토링

커뮤니티

BEST
Programming

/

Mobile Application Development

Flutter Advanced - Production-Level Architecture

Practical course building an app from start to finish, at a level used in actual services. Learn scalable and easy-to-maintain app development methods by applying Clean Architecture and MVVM patterns.

(4.7) 36 reviews

290 learners

  • survivalcoding
플러터
Flutter
clean-architecture
MVVM
state-management

Reviews from Early Learners

What you will gain after the course

  • How to Apply Clean Architecture and MVVM Pattern in Real Projects

  • How to Design and Implement Reusable Complex UI Components

  • How to effectively handle state management and routing

  • Real Service Level Error Handling

Modern app architecture chosen by big tech companies
Clean Architecture & MVVM Pattern

Developing Real-World Flutter Apps:
App Architecture for Scalable App Design 🏗


Why does code become harder to maintain as apps grow? 🤔

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

In this course, we will implement a real-world service-level app using Flutter and Clean Architecture. We will cover in-depth topics that you will encounter in practice, such as Dependency Injection, hierarchical state management, writing testable code, and error handling.
If you're tired of Hello World level tutorials, this course will give you the fun of real architecture design while creating a production ready app! 💪

Features of this course

📌 Presenting problems and solutions that occur in real production environments

📌 Step-by-step source code provided via GitHub

📌 All code is written in a way that allows unit testing and UI testing.

📌 This course is for intermediate and advanced level learners.

1⃣ Guide to building a production-level app from Figma

This lecture will explain in detail the process of developing an app when receiving a design from Figma.


2⃣ Folder structure of the app written in the lecture

The structure of the app written in class.
MVVM, MVI patterns based on clean architecture


3⃣ Not using state management library

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 minimum libraries as follows:


4⃣ Testable UI Design

Create a UI that is not affected by any external factors


5⃣ Deep link friendly router configuration

Guide to configuring a deep link-friendly router that is essential for the workplace


6⃣ Error handling strategies for more complex error handling

Improves the existing Result pattern to provide an appropriate error handling method for complex situations


I recommend this to people who have these concerns.

The code is getting more and more complicated
It's difficult to manage

Used in practice
I want to learn architecture

Easy to test and maintain
I want to create an app

"I can make widgets, but as the size grows, the code becomes spaghetti..."

"I don't know how to apply Clean Architecture and MVVM in practice"

“I want to refactor my code, but I don’t know where to start.”

"I don't know how to manage the status"

"I need practical knowledge that I can apply immediately at work."

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

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

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

"I'm worried that it's okay to leave it like this because it seems like technical debt is piling up."


After taking the class, you will be like this


1. Systematic app design becomes possible

  • You can clearly distinguish and design each layer of Clean Architecture.

  • When you need to add new features, you can extend it without touching the existing code.

  • It allows you to naturally apply SOLID principles to real projects.

2. You can implement professional status management.

  • You will learn efficient state management methods without using external libraries.

  • Even complex business logic can be handled cleanly.

  • Clean state management without memory leaks is possible.

3. You can write testable code.

  • You can write code that can be used 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 practice.

// 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 reusable code }

5. Complete a project that can be used as a portfolio.

  • You can use high-quality apps with actual service levels as your portfolio.


  • You can gain real-world project experience applying clean architecture.

Learn about these things.


Clean Architecture: Layer separation and dependency injection

"An app without architecture is like a toy without Legos." Learn how to cleanly separate business logic from UI, and write flexible, testable code with dependency injection.

MVVM Pattern: State Management and Unidirectional Data Flow

"State management is the heart of your app." Learn how to create predictable, easy-to-debug apps with efficient state management and unidirectional data flow design.

Error Handling: Improving User Experience

“Errors are inevitable, but they can be managed.” Covers how to systematically handle network errors, data validation, and exceptions, and provide appropriate feedback to users.

Reusable Components: UI Design and Implementation

"A good component is built once and used forever." Learn how to design and implement reusable UI components, construct efficient widget trees, and optimize performance.

Who created this course

  • 2018: Android Writing Until It Happens

  • 2018: Written by Oh Jun-seok's Android Survival Coding: Kotlin Edition

  • 2020: Korea's first Flutter book: Oh Jun-seok's Flutter Survival Coding (Selected by Sejong Books in 2020)

  • 2020 ~ 2024: 9 batches of Flutter developer training


Things to note before taking the class

Practice environment

  • The lecture was filmed using macOS, Flutter 3.24, and Dart 3.5.4.

  • I use Android Studio.

  • This explanation is based on the Android emulator.


Player Knowledge and Notes

  • It would be helpful if you have seen "Flutter Intermediate - Clean Architecture" or have equivalent knowledge.


  • This is good for intermediate Flutter learners.

Roadmap

flutter_loadmap

Recommended for
these people

Who is this course right for?

  • Developer wanting to build real services with Flutter

  • Developer who wants to apply Clean Architecture and MVVM pattern in practice

  • People who want to learn how to develop apps considering UI/UX

  • Those interested in reusable component design

Need to know before starting?

  • Basic Dart Language Grammar

  • Understanding Flutter's Basic Widgets and Layout

  • Object-Oriented Programming Basic Concepts

Hello
This is

12,130

Learners

871

Reviews

862

Answers

4.7

Rating

15

Courses

교육하고 책 쓰는 개발자 오준석입니다.
'오준석의 생존코딩' 유튜브 채널과 생존코딩 (https://survivalcoding.com) 교육 플래폼을 운영중입니다.

전문 분야 : Android, Flutter

저서
오준석의 플러터 생존코딩 (한빛미디어 2020)
오준석의 안드로이드 생존코딩: 코틀린 편 (한빛미디어 2018)
될 때까지 안드로이드 (루비페이퍼 2018)

주요경력
오렌지(OhRange) 대표
세민직업전문학교 정보기술개발 직업훈련교사
수원스마트앱개발학원 운영
LG전자 MC사업부
일본 아이치현 (株)東海理科 Security사업부
일본 아이치현 (株)日本テクシード IT사업부

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

Curriculum

All

54 lectures ∙ (13hr 57min)

Published: 
Last updated: 

Reviews

All

36 reviews

4.7

36 reviews

  • 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!

    • 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!

        • 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 19

            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.

            Limited time deal ends in 8 days

            $84,700.00

            30%

            $93.50

            survivalcoding's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!