[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.
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!
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.
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 neverdistribute 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
Thank you for the great Flutter lecture~
I wrote a long post because there were many things I regretted while listening to the lecture.
Summary -
It is a great lecture for making apps with Flutter, but is it bad for understanding Flutter?
------------------------------------------------------
Overall course review
Judging from the speed at which you wrote Flutter code, it seems that you have done a lot of related work, but compared to that, I felt that your overall project design ability, experience, and IT knowledge were somewhat lacking. Of course, I think it is enough for job seekers or students to listen to, but for developers with some experience, there were many parts where the explanation of concepts was wrong or why the project was structured like this.
At first, I wrote a post by asking questions while listening to the lecture, but I thought that if I kept writing, the lecture would not progress, so I just took notes separately and skipped the lecture. Here is what I wrote for now.
- Insufficient theoretical explanation of tokens or sessions in the authentication process explanation -> I left this in the question
- Insufficient detailed explanation in terms of taking the project structure. I wanted to hear a little bit about what patterns are used in Flutter, but they created a repository and a provider without explanation~
- The response format of the provided server API does not match. It is easier to develop if the response model is the same whether paging is used or not, but if there is paging, it is wrapped once in data and sent down, and if there is not, it is just sent down as is, so it is too inconvenient because it cannot be managed commonly in the client,,
- When creating a Dio interceptor, the explanation is like 'It's just a rule~' and you can follow it, and the explanation on the network side is insufficient overall
- There are parts where the explanation is skipped here and there, such as "If you know oop,,", and there are parts that talk about it even though it is not a concept about oop
- The naming does not match overall. The same image URL field is used as imgUrl, imageUrl, and I don't know why user_model is used as camel as userModel, but username is not used as userName
- The more the lecture goes on, the more the same words are repeated. It seems to be due to video editing, but there are parts where the same thing is repeated.. It's uncomfortable to watch
- After the gorouter chapter, it suddenly goes to UerMeRepository. In the previous lecture, UserModel was not created, but it was created. It seems like the lecture was missed
...
Because of the above contents, rather than listening to the lecture, I watched the lecture by stopping the lecture at the beginning of the lecture and implementing and comparing it myself when I thought, "What should I do?" In fact, the reference codes I saw on github or stackoverflow were much cleaner and had a better structure. (+ I also bought and read the book that he wrote, but I feel like he has never experienced a project at a large company.)
I usually don't write reviews while listening to the lecture, but I ended up writing this because he said this so many times during the lecture.
"This code can be written differently because it's different for each project, team, and person."
"Can't this be done like this?" If you say that, I have nothing to say." You say a lot of defensive things about tackles, but from the perspective of the listener, it sounds negative. If you had various project experience, you could explain various examples and say that there are various methods, but it seems like you are saying this because you can't. It would have been better if you didn't mention it.
And you say a lot, "This is a paid lecture, so I will tell you everything," but the explanation is too poor. I think it took more time to look into the internal code while listening to the lecture. In my opinion, if it's an 'intermediate' level, you expect to be explained how the code works internally, but it was a lecture where you just used what was there without knowing how it worked inside.
I hope that in future lectures, you add examples of various projects and explanations of internal logic.
Hello! I apologize for not being able to satisfy the parts you felt dissatisfied with. I also reflect a lot on your sincere course review! I will show you a more improved image in the future. Thank you for your hard work in taking the course. Thank you!
I'm also taking the course (about 10% done), and after seeing this review, I strongly resonated with it.
It seems like a great lecture for job seekers.
I usually write a review after completing a course, but like this person, I also feel I could write about 3 points.
I don't want the course rating to drop because of me, so I'm writing this comment as a review.
This is a lecture that is almost perfect. Although the title of the lecture is [Intermediate], it is not an exaggeration to say [Intermediate-Advanced] because the lecture content is solid. Since most of the content can be applied directly to actual work, it is a lecture that is perfect for current Flutter developers as well as those preparing for employment.
Honestly, it is really cheap to learn this quality lecture at this price. Not only me, who has been developing for more than 15 years, but also anyone who has worked in the field for 1-2 years will probably know what I mean. If someone who explains this in detail were to work at a company, I would sincerely and childishly advise them, “Even if you give all your salary to that person, come learn for just one year.”
There is no faster growth than learning from a good mentor. In order to really grow as a developer, you definitely need the attitude and passion of a learner, but it would be even better if a veteran who has already walked that path could guide you to the best course.
Flutter has been a hot topic for several years, but there is still a shortage of intermediate to advanced personnel. I think that if you listen to this lecture repeatedly and master everything yourself, you will be able to work happily under really good conditions. Your skills will improve to the point where you can quickly create not only company projects but also the apps you want to create.
I bought almost every book sold in bookstores to study Flutter, and I also came across a lot of online clone coding. I also took lectures on other platforms that really explained Flutter step by step. But this is the most useful. It is the most practical and cost-effective. I sincerely advise you to learn this first and fill in the gaps.
I would like to express my sincere gratitude to the instructor, and I look forward to the [advanced] lecture coming out in the future.
Thank you ㅠㅠ I think I work harder to create lectures because of the students who always support me. I will definitely make an even better lecture next time!!
I started learning Flutter by taking a Flutter course on another site. I won’t mention the site or the instructor, but when I think about it now, I can only say that the instructor’s level was too low.
I had a lot of complaints while taking that course. It felt like I was just practicing typing, and the answers to my questions were not very satisfying. Even though I took all the courses, all I gained was my typing skills. Nothing more or less.
After that, I Googled on my own and applied for a 1:1 tutoring class on Soom* to try a personal project. If I look at the code now, it’s really… incredibly crude and messy to the point where I wonder why it was written like that. In the end, I just spent money and didn’t learn properly.
Since my personal project wasn’t progressing well, I started looking for other courses, and that’s when I found Code Factory’s course. At that time, I was debating between Code Factory's lecture and another lecture (since there were two lectures by Copac, I was a little worried... hahaha). I can't help but think that it was really lucky that I ended up taking Copac's lecture.
Whether it was the 4-hour Dart lecture or the beginner's lecture, I had a hard time because of the build speed or setting errors while using Windows.. Other than that, I never felt so frustrated because of the lecture. Now I'm using a MacBook, so it's really refreshing hahaha
I took the beginner's lecture once, and honestly, there were many parts that I didn't understand, so I asked questions several times and googled a lot to figure out how to proceed. In the meantime, I also changed my personal project and am working on it again.
I realized that my skills had really improved after taking the beginner's lecture right after I took the intermediate lecture. When I first started taking the beginner's course, I was busy following along, comparing, and understanding the code, but when I saw that I could follow along just by listening to the instructor without looking at the screen in the beginning of the intermediate course, in the basic parts of creating the UI or screen, I realized that the beginner's course was really effective! (Come to think of it, I had no idea about Future/Stream Builder, but now I'm using it in my personal project without any problems.)
There's still a lot of content left, and I haven't even started the difficult parts, but I'm confident that if I trust the instructor and follow the intermediate course, I'll level up before I know it. It's the beginning of the intermediate course, but I'll follow along well without falling behind and become a developer like Copac's disciple who can create clean codes on my own!
The lecture I've been waiting for has finally come out. I've been running the lecture since it came out, and the content is so rich that it's worth the wait.
I'm an Android developer working in the field, and since the end of this year, I've had to do several small projects in a row with Flutter, so I've been taking Dart and Flutter beginner lectures and working on personal projects. There were some parts that I lacked on my own, so I took other Flutter intermediate lectures, but there were so many parts that were disappointing in the lecture composition and level.
Fortunately, the intermediate lecture was uploaded right before I started the projects, so I'm listening to it quickly. The content composition is really good and the lecture preparation is perfect. I asked on the bulletin board when the intermediate lecture would be uploaded, and you said it would take time to prepare more thoroughly, but I can understand that you've prepared really well.
I'm writing this without any order because I'm grateful, but if anyone is thinking about taking the course, just take it right away!!
I started listening from the beginner level and am listening to the intermediate level.
When I suddenly started using Flutter, I was at a loss,
but since you covered everything from the basics, I am so grateful and I don't know how to express my gratitude.!!
I will also wait for the advanced lectures ><!