Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Scalable Flutter App: Supabase, Clean Architecture & Bloc

Ứng dụng Flutter có khả năng mở rộng: Supabase, Clean Architecture & Bloc

Ứng dụng Flutter có khả năng mở rộng: Supabase, Clean Architecture & Bloc

Làm chủ Flutter chuyên nghiệp: Xây dựng ứng dụng cộng đồng có khả năng mở rộng với Clean Architecture, Supabase, BLoC và Monorepo.

4.9
(22 đánh giá)
188 học viên
Giảng viên
Sangwook Cho
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 899.000đ -94%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
18.5 giờ video
146 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 28/05/2026

Bạn sẽ học được gì

Clean Architecture thực tế: Học cách thiết kế cấu trúc ứng dụng mạnh mẽ, có khả năng mở rộng và kiểm thử bằng cách tách mã thành các lớp Presentation, Domain và Data.
Fullstack với Supabase: Xây dựng và tích hợp các tính năng Xác thực, Cơ sở dữ liệu, Lưu trữ và Thời gian thực bằng Supabase mà không cần viết backend phức tạp.
Đồng bộ trạng thái với BLoC & Event Bus: Làm chủ quản lý trạng thái nâng cao bằng cách triển khai kiến trúc Event Bus để giữ dữ liệu nhất quán trên nhiều màn hình.
Xây dựng môi trường Monorepo: Trải nghiệm phát triển chuyên nghiệp bằng cách tách các tính năng thành các gói dùng lại để tối đa hóa hiệu quả mã nguồn.
Các tính năng nâng cao: Triển khai các tính năng đạt chuẩn ngành như tìm kiếm reactive có chống rung, cuộn vô hạn phổ quát và hệ thống thông báo thời gian thực.

Yêu cầu

Kiến thức Flutter cơ bản: Có khả năng sử dụng widget cơ bản và hiểu biết nền tảng về lập trình bất đồng bộ (async/await).
Cơ bản về Dart: Quen thuộc với các khái niệm OOP cơ bản như lớp và kế thừa.
Có tiếp xúc với quản lý trạng thái: Kinh nghiệm với bất kỳ giải pháp quản lý trạng thái nào (Provider, Riverpod, GetX, v.v.) sẽ hữu ích. Ngay cả khi bạn mới làm quen với BLoC, các nguyên tắc cơ bản sẽ giúp bạn theo kịp.
CRUD SQL cơ bản: Hiểu biết cơ bản về đọc/ghi dữ liệu được khuyến nghị. Các truy vấn phức tạp và chính sách RLS sẽ được hướng dẫn từng bước trong khóa học.
Tư duy phát triển: Bạn không cần phải là chuyên gia. Nếu bạn có ý chí học hỏi kiến trúc có khả năng mở rộng, bạn đã sẵn sàng!

Đối tượng phù hợp

Các nhà phát triển Flutter đã xây dựng ứng dụng cơ bản và sẵn sàng đương đầu với kiến trúc chuyên nghiệp, thực tế.
Các nhà phát triển đang gặp khó khăn với việc bảo trì khi mã nguồn phát triển và tìm kiếm "Clean Architecture" như một giải pháp.
Nhà phát triển độc lập hoặc kỹ sư khởi nghiệp muốn nhanh chóng triển khai ứng dụng hiệu suất cao bằng Supabase (BaaS).
Những người muốn làm chủ BLoC bằng cách kết hợp nó với kiến trúc có cấu trúc thay vì chỉ cập nhật trạng thái đơn giản.
Sinh viên hoặc người tìm việc muốn thể hiện kỹ năng "Thiết kế ứng dụng có khả năng mở rộng" trong portfolio của mình.

Nội dung khóa học

12 phần • 146 bài giảng
1 Tổng quan hướng dẫn
2 Tổng quan ứng dụng Community Board
3 Tính năng đặc biệt & Khả năng mở rộng ứng dụng
4 Đối tượng mục tiêu, Kiến thức nền tảng yêu cầu, Cấu trúc tổng thể
5 Hướng dẫn sử dụng tài liệu học tập (PDF) và mã nguồn GitHub
1 Hướng dẫn sử dụng mã thực hành và GitHub
2 Các cập nhật cú pháp chính (Dart/Flutter)
3 Tiện ích mở rộng Dart Data Class Generator (1)
4 Tiện ích mở rộng Dart Data Class Generator (2)
5 Tiện ích mở rộng bloc & freezed
6 Các tiện ích mở rộng VSCode hữu ích
7 Lớp có thể gọi (Callable Classes)
8 Xử lý lỗi với Either (1)
9 Xử lý lỗi với Either (2)
10 Giới thiệu về json_serializable (1)
11 Giới thiệu về json_serializable (2)
12 Giới thiệu về gói injectable (1)
13 Giới thiệu về gói injectable (2)
14 Giới thiệu về gói injectable (3)
15 Giới thiệu về gói injectable (4)
1 Tổng quan Clean Architecture (1)
2 Tổng quan Clean Architecture (2)
3 Tổng quan Clean Architecture (3)
4 Tổng quan Clean Architecture (4)
5 Tổng quan Clean Architecture (5)
6 Cấu trúc thư mục Clean Architecture
1 Cấu trúc dự án ứng dụng chính và lộ trình mở rộng
2 Tại sao Monorepo & Cấu trúc Monorepo
3 Thiết lập pubspec.yaml, barrel file, gói core
4 Thiết lập gói domain, gói data_supabase
5 Thiết lập tệp analysis_options.yaml
6 Cập nhật chính sách khóa Supabase
7 Thiết lập bloc_app (1)
8 Thiết lập bloc_app (2)
1 Hướng dẫn thiết lập Backend Supabase (Mã nguồn SQL)
2 Bảng public.profiles
3 Bảng auth.users so với bảng public.profiles
4 Các bảng public.posts, public.comments và public.likes
5 Thiết lập bộ lưu trữ supabase: post-images và avatars
6 Bảo mật cấp hàng (RLS) cho bảng profiles
7 Bảo mật cấp hàng (RLS) cho bảng posts
8 Bảo mật cấp hàng (RLS) cho bảng comment và likes
9 Bảo mật cấp hàng (RLS) cho bộ lưu trữ post-images và avatars
10 Hàm trigger handle_new_user
11 Hàm trigger updated_at
12 Hàm trigger update_comments_count
13 Hàm trigger update_likes_count, hàm handle_like
14 Hàm update_user_profile
15 Views: post_display_view, comment_display_view
16 Hàm get_my_posts, hàm search_posts
17 Các hàm create_post, update_post, create_comment, update_comment
1 Tổng quan về xác thực
2 core: Failures & Exceptions, Giao diện UseCase
3 domain: UserEntity, Giao diện AuthRepository, UseCases
4 Lưu ý khi sử dụng barrel files
5 data: UserModel
6 data: Giao diện AuthRemoteDataSource, SupabaseAuthRemoteDataSource
7 data: AuthRepositoryImpl
8 presentation: injectable
9 presentation: Hình dạng trạng thái (dựa trên enum so với dựa trên sealed class)
10 presentation: Mẫu trạng thái dựa trên sealed class
11 presentation: AuthenticationBloc (1)
12 presentation: AuthenticationBloc (2)
13 presentation: LoginBloc
14 presentation: SignupBloc
15 presentation: Mẫu tất cả các trang
16 presentation: Hằng số định tuyến
17 presentation: TabNavigation
18 presentation: Thiết lập GoRouter (1)
19 presentation: Thiết lập GoRouter (2)
20 presentation: Đăng ký GoRouter
21 presentation: LoginPage (1)
22 presentation: LoginPage (2)
23 presentation: SignupPage
24 presentation: Kiểm tra Đăng nhập, Đăng ký
1 domain: Thực thể PostDisplay
2 domain: Giao diện PostRepository (getPosts), UseCase getPosts
3 data: PostDisplayModel
4 data: PostRemoteDataSource, SupabasePostRemoteDataSource, PostRepositoryImpl
5 Presentation: injectable
6 presentation: PostListBloc (1)
7 presentation: PostListBloc (2)
8 presentation: PostPage
9 Hướng dẫn cuộn và phân trang theo nền tảng (iOS, Android, Web)
10 presentation: Widget PostCard
11 domain: Tạo bài viết
12 data: Tạo bài viết
13 presentation: PostFormBloc
14 presentation: PostFormPage
15 presentation: Kiểm tra PostFormPage (Tính năng tạo bài viết)
16 presentation: GlobalEventBus (PostCreatedDispatched)
17 presentation: Chi tiết GlobalEventBus
18 domain: Chi tiết bài viết
19 data: Chi tiết bài viết
20 presentation: PostDetailBloc
21 presentation: CommentListBloc
22 presentation: PostDetailPage
23 presentation: CommentListView, CommentCard
24 domain, data: Thích (Like)
25 presentation: Thích - PostListBloc, GlobalEventBus
26 presentation: Thích - PostDetailBloc, PostDetailPage
27 domain: Bình luận - Thêm, Sửa, Xóa
28 data: Bình luận - Thêm, Sửa, Xóa
29 presentation: CommentListBloc (1)
30 presentation: CommentListBloc (2)
31 presentation: PostDetailPage - CommentInputField
32 presentation: PostDetailPage - CommentCard
33 domain: Xóa bài viết, Sửa bài viết
34 data: Xóa bài viết, Sửa bài viết
35 presentation: PostDetailBloc, GlobalEventBus
36 presentation: PostFormBloc
37 presentation: PostDetailPage
38 presentation: PostFormPage, PostDetailPage
1 domain
2 data
3 presentation: ProfileBloc
4 domain, data: Lấy bài viết của tôi
5 presentation: GlobalEventBus
6 presentation: MyPostListBloc (1)
7 presentation: MyPostListBloc (2)
8 presentation: MyProfilePage (1)
9 presentation: MyProfilePage (2)
10 presentation: UserProfileBloc
11 presentation: UserProfilePage
12 presentation: EditProfileBloc
13 presentation: EditProfilePage
1 domain
2 data
3 presentation: SearchBloc (1)
4 presentation: SearchBloc (2)
5 presentation: SearchBloc (3)
6 presentation: SearchPage (1)
7 presentation: SearchPage (2)
1 Tiêu chí tái cấu trúc
2 PaginationHandler
3 Tái cấu trúc Bloc bằng cách áp dụng PaginationHandler
4 ToggleLikeHandler
5 Tái cấu trúc Bloc bằng cách áp dụng ToggleLikeHandler
1 Tổng quan, thiết lập, domain, data
2 data: RealtimeRepositoryImpl
3 presentation: injectable
4 presentation: RealtimeBloc
5 presentation: Thêm chức năng thời gian thực vào PostListBloc
6 presentation: Thêm chức năng thời gian thực vào ScaffoldWithNavBar
7 presentation: Nâng trạng thái lên (Lifting State Up) & Kiểm tra
1 Kết thúc

Giới thiệu khóa học

"Go beyond Flutter basics and become an architect capable of designing professional, production-ready apps."

Are you ready to move past simple Counter or TODO apps and tackle the complex challenges of real-world services? If you’ve experienced the frustration of code becoming tangled as you add features, or felt the fragility of your app with every small change, this course is designed for you.

This is more than just a tutorial on building an app; it is a deep dive into proven development methodologies for creating scalable and maintainable applications that stand the test of time.

Why This Course Matters in the AI Era

In an era where AI can generate code snippets in seconds, what is the role of a professional developer?

  • Beyond Snippets: AI is excellent at writing functions, but it cannot yet design a complex, interconnected system. Understanding Clean Architecture means you know how to organize those AI-generated pieces into a scalable whole.

  • The Architect’s Advantage: As AI lowers the barrier to entry for coding, the market will be flooded with "fragmented code." The true value will lie in the Architect—the one who can manage technical debt, ensure maintainability, and design a robust "vessel" (Architecture) to hold the logic.

  • Future-Proof Your Career: This course evolves you from a "coder" who follows instructions to an "architect" who masters AI as a tool, rather than being replaced by it.

The Three Pillars of This Course

We will build a high-performance 'Community Board' app from scratch, grounded in three essential technical pillars for large-scale projects:

  1. Robust Architecture (Clean Architecture): Bring order to chaotic code. Learn to separate concerns into distinct layers, creating a structure that is easy to test, maintain, and evolve.

  2. Modern Backend (Supabase): Bypass complex server setups. Leverage Supabase—a powerful Backend-as-a-Service—to implement databases, authentication, and realtime features in a fraction of the time.

  3. Efficient State Management (BLoC & Event Bus): Master BLoC, the industry standard for Flutter, and combine it with a Global Event Bus architecture to synchronize data across multiple screens with elegance and precision.

Key Learning Features

  • Build a Real-World Community App: Implement industry-standard features including Authentication, Post CRUD, Real-time likes/comments, Profile management, and Reactive search.

  • Professional Monorepo Setup: Learn to decouple features into independent packages to maximize code reusability and manage large-scale projects like a pro.

  • Advanced Streams & Real-time Control: Master Supabase Realtime for instant data syncing and utilize advanced stream techniques like Debounce and switchMap for an optimized search experience.

  • The Essence of Scalability: Design an architecture so flexible that you could swap your state management tool without touching a single line of your core business logic.

Curriculum Roadmap

  1. Foundations: Master the VS Code environment and essential productivity tools to eliminate boilerplate code.

  2. Architecture: Establish core principles of Clean Architecture, focusing on the dependency rule and separation of concerns.

  3. Infrastructure: Build a Monorepo environment and design a Supabase backend (SQL, RLS, Functions, and Triggers).

  4. Development: Implement core features (Auth, Posts, Search) using BLoC combined with a Global Event Bus.

  5. Advanced: Deep dive into Supabase Realtime for live data detection and UI synchronization.

  6. Next Level: Project review and a strategic look at how this architecture extends to other state management libraries.

Who is this course for?

  • Flutter developers who have built basic apps and are ready to tackle professional, production-ready architectures.

  • Developers struggling with maintenance as their projects grow and seeking "Clean Architecture" as a definitive solution.

  • Solo developers or startup engineers who want to launch high-performance apps quickly using Supabase (BaaS).

  • Job seekers looking to showcase "Scalable App Design" and "Monorepo Management" skills in their professional portfolio.

Prerequisites

  • Flutter & Dart Basics: You should be comfortable with basic widgets and have a foundational understanding of asynchronous programming (async/await).

  • State Management Exposure: Experience with any state management solution (Provider, Riverpod, GetX, etc.) is helpful. Even if you are new to BLoC, you will be able to follow along.

  • Basic SQL Knowledge: A basic understanding of reading/writing data is recommended. Complex database policies (RLS) and functions will be covered step-by-step.

Lecture Materials and Source Code Provided

  • High-quality PDF slides: PDF presentation materials containing key theories and architecture diagrams for each section are provided. (Download from the Resources tab for each section)

  • Final source code provided:

    Foundation Level: Complete code for productivity tools and core syntax (such as data_class) covered in Section 3 is provided.

    Main Project: The monorepo structure and final implementation code for the entire community_board app starting in Section 4 is provided.

  • Links to the source code and usage instructions will be provided in detail in the first lecture of Sections 3 & 4.

Don't just learn 'how' to build; understand 'why' we design this way. Join me on this journey to elevate your development skills to the next level!

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Flutter
Hiển thị tất cả khoá học Mobile Development
Hiển thị tất cả khoá học Supabase
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊