강의

멘토링

로드맵

BEST
Programming

/

Mobile Application Development

[Code Factory] [Intermediate] Flutter Real Practice! State Management, Cache Management, Code Generation, GoRouter, Authentication Logic, etc. Essential Skills to Become an Intermediate!

This course will help junior Flutter developers learn the essential knowledge needed to become intermediate Flutter developers in a short period of time.

(4.9) 168 reviews

2,973 learners

  • codefactory
Flutter
Hybrid App

Reviews from Early Learners

What you will learn!

  • Flutter

  • Riverpod status management

  • Pagination

  • JWT token management and authentication

  • Optimistic Response

  • JsonSerializable

  • GoRouter

  • Retrofit

  • Dio token management automation

  • OOP in practice

  • Debounce and Throttle

Want to upgrade to an intermediate Flutter developer?
Code Factory's practical lectures you can trust 🖥

A lecture taught directly by the author of Kyobo Bookstore's first half of 2023 best-selling book.

The only app development book ranked in the top 30 in the computer/IT category.

Achieve Super Rookie status in 2022 with just Flutter!

Even large corporations seek out these courses! We guarantee the best lectures, backed by reviews!

🙋‍♂️ Things to note before taking the class


  • This course isn't designed simply to create a "delivery app"! It's not a simple clone coding course, so it might not be suitable for those simply looking to learn how to build a delivery app. The delivery app concept is merely a vehicle for the programming knowledge I'm trying to convey. It contains essential knowledge that can be applied to any app, so please refer to it!
  • This course is significantly more challenging than Code Factory's beginner Flutter course! It contains essential knowledge for practical use, so please take it with the mindset of thoroughly mastering it through repeated repetition. I'm confident that once you fully absorb the material, you'll become a developer ready to start working in the field immediately!
  • This project provides a NestJS-based REST API server, developed by me, to help you gain hands-on experience with real-world server integration. You'll learn essential knowledge for junior developers by implementing API integrations in a real-world setting, using the Swagger server documentation.

What you'll learn 📚


1) Authentication (authentication logic)

Among the most commonly used Token Authentication systems today, we'll study systems that use Refresh Tokens and Access Tokens for authentication. We'll also learn how to automatically refresh tokens using Dio.


2) Pagination

After learning the theories of Page-based Pagination and Cursor-based Pagination, we will delve deeper into how to efficiently solve Cursor Pagination using OOP.


3) JsonSerializable

JsonSerializable eliminates the need to write code to serialize JSON into objects when creating models. Learn the basics of JsonSerializable and how to apply inheritance in conjunction with pagination.


4) Retrofit

Retrofit is one of Flutter's most useful code generation tools. It automates REST API mapping and works seamlessly with JsonSerializable. All API mapping is done using Retrofit.


5) Riverpod and Cache Management

You'll learn how to use all the providers available in Riverpod and apply them in real-world situations. Additionally, you'll learn how to manage multiple providers simultaneously and optimize cache management.

6) GoRouter

GoRouter, a routing library used in apps and web applications, provides useful features like Dynamic Links, Deep Links, Redirects, and Refresh rules. Let's use this to fully configure an authentication system.


7) Debounce and Throttle

Debounce and Throttle are crucial technologies for managing server overload and optimizing applications. In this lecture, we'll learn about the appropriate use cases and usage methods for Debounce and Throttle.


8) Swagger

Learn how to understand API specifications and translate them into front-end code using Swagger, the most widely used documentation tool for server developers to communicate with front-end developers.


9) Optimistic Response

Optimistic Response is a technique that predicts positive responses and proactively updates the cache. This lecture will teach you how to apply it in specific situations.


Introducing,
Project Screen! 🤸‍♀️

#1 Splash Screen

Set up the authentication/verification logic and routing logic required when running the app for the first time.

#2 Login page

This is the login screen.

#3 Restaurant List Page

This is the home screen that paginates restaurant information.
Learn about Pagination and Throttle and apply them in practice.

#4 Restaurant Details Page

You can select the food you want to order from the restaurant's details page, and if you scroll down, you can also see restaurant reviews.
You can check it out. Let's apply multiple Sliver Lists in practice using Custom Scroll View.

#5 Shopping Cart Page

This is the shopping cart screen where you can check the food you have selected.
Learn and apply the Optimistic Response and Debounce features.

#6 Food List Tab

This is a page where you can view a list of foods.
Learn about pagination generalization and advanced cache management features.

#7 Order List Wrap

Let's generalize Pagination into a tab where you can view orders.

#8 Profile tab

This is the profile tab with a logout function.


A word from the lecture 🎙

Since Flutter's release, I've personally worked on numerous projects, both large and small. Recently, during numerous interviews for recruitment and consulting purposes, I've noticed that many front-end developers focus too much on simply creating UIs. While creating a visually appealing UI is certainly one of the most crucial skills for a front-end developer, possessing a solid understanding of computer science, project management, and writing clean code is equally important.

This course will help Flutter developers with limited practical experience learn the considerations they need to consider when writing code to ensure smooth collaboration and maintainability . Unlike the Flutter beginner course, this course focuses on the essential knowledge and best practices for intermediate Flutter developers, centered around a single project. We deliberately introduce pitfalls throughout the project, allowing students to overcome them and experience firsthand how to write better code. The course focuses on developing junior-level Flutter developers to a practical level. We'll apply essential knowledge such as authentication systems, refreshes, access token management, global state management, pagination, debounce, and throttling to real-world projects.


I recommend this to these people 🖐

I've just gotten rid of the Flutter beginner tag.
Anyone who wants to level up their knowledge

I know a little bit about Flutter programming.
Those who feel overwhelmed when trying to start a project


We've collected course reviews 📜


Best communication 🧑🏼‍🏫

I connect with students through Q&A sessions on YouTube Live every week!

If you would like to receive YouTube live push notifications, please subscribe to the Code Factory YouTube channel below!

> Go to Code Factory YouTube channel


Code Factory Writing Books

Must Have Code Factory's Flutter Programming book is one I personally wrote after investing a lot of time in it!
There are some contents that overlap with the beginner's course, and there are also lectures on Firebase and advertising that are not in the beginner's course!
Recommended for those who like eBooks or physical books!
The book is available at major bookstores such as Kyobo Bookstore, Yes24, and Aladdin!
Please click on the image below to move!


Q&A 💬

Q. Do I have to take the Code Factory Flutter beginner course?

If you already have the knowledge equivalent to Code Factory's Flutter beginner course, you don't need to take any additional courses. However, this course assumes you've already taken the course, so it won't repeat concepts already covered. If you don't have at least the basic knowledge equivalent to Code Factory's Flutter beginner course, this course will be difficult to follow, so please take the beginner course first!

Q. Is this a course on creating a delivery app?

The project we're working on is a delivery app. However, this course has absolutely nothing to do with the UI/UX or functional flow of a delivery app. It merely uses the "concept" as a medium for conveying knowledge, and it focuses on acquiring the general knowledge that junior Flutter developers need to become intermediate Flutter developers. Don't take this course if you're simply looking for "how to build a delivery app"!

Q. What level of developer will I become after taking this course?

In short, I believe this is a practical, immediately applicable level. Based on my extensive experience with various projects and interviews over the years, I've included essential knowledge that I believe Flutter developers should possess.


Want more Code Factory lectures?

[Introduction] Dart Language
Complete conquest in 4 hours

  • Dart programming language
  • object-oriented programming
  • functional programming
  • Asynchronous programming

[Beginner] Flutter 3.0 App Development
- Escape the beginner level with 10 projects!

  • Master the Dart language
  • Creating Beautiful UIs with Flutter
  • SQLite Database Utilization Guide
  • Creating a video player app

[Intermediate] Flutter in Practice!
Essential Skills to Become a Master

  • GoRouter
  • JsonSerializable
  • Dio token management automation
  • Debounce and Throttle

Other ✔️

(1) Other channels where you can get help and learn!

🏭 Code Factory YouTube
🔥 Code Factory Discord
💬 Code Factory Kakao Open Talk

(2) Images shared for lecture purposes

The images I provide in this lecture are ones I purchased myself. I purchased the rights to create and distribute my works, but you must never distribute the images to others or on the internet! Copyright infringement can lead to legal issues, so please do not use these images for any purpose other than your study.

(3) How to ask questions

One of the most effective ways to improve your programming skills quickly is to learn how to ask the right questions. Because of the nature of programming, it's difficult to review entire code snippets. So, if you upload the entire code for a problematic widget and then say, "This doesn't work!", I won't be able to provide an answer.
When asking a question, please organize it into the three steps below so that we can communicate and respond much faster!

1️⃣ How do I think it should work?
2️⃣ How it works now
3️⃣ Where exactly is the code and what problems are occurring (if there are even examples👏)

Recommended for
these people

Who is this course right for?

  • Those who are confident that they can repeatedly take and absorb difficult concepts

  • Anyone who wants to upgrade their flutter development skills

  • Anyone who has completely absorbed the Code Factory Flutter beginner course

  • For those who want to experience practical projects

  • Junior developer without senior engineer in the company

Need to know before starting?

  • Flutter Junior Developer Level Knowledge

Hello
This is

28,336

Learners

1,538

Reviews

1,897

Answers

5.0

Rating

6

Courses

안녕하세요 프로그래밍 강사 코드팩토리입니다!

코드팩토리 통합 링크
https://links.codefactory.ai

 

🏭 코드팩토리 유튜브 바로가기
🔥 코드팩토리 Discord 바로가기
💬 코드팩토리 카카오 오픈톡 바로가기

 

💼 주식회사 코드팩토리 대표

 

🏆 2023년 인프런 베스트셀러 수상

🏆 <<Must Have 코드팩토리의 플러터 프로그래밍>> 서적 2023 상반기 교보문고 컴퓨터/IT 부문 베스트셀러 23위

🏆 AWS Certified Developer Associate

🏆 AWS Certified Solutions Architect

Curriculum

All

147 lectures ∙ (21hr 6min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

168 reviews

4.9

168 reviews

  • KJ MOON님의 프로필 이미지
    KJ MOON

    Reviews 1

    Average Rating 3.0

    3

    98% enrolled

    플러터 좋은 강의 감사합니다~ 강의 들으면서 아쉬운 점이 많아서 길게 적었습니다. 요약 - 플러터로 앱을 만드는 강의로써는 훌륭하나, 플러터를 이해하는 데는 글쌔? ------------------------------------------------------ 전체 수강 평 flutter 코드를 짜시는 속도를 보니 관련된 작업을 많이 하신 것 같은데, 그에 비해 전체적인 프로젝트 설계 능력이나 경험, IT 지식 등이 다소 부족한 느낌이었습니다. 물론 취준생분들이나 학생 분들이 듣기에는 충분하다고 생각하나, 어느정도 경력이 있는 개발자가 듣기에는 중간중간 개념설명이 잘못된 부분이나 프로젝트를 왜 이렇게 구성했지? 라는 생각이 많이 들었습니다. 강의 들으면서 처음에는 질문하기를 통해 글을 남겼는데, 이거 계속 쓰면 강의 진도가 안 나갈 것 같아서 따로 메모하면서 그냥 강의를 넘겼네요. 일단 적은 거는 아래와 같습니다. - 인증 과정 설명 중 token이나 session에 대한 이론 설명 부족 -> 이건 질문에 남김 - 프로젝트 구조를 가져가는 데 있어 자세한 설명 부족. 플러터에서 어떤 패턴들을 사용하는지 얘기를 좀 듣고 싶었는데 설명없이 repository 만들고 provider 만들고~ - 제공된 서버 API의 response 형식 안 맞음. 페이징을 하던 안하던 응답 모델이 동일해야 개발하기 편한데 페이징 있는 건 data로 한번 감싸서 내려주고, 아닌 건 그냥 쌩으로 내려주니, 이건 클라에서도 공통으로 관리할 수가 없어서 너모 불편한데,, - Dio 인터셉터 만들 때 '그냥 rule이에요~'라고 하면서 따라 하면 된다는 식의 설명, 전체적으로 네트워크 쪽이 설명이 미흡 - 중간중간 "oop를 아신다면 ,,"이라고 설명을 스킵하는 부분이 있는데, oop에 대한 개념이 아님에도 말하는 부분이 있음 - 네이밍이 전체적으로 안 맞음. 같은 이미지 URL필드도 imgUrl, imageUrl 두개 쓰임, user_model은 userModel로 camel로 사용하지만 username은 왜 userName으로 안 쓰는지 모르겠음 - 강의 후반으로 갈수록 같은 말을 반복하는 구간이 늘어남. 영상 편집 때문인 것 같은데 같은말 반복하는 구간도 있고.. 보는데 불편 - gorouter 챕터 이후 갑자기 UerMeRepository로 넘어감. 이전 강의에서 UserModel은 안만들었는데 생김. 강의가 빠진것 같음 ... 위와 같은 내용들 때문에 사실 강의를 듣는다기 보다는, 강의 처음 시작할때 무엇을 해볼까요~ 하면 강의 멈추고 직접 구현하고 비교하는 방식으로 강의를 봤는데요, 실제로 github이나 stackoverflow 등에서 본 레퍼런스 코드들이 훨신 깔끔하고 구조가 좋은 느낌이었습니다.(+ 집필한 책도 구매해서 보았는데, 뭔가 큰 회사의 프로젝트를 경험한적이 없다는 느낌이 드네요.) 강의를 들으면서 수강평은 안남기는 편인데, 강의 도중에 이런 말을 너무 많이 해서 글을 쓰게 됬습니다. "이건 프로젝트, 팀, 사람마다 다르기 때문에 이 코드와 다르게 짤수도 있어요" "이건 이렇게 할수 있지 않나요? 라고 하시면 저는 할말이 없습니다." 등등 태클에 대해 방어적인 말들을 많이하시는데, 강의를 듣는 입장에서는 오히려 부정적으로 들립니다. 다양한 프로젝트 경험이 있다면 다양한 예를 설명하면서 이런방법 저런방법이 있다라고 설명할 수 있을 것 같은데, 그러지 못해서 이런 말을 하는것처럼 보이거든요. 차라리 언급은 안하셨다면 더 좋았을 것 같네요. 그리고 "돈주고 파는 강의이기 때문에 다 알려드립니다"라는 말도 많이 하시는데, 설명이 너무 빈약합니다. 강의 들으면서 내부 코드 까보는데 더 시간 오래걸린것 같네요. 제가 생각하기에 '중급'이라면 내부적으로 코드가 어떻게 돌아가는지까지 설명받길 기대하는데, 안이 어떻게 돌아가는지 모르고 그냥 있는거 가져다 쓰는 강의였습니다. 추후 강의에서는 다양한 프로젝트에 대한 예시나 내부 로직등에 대한 설명도 추가되었으면 좋겠습니다.

    • 코드팩토리
      Instructor

      안녕하세요! 아쉽게 느끼셨던 부분들을 충족해드리지 못해서 죄송합니다. 진정성 있는 수강평에 저도 많은 반성을 하게 되네요! 앞으로 더욱 발전하는 모습 보여드리도록 하겠습니다. 강의 들으시는데 고생 많으셨습니다. 감사합니다!

    • 저도 수강중인데 (이제 10% 정도 수강) 이 수강평을 보고 급격하게 공감이 되더라구요 취순생들이 듣기에 좋은강의 인 것 같습니다. 보통은 완강하면 수강평을 적지만 저도 이분과 같이 3개정도를 줄같아서 저때메 수강점수가 깍이는건 원치 않고 이댓글을 수강평이라 생각하고 적습니다.

  • coconut-gamja님의 프로필 이미지
    coconut-gamja

    Reviews 2

    Average Rating 5.0

    5

    29% enrolled

    정말 완벽에 가까운 강의입니다. 강의명이 [중급]이라고 되어있지만 [중-고급]이라고 해도 무방할 정도로 강의 내용이 탄탄합니다. 바로 실무에서 적용 가능한 내용들이 대부분이므로 현업 Flutter 개발자분들은 물론, 취업을 준비하시는 분들에게 정말 안성맞춤인 강의라고 할 수 있습니다. 솔직히 이런 퀄리티의 강의가 이 정도의 가격에 배울 수 있다는 것은 정말 거저먹기입니다. 개발을 15년 이상을 해온 저 뿐만 아니라 1-2년이라도 실무를 해본 사람은 아마 무슨 말인지 알 거예요. 이렇게 상세하게 알려주는 사람이 어떤 회사에 다니고 있다고 한다면 저는 “당신의 월급을 다 그 사람에게 주더라도 1년만 배우고 오라"라고 진심 어리게 조언해 줄 것입니다. 좋은 사수한테 배우는 것만큼 빠른 성장은 없습니다. 개발자로써 정말 탄탄하게 성장하려면 배우는 사람의 자세와 열정도 분명히 필요하지만 이미 그 길을 걸어본 베테랑이 최적의 코스로 안내해 준다면 더할 나위가 없겠죠.. Flutter는 몇 년 전부터 떠들썩했지만 아직 중-고급 인력이 많이 부족합니다. 제가 생각하기에 이 강의를 반복해서 듣고 모든 것을 자신의 것으로 마스터한다면 정말 좋은 조건에 즐겁게 일할 수 있게 될 것입니다. 회사의 프로젝트뿐만 아니라 만들고자 하는 앱들도 뚝딱뚝딱할 정도로 실력 향상이 되겠죠. 저는 플러터를 공부하려고 서점에서 파는 거의 모든 책을 구매하였고, 온라인 클론 코딩도 많이 접하였습니다. 다른 플랫폼에서 플러터에 대해 정말 차근차근 잘 알려주는 강의도 들어봤습니다. 그런데 이게 제일 유용합니다. 가장 실무적이고, 가장 가성비가 있습니다. 이것을 먼저 배우고 부족한 부분을 채워나가시길 진심으로 조언합니다. 이어서 강사님께 진심으로 감사드리며, 훗날 [고급] 강의가 나오길 또 기대해보겠습니다.

    • 코드팩토리
      Instructor

      감사합니다 ㅠㅠ 항상 응원해주시는 수강생분들때문에 더 열심히 강의를 제작하게 되는 것 같습니다. 다음에는 꼭 더 좋은 강의 찍어내도록 하겠습니다!!

  • 강한 바다사자님의 프로필 이미지
    강한 바다사자

    Reviews 4

    Average Rating 3.0

    5

    69% enrolled

    타 사이트에서 플러터 강의를 하나 들으며 플러터라는 것을 시작했었습니다. 사이트나 강사분 언급은 하지 않겠습니다만.. 지금 생각해보면 까놓고 말해서 강사님 수준이 너무 낮았다.. 라고밖에 평가할 수가 없네요. 그 강의를 들으며 불만이 참 많았습니다. 그냥 영타 연습하는 기분이었고 질의에 대한 답변도 시원하지 않았습니다. 그렇게 강의를 다 들었지만 제가 얻은것은 영타 실력. 그 이상 이하도 아니었습니다. 이후 혼자 구글링을 하고 숨*에서 1:1과외도 신청해서 개인 프로젝트를 하나 시도해봤습니다. 그 코드를 지금 까보면 진짜.. 말도 안나올정도로 조잡하고 왜 이렇게 짰나 싶을정도로 난잡합니다. 결국 돈만 쓰고 제대로 배우지는 못했던거죠. 개인 프로젝트 진도가 너무 안나가서 다른 강의를 찾기 시작했고, 그 때 찾게 된 것이 코드팩토리님의 강의였습니다. 당시 코드팩토리님 강의와 다른 강의 하나 중에 고민했는데(코팩님 강의가 2개였기에.. 살짝 고민했죠....ㅎㅎㅎㅎ) 그 때 코팩님 강의를 듣게 된 게 진짜 행운이라고밖에 생각이 안드네요. 4시간 다트강의를 들을때도, 초급강의를 들을 때도 윈도우를 사용하다가 빌드속도나 셋팅오류때문에 애먹었던것.. 외에 강의때문에 답답해서 몸이 베베꼬였던 적이 없었습니다. 지금은 맥북으로 하고있어서 아주 시원시원하네요 ㅎㅎ 그렇게 초급 강의를 한 번 들었고, 솔직히 들을때는 이해가 잘 되지 않는부분도 많아서 질문도 수차례 하고 구글링도 많이 해보며 어떻게 따라서 진행했습니다. 그 사이 개인 프로젝트도 갈아엎고 다시 진행중이구요. 제가 초급강의를 듣고 진짜 실력이 늘긴 늘었구나 라고 깨닫게 된 것이 지금 중급강의를 듣게 된 직후였습니다. 초급강의를 처음 접할때는 코드를 다 따라 쓰며 대조해보고, 이해하며 따라가기 바빴는데 중급 강의 초반 부분, UI부분이나 스크린부분을 만드는 기초적인 부분은 화면을 보지않고 강사님이 말하는 것만 들어도 따라가는 것을 보고는 아! 진짜 초급 강의의 효과가 있긴 했구나! 라는것을 확실히 깨닫게 됐네요.(생각해보니 Future/Stream Builder는 전혀 모르는 개념이었는데 지금 개인 프로젝트에는 아무렇지 않게 들어가있네요.) 아직 남은 분량이 많고 어려운 부분은 시작하지도 않았겠지만 중급강의 역시 강사님을 믿고 따라간다면 완강 후에는 저도 모르는 새 레벨업이 되어있을 것이라는 확신이 생깁니다. 중급강의 초반부분이지만 끝까지 낙오하지 않고 잘 따라 진행해서 저도 스스로 깔끔한 코드를 만들수 있는 코팩님의 제자 개발자가 되어보겠습니다!

    • 코드팩토리
      Instructor

      감사합니다 ㅠㅠ 정말 저에겐 큰 힘이되는 수강평입니다!! 더 좋은 강의 만들 수 있도록 노력하겠습니다!

  • 개꾸꾸님의 프로필 이미지
    개꾸꾸

    Reviews 4

    Average Rating 4.5

    5

    58% enrolled

    정말 기다리던 강의가 드디어 나왔네요. 나오자마자 강의 달리고 있는데 내용이 너무 알차서 기다린 보람이 있습니다. 현업 안드로이드 개발자인데, 올해 말 부터 flutter로 소규모 프로젝트를 여러개 연속적으로 해야될 상황이어서, dart 강의와 flutter 초급 강의를 듣고, 개인 프로젝트를 진행하고 있었습니다. 혼자 하기 부족한 부분들이 있어서 다른 flutter 중급 강의들을 들었는데 강의 구성이나 수준에서 아쉬운 부분들이 너무 많았습니다. 다행히 프로젝트들을 진행하기 직전에 중급 강의가 올라와서 빠르게 듣고 있는데, 정말정말 내용구성이 좋고 강의 준비가 완벽합니다. 게시판에 중급강의가 언제 올라오냐고 보챘었는데, 보다 완벽하게 준비하신다고 시간이 걸린다고 하셨는데, 그게 이해가 갈정도로 정말 잘 준비하신것 같습니다. 고마운 마음에 두서없이 이렇게 쓰고있는데, 혹시나 수강전에 고민하시는 분들이 보신다면, 그냥 바로 꼭 수강 하시면 됩니다 !!

    • 코드팩토리
      Instructor

      감사합니다! 더욱 좋은 강의를 만들 수 있도록 노력할게요!!

  • Mr. Tai님의 프로필 이미지
    Mr. Tai

    Reviews 4

    Average Rating 5.0

    5

    5% enrolled

    초급부터 듣기시작해서 중급까지 듣고있습니다. 플러터를 갑자기 하게되었을때 막막했는데 기초부터 하나하나 다뤄주시니 이것 참 너무 감사해서 어떻게 감사인사를 전해야할지 모르곘네요.!! 고급강의도 기다리도록 하겠습니다><!

    • 코드팩토리
      Instructor

      감사합니다!! 많은 도움 되셨으면 좋겠습니다!

$102.30

codefactory's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!