[Nhà máy mã] [Trung cấp] Hoạt động rung chuyển! Các kỹ năng cần thiết để trở thành tiền vệ như quản lý trạng thái, quản lý bộ đệm, tạo mã, GoRouter và logic xác thực!
Thông qua khóa học này, bạn có thể tìm hiểu những kiến thức cần thiết để một nhà phát triển Flutter cấp dưới trở thành nhà phát triển Flutter trung cấp trong một khoảng thời gian ngắn.
Bạn có muốn nâng cấp lên trình độ lập trình viên Flutter trung cấp không? Các bài giảng thực tế của Code Factory mà bạn có thể tin tưởng 🖥
Bài giảng do chính tác giả của cuốn sách bán chạy nhất nửa đầu năm 2023 của Nhà sách Kyobo giảng dạy.
Cuốn sách phát triển ứng dụng duy nhất được xếp hạng trong top 30 ở hạng mục máy tính/CNTT.
Đạt được trạng thái Siêu tân binh vào năm 2022 chỉ với Flutter!
Ngay cả các tập đoàn lớn cũng tìm đến những khóa học này! Chúng tôi đảm bảo mang đến những bài giảng tốt nhất, được chứng thực bằng các bài đánh giá!
🙋♂️ Những điều cần lưu ý trước khi tham gia lớp học
Khóa học này không chỉ được thiết kế để tạo ra một "ứng dụng giao hàng"! Đây không phải là một khóa học lập trình clone đơn giản, nên có thể không phù hợp với những người chỉ muốn học cách xây dựng một ứng dụng giao hàng. Khái niệm ứng dụng giao hàng chỉ là phương tiện truyền tải kiến thức lập trình mà tôi muốn truyền tải. Khóa học này chứa đựng những kiến thức thiết yếu có thể áp dụng cho bất kỳ ứng dụng nào, vì vậy hãy tham khảo nhé!
Khóa học này khó hơn đáng kể so với khóa học Flutter dành cho người mới bắt đầu của Code Factory! Khóa học này chứa đựng những kiến thức thiết yếu để ứng dụng thực tế, vì vậy hãy học với tâm thế nắm vững kiến thức thông qua việc ôn tập thường xuyên. Tôi tin chắc rằng một khi bạn đã hoàn toàn lĩnh hội được nội dung, bạn sẽ trở thành một lập trình viên sẵn sàng bắt tay vào làm việc ngay lập tức!
Dự án này cung cấp một máy chủ REST API dựa trên NestJS, do tôi phát triển, giúp bạn tích lũy kinh nghiệm thực tế về tích hợp máy chủ. Bạn sẽ học được những kiến thức thiết yếu dành cho lập trình viên mới vào nghề bằng cách triển khai tích hợp API trong môi trường thực tế, sử dụng tài liệu hướng dẫn máy chủ Swagger.
Bạn sẽ học được gì 📚
1) Xác thực (logic xác thực)
Trong số các hệ thống Xác thực Token được sử dụng phổ biến nhất hiện nay, chúng ta sẽ tìm hiểu các hệ thống sử dụng Refresh Token và Access Token để xác thực. Chúng ta cũng sẽ tìm hiểu cách tự động làm mới token bằng Dio.
2) Phân trang
Sau khi tìm hiểu về lý thuyết Phân trang dựa trên trang và Phân trang dựa trên con trỏ, chúng ta sẽ đi sâu hơn vào cách giải quyết Phân trang bằng con trỏ hiệu quả bằng OOP.
3) JsonSerializable
JsonSerializable loại bỏ nhu cầu viết mã để tuần tự hóa JSON thành các đối tượng khi tạo mô hình. Tìm hiểu những kiến thức cơ bản về JsonSerializable và cách áp dụng kế thừa kết hợp với phân trang.
4) Cải tạo
Retrofit là một trong những công cụ tạo mã hữu ích nhất của Flutter. Công cụ này tự động hóa việc ánh xạ REST API và hoạt động liền mạch với JsonSerializable. Toàn bộ quá trình ánh xạ API được thực hiện bằng Retrofit.
5) Quản lý Riverpod và Cache
Bạn sẽ học cách sử dụng tất cả các nhà cung cấp có sẵn trong Riverpod và áp dụng chúng vào các tình huống thực tế. Ngoài ra, bạn sẽ học cách quản lý nhiều nhà cung cấp cùng lúc và tối ưu hóa việc quản lý bộ nhớ đệm.
6) GoRouter
GoRouter,một thư viện định tuyến được sử dụng trong các ứng dụng và ứng dụng web,cung cấp các tính năng hữu ích như Liên kết động, Liên kết sâu, Chuyển hướng và quy tắc Làm mới. Hãy cùng sử dụng GoRouter để cấu hình đầy đủ hệ thống xác thực.
7) Giảm xóc và bướm ga
Debounce và Throttle là những công nghệ quan trọng để quản lý tình trạng quá tải máy chủ và tối ưu hóa ứng dụng. Trong bài giảng này, chúng ta sẽ tìm hiểu về các trường hợp sử dụng và phương pháp sử dụng phù hợp cho Debounce và Throttle.
8) Sự vênh váo
Tìm hiểu cách hiểu các thông số kỹ thuật API và chuyển đổi chúng thành mã front-end bằng Swagger, công cụ tài liệu được sử dụng rộng rãi nhất để các nhà phát triển máy chủ giao tiếp với các nhà phát triển front-end.
9) Phản ứng lạc quan
Phản ứng lạc quan là một kỹ thuật dự đoán phản hồi tích cực và chủ động cập nhật bộ nhớ đệm. Bài giảng này sẽ hướng dẫn bạn cách áp dụng kỹ thuật này trong các tình huống cụ thể.
Xin giới thiệu, Màn hình dự án! 🤸♀️
#1 Màn hình chào mừng
Thiết lập logic xác thực/xác minh và logic định tuyến cần thiết khi chạy ứng dụng lần đầu tiên.
#2 Trang đăng nhập
Đây là màn hình đăng nhập.
#3 Trang danh sách nhà hàng
Đây là màn hình chính hiển thị thông tin về nhà hàng. Tìm hiểu về Phân trang và Điều chỉnh tốc độ và áp dụng chúng vào thực tế.
#4 Trang chi tiết nhà hàng
Bạn có thể chọn món ăn bạn muốn gọi từ trang thông tin chi tiết của nhà hàng và nếu cuộn xuống, bạn cũng có thể xem các đánh giá về nhà hàng. Bạn có thể kiểm tra. Hãy cùng áp dụng nhiều Sliver List trong thực tế bằng cách sử dụng Custom Scroll View.
#5 Trang Giỏ hàng
Đây là màn hình giỏ hàng nơi bạn có thể kiểm tra thực phẩm bạn đã chọn. Tìm hiểu và áp dụng các tính năng Optimistic Response và Debounce.
#6 Tab Danh sách thực phẩm
Đây là trang nơi bạn có thể xem danh sách thực phẩm. Tìm hiểu về khái quát phân trang và các tính năng quản lý bộ nhớ đệm nâng cao.
#7 Gói danh sách đơn hàng
Chúng ta hãy khái quát Phân trang thành một tab nơi bạn có thể xem các đơn hàng.
#8 Tab hồ sơ
Đây là tab hồ sơ có chức năng đăng xuất.
Một lời từ bài giảng 🎙
Kể từ khi Flutter ra mắt, cá nhân tôi đã tham gia rất nhiều dự án, cả lớn lẫn nhỏ. Gần đây, qua nhiều buổi phỏng vấn tuyển dụng và tư vấn, tôi nhận thấy nhiều lập trình viên front-end tập trung quá nhiều vào việc chỉ đơn thuần tạo ra giao diện người dùng (UI). Mặc dù việc tạo ra một giao diện người dùng (UI) bắt mắt chắc chắn là một trong những kỹ năng quan trọng nhất đối với một lập trình viên front-end, nhưng việc nắm vững kiến thức về khoa học máy tính, quản lý dự án và viết code sạch cũng quan trọng không kém.
Khóa học này sẽ giúp các nhà phát triển Flutter có ít kinh nghiệm thực tế học được những cân nhắc cần thiết khi viết mã để đảm bảo sự hợp tác và khả năng bảo trì trơn tru . Không giống như khóa học Flutter dành cho người mới bắt đầu, khóa học này tập trung vào kiến thức thiết yếu và các phương pháp hay nhất dành cho các nhà phát triển Flutter trung cấp, tập trung vào một dự án duy nhất. Chúng tôi cố tình đưa ra những cạm bẫy trong suốt dự án, cho phép học viên vượt qua chúng và trải nghiệm trực tiếp cách viết mã tốt hơn. Khóa học tập trung vào việc phát triển các nhà phát triển Flutter cấp độ cơ bản lên trình độ thực tế. Chúng tôi sẽ áp dụng các kiến thức thiết yếu như hệ thống xác thực, làm mới, quản lý mã thông báo truy cập, quản lý trạng thái toàn cục, phân trang, gỡ lỗi và điều tiết vào các dự án thực tế.
Tôi giới thiệu điều này cho những người này 🖐
Tôi vừa xóa thẻ người mới bắt đầu sử dụng Flutter. Bất kỳ ai muốn nâng cao kiến thức của mình
Tôi biết một chút về lập trình Flutter. Những người cảm thấy choáng ngợp khi cố gắng bắt đầu một dự án
Chúng tôi đã thu thập các đánh giá về khóa học 📜
Giao tiếp tốt nhất 🧑🏼🏫
Tôi kết nối với sinh viên thông qua các buổi hỏi đáp trên YouTube Live hàng tuần!
Nếu bạn muốn nhận thông báo đẩy trực tiếp trên YouTube, vui lòng đăng ký kênh YouTube Code Factory bên dưới!
Cuốn sách Lập trình Flutter của Must Have Code Factory là cuốn sách tôi đã tự mình viết sau khi đầu tư rất nhiều thời gian vào đó! Có một số nội dung trùng lặp với khóa học dành cho người mới bắt đầu và cũng có những bài giảng về Firebase và quảng cáo không có trong khóa học dành cho người mới bắt đầu! Dành cho những ai thích sách điện tử hoặc sách giấy! Cuốn sách này có bán tại các nhà sách lớn như Kyobo Bookstore, Yes24 và Aladdin! Vui lòng nhấp vào hình ảnh bên dưới để di chuyển!
Hỏi & Đáp 💬
H. Tôi có phải tham gia khóa học Flutter dành cho người mới bắt đầu của Code Factory không?
Nếu bạn đã có kiến thức tương đương với khóa học Flutter dành cho người mới bắt đầu của Code Factory, bạn không cần phải học thêm bất kỳ khóa học nào nữa. Tuy nhiên, khóa học này mặc định là bạn đã học khóa học này, nên sẽ không lặp lại các khái niệm đã được học. Nếu bạn chưa có ít nhất kiến thức cơ bản tương đương với khóa học Flutter dành cho người mới bắt đầu của Code Factory, khóa học này sẽ khá khó theo dõi, vì vậy hãy tham gia khóa học dành cho người mới bắt đầu trước nhé!
H. Đây có phải là khóa học về cách tạo ứng dụng giao hàng không?
Dự án chúng tôi đang thực hiện là một ứng dụng giao hàng. Tuy nhiên, khóa học này hoàn toàn không liên quan gì đến UI/UX hay luồng chức năng của một ứng dụng giao hàng. Nó chỉ sử dụng "khái niệm" như một phương tiện để truyền đạt kiến thức, và tập trung vào việc trang bị kiến thức tổng quát mà các lập trình viên Flutter mới vào nghề cần có để trở thành lập trình viên Flutter trung cấp. Đừng tham gia khóa học này nếu bạn chỉ đơn giản đang tìm kiếm "cách xây dựng một ứng dụng giao hàng"!
H. Tôi sẽ trở thành nhà phát triển ở trình độ nào sau khi học khóa học này?
Tóm lại, tôi tin rằng đây là một cấp độ thực tế, có thể áp dụng ngay lập tức. Dựa trên kinh nghiệm dày dặn của tôi với nhiều dự án và các cuộc phỏng vấn trong nhiều năm, tôi đã đưa ra những kiến thức thiết yếu mà tôi tin rằng các nhà phát triển Flutter nên có.
Bạn có muốn biết thêm bài giảng về Code Factory không?
Hình ảnh tôi cung cấp trong bài giảng này là hình ảnh tôi tự mua. Tôi đã mua bản quyền sáng tạo và phân phối các tác phẩm của mình, nhưng bạn tuyệt đối không đượcphân phối hình ảnh cho người khác hoặc trên internet! Vi phạm bản quyền có thể dẫn đến các vấn đề pháp lý, vì vậy vui lòng không sử dụng những hình ảnh này cho bất kỳ mục đích nào khác ngoài mục đích học tập của bạn.
(3) Cách đặt câu hỏi
Một trong những cách hiệu quả nhất để cải thiện kỹ năng lập trình nhanh chóng là học cách đặt câu hỏi đúng. Do bản chất của lập trình, việc xem xét toàn bộ đoạn mã rất khó khăn. Vì vậy, nếu bạn tải toàn bộ mã cho một tiện ích có vấn đề lên và sau đó nói: "Nó không hoạt động!", tôi sẽ không thể đưa ra câu trả lời. Khi đặt câu hỏi, vui lòng sắp xếp theo ba bước dưới đây để chúng tôi có thể giao tiếp và phản hồi nhanh hơn nhiều!
1️⃣ Tôi nghĩ nó sẽ hoạt động như thế nào? 2️⃣ Cách thức hoạt động hiện tại 3️⃣ Mã chính xác nằm ở đâu và có vấn đề gì đang xảy ra (nếu có ví dụ👏)
Khuyến nghị cho những người này
Khóa học này dành cho ai?
Những người có đủ tự tin để tiếp thu và tiếp thu nhiều lần ngay cả những khái niệm khó
Bất cứ ai muốn nâng cấp kỹ năng phát triển Flutter của mình lên một tầm cao mới
Những người đã học đầy đủ khóa học mới bắt đầu Code Factory Flutter
Những người muốn trải nghiệm dự án thực tế
Nhà phát triển cấp dưới không có kỹ sư cấp cao trong công ty
Cần biết trước khi bắt đầu?
Kiến thức cấp độ nhà phát triển cơ bản của Flutter
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 ><!