강의

멘토링

로드맵

Inflearn brand logo image
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) 30 reviews

265 learners

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

Reviews from Early Learners

What you will learn!

  • 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

11,684

Learners

820

Reviews

856

Answers

4.7

Rating

14

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

30 reviews

4.7

30 reviews

  • john snake님의 프로필 이미지
    john snake

    Reviews 1

    Average Rating 5.0

    Edited

    5

    100% enrolled

    오준석 선생님 덕분에 작년에 입사하여 이제 일 한지 5개월차 된 플러터 현직자입니다. 보통 다트의 쉬운 문법과 화려한 앱 ui를 보고 입문하는데 프로젝트가 복잡해지면 어떻게 관리해야할지 몰라 금방 포기하는 분들이 많습니다. 저도 그 중 한명이었습니다ㅠ 이 강의는 플러터 프로젝트를 어떻게 효율적으로 관리할 수 있는지, 그 방법을 알려주는 너무나 소중한 강의입니다. 잔기술이 아니라 가장 중요한 것을 알려주십니다. 플러터 강의 중에서는 가장 근본에 가까운 강의입니다. 다른 입문자, 현직자 분들도 돌아가지 말고, 포기하지 말고, 끝까지 현업에서 생존하기를 바라며 이 강의를 추천합니다!

    • Nostia님의 프로필 이미지
      Nostia

      Reviews 1

      Average Rating 5.0

      5

      73% enrolled

      항상 좋은 강의 감사합니다. 추가로 이전 강의들처럼 테스트 코드를 작성하고, 실제 적용되는 예제까지 있었으면 더 좋았을 것 같다는 아쉬움이 조금 남지만 직접해보것으로 아쉬움을 달래보겠습니다. 늘 기다리고 있습니다. 다음에 더 좋은 강의로 얼른 찾아와주시면 감사하겠습니다 ^^!!

      • Aiden Lee님의 프로필 이미지
        Aiden Lee

        Reviews 3

        Average Rating 5.0

        Edited

        5

        100% enrolled

        플러터로 구현된 어떤 프로젝트를 급하게 다뤄야 하는 상황에 놓여서 공식문서 위주로 기초를 빠르게 훑고 이 강의를 들었습니다. 강의에서 배운 내용을 참고하여 새로운 아키텍처를 적용하면서 결합도 높은 기존의 코드를 많이 개선했어요. 덕분에 코드를 많이 정리하면서 시작할 수 있었고 지금도 큰 도움이 되고 있습니다. 굳이 아쉬웠던 점을 남기면, 중고급 강의인 만큼 단순 UI 구현을 그대로 보여주는 것 대신 좀더 다양한 구현 사례와 함께 테스트 코드 작성도 경험할 수 있었다면 더할 나위 없이 좋았을 것 같아요. 하지만 이 소감은 다양한 주제로 구성된 강사님의 다른 강의를 들어본 적이 없기 때문에 느꼈던 것일 수도 있습니다. 무엇보다 제목 그대로 좋은 아키텍처를 고민하며 플러터 실전 경험을 익히는데는 유용한 강의라고 생각합니다. 좋은 강의 감사합니다 !

        • 두두님의 프로필 이미지
          두두

          Reviews 5

          Average Rating 5.0

          5

          100% enrolled

          정말 도움이 많이 됐습니다! 혼자 개발만 하면서는 몰랐던 피그마를 이용해서 어플을 만드는지 잘 알려줘서 좋았습니다. 폴더 구조를 나누는 법, 딥링크 구현에 관한것도 정말 좋았고요. 좋은 강의 감사합니다!!

          • 송진섭님의 프로필 이미지
            송진섭

            Reviews 19

            Average Rating 5.0

            Edited

            5

            100% enrolled

            우선 해당 강의에 대해서 좋다고 생각하는 이유를 정리해 보자면 1. 피그마 디자인 기준으로 어떻게 어플을 만드는지에 대해서 배울 수 있어서 좋았습니다 2. 커스텀 위젯을 어떻게 만들지 딥링크를 어떻게 구현 하는지 관해서 배울 수 있어서 좋았습니다. 3. 전체적으로 구조를 어떻게 잡는지에 대해서 빠르게 복습 가능해서 좋았습니다. 개인적으로 1번에서도 언급한 피그마를 통한 협업을 한다고 이야기 들었을때 어떻게 디자인을 실제로 코드로 구현하는지에 대한 과정이 궁금했는데 그걸 해소했던 점이 제일 좋았던것같습니다. 마지막으로 좋은 강의 해주신 선생님께 감사드립니다.

            $93.50

            survivalcoding's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!