inflearn logo
inflearn logo

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

Hãy vượt xa những kiến thức cơ bản về Flutter để trở thành chuyên gia thiết kế kiến trúc cấp độ thực tế. Xây dựng các ứng dụng có khả năng mở rộng bằng cách sử dụng Clean Architecture, Supabase, Bloc và Monorepo.

강의소개.상단개요.수강생

난이도 초급

수강기한 무제한

Flutter
Flutter
bloc
bloc
monorepo
monorepo
clean-architecture
clean-architecture
supabase
supabase
Flutter
Flutter
bloc
bloc
monorepo
monorepo
clean-architecture
clean-architecture
supabase
supabase

강의상세_배울수있는것_타이틀

  • Áp dụng thực tế Kiến trúc sạch (Clean Architecture): Học cách thiết kế cấu trúc ứng dụng vững chắc, có khả năng mở rộng và dễ dàng kiểm thử bằng cách phân chia mã nguồn thành các lớp Presentation, Domain và Data thay vì chỉ dừng lại ở lý thuyết.

  • Phát triển Full-stack với Supabase: Xây dựng và kết nối hoàn hảo các tính năng Xác thực (Auth), Cơ sở dữ liệu (Database), Lưu trữ (Storage) và Thời gian thực (Realtime) bằng cách sử dụng Supabase mà không cần viết mã backend.

  • Đồng bộ hóa trạng thái bằng BLoC và Event Bus: Để duy trì tính nhất quán của dữ liệu nằm rải rác trên nhiều màn hình trong các ứng dụng quy mô lớn, chúng ta sẽ áp dụng kiến trúc Event Bus và học cách giao tiếp tinh tế giữa các BLoC.

  • Xây dựng môi trường Monorepo: Trải nghiệm môi trường phát triển chuyên nghiệp, nơi các tính năng được tách biệt và quản lý theo từng gói (package) nhằm tối đa hóa khả năng tái sử dụng logic nghiệp vụ.

  • Triển khai các tính năng nâng cao thực tế: Thực hiện các tính năng ở cấp độ dịch vụ thực tế như tìm kiếm phản hồi nhanh áp dụng Debounce, cuộn vô hạn (Infinite Scroll) sử dụng logic chung, và hệ thống thông báo thời gian thực.

"Vượt qua những kiến thức Flutter cơ bản, hãy bứt phá để trở thành chuyên gia thiết kế kiến trúc cấp độ thực chiến."

Bạn đã sẵn sàng để giải quyết những vấn đề phức tạp trong các dịch vụ thực tế, vượt xa khỏi những ví dụ đơn giản như ứng dụng đếm số hay danh sách TODO chưa? Nếu bạn từng trải qua cảm giác code bị rối tung khi thêm tính năng, hay ứng dụng bị lỗi chỉ vì một thay đổi nhỏ, thì khóa học này chính là câu trả lời dành cho bạn.

Khóa học này không chỉ dừng lại ở việc hoàn thành một ứng dụng duy nhất, mà còn truyền đạt phương pháp phát triển vững chắc để tạo ra 'một ứng dụng có khả năng mở rộng và dễ bảo trì, không bị lung lay theo thời gian'.

🏗️ Trong kỷ nguyên AI, tại sao chúng ta vẫn phải học về kiến trúc?

Đây là thời đại mà AI có thể lập trình chỉ trong vài giây. Vậy thì, các nhà phát triển chúng ta nên tập trung vào điều gì?

  • Khả năng nhìn nhận tổng thể thay vì từng mảnh nhỏ: AI có thể tạo ra các hàm hoặc widget đơn lẻ rất tốt. Tuy nhiên, trong các dự án quy mô lớn với hàng vạn dòng mã đan xen, việc quyết định mỗi bộ phận nên nằm ở đâu và làm thế nào để giảm thiểu sự phụ thuộc lẫn nhau vẫn là trách nhiệm của các nhà phát triển con người.

  • Chiếc bình vững chắc chứa code của AI: Càng nhiều code được AI tạo ra, nguy cơ trở thành 'code spaghetti' không thể quản lý càng lớn. Clean Architecture và Monorepo trở thành chiếc bình vững chắc giúp bạn tổ chức các đoạn code do AI tạo ra một cách có hệ thống và vận hành an toàn.

  • Người quyết định không thể thay thế: AI chỉ đưa ra các lựa chọn, nó không thể đưa ra những phán đoán kỹ thuật tối ưu phù hợp với bối cảnh kinh doanh. Khóa học này sẽ giúp bạn tiến hóa từ một 'coder' đơn thuần trở thành một 'kiến trúc sư', người điều khiển AI như một công cụ.



🛡️ Ba trụ cột cốt lõi hỗ trợ bài giảng (Three Pillars)

Xây dựng ứng dụng 'Community Board' trên sân khấu thực tế và làm chủ ba công nghệ cốt lõi hỗ trợ các dự án quy mô lớn.

  1. Kiến trúc vững chắc (Clean Architecture): Mang lại trật tự cho những đoạn mã hỗn độn. Thiết kế cấu trúc dễ dàng kiểm thử và bảo trì bằng cách phân tách rõ ràng các mối quan tâm.

  2. Backend hiện đại (Supabase): Tận dụng Supabase cung cấp cơ sở dữ liệu, xác thực và tính năng thời gian thực mà không cần cấu hình máy chủ phức tạp, giúp rút ngắn đáng kể thời gian xây dựng backend.

  3. Quản lý trạng thái hiệu quả (BLoC & Event Bus): Kết hợp BLoC, tiêu chuẩn quản lý trạng thái của Flutter, với kiến trúc Event Bus giúp giảm sự phụ thuộc giữa các đối tượng, từ đó đồng bộ hóa dữ liệu toàn bộ ứng dụng một cách tinh tế.





🚀 Nội dung học tập chính và đặc điểm

  • Xây dựng ứng dụng cộng đồng thực tế: Xây dựng từ đầu tất cả các tính năng cần thiết cho một dịch vụ thực tế như xác thực, CRUD bài viết, bình luận/thích thời gian thực, quản lý hồ sơ, tìm kiếm phản hồi, v.v.

  • Môi trường Monorepo: Chia tách các tính năng thành các đơn vị package độc lập để tối đa hóa khả năng tái sử dụng mã nguồn và rèn luyện kỹ năng quản lý các dự án quy mô lớn.

  • Luồng nâng cao và điều khiển thời gian thực: Xử lý các kỹ thuật cấp độ thực tế như thông báo thời gian thực bằng Supabase Realtime, Debounce và switchMap để tối ưu hóa tìm kiếm.

  • Tinh hoa của kiến trúc, khả năng mở rộng: Bạn sẽ đạt được khả năng thiết kế ở mức độ có thể ra mắt một ứng dụng mới chỉ bằng cách thay đổi công cụ quản lý trạng thái trong khi vẫn giữ nguyên cấu trúc hiện tại.


Nội dung học tập chính và đặc điểm ứng dụng

📅 Lộ trình học tập (Learning Path)

  1. Foundation: Làm chủ môi trường VS Code giúp nâng cao năng suất thực tế và các công cụ thiết yếu giúp giảm thiểu boilerplate

  2. Architecture: Thiết lập các nguyên tắc kiến trúc sạch (Clean Architecture) như phân tách mối quan tâm và quy tắc phụ thuộc

  3. Infrastructure: Xây dựng monorepo để mở rộng và thiết kế backend Supabase (SQL, RLS, Functions)

  4. Development: Triển khai các tính năng cốt lõi (Auth, Post, Search) sử dụng BLoC và Event Bus

  5. Advanced: Ứng dụng chuyên sâu Supabase Realtime để phát hiện dữ liệu thời gian thực và cập nhật lên UI

  6. Next Level: Tổng kết toàn bộ dự án và thảo luận về chiến lược mở rộng sang các thư viện quản lý trạng thái khác

🎯 Đề xuất cho những đối tượng sau

  • Những người đã từng làm các ứng dụng cơ bản bằng Flutter nhưng muốn thử sức với các dự án lớn hơn và có hệ thống hơn.

  • Những ai đang thắc mắc về cách triển khai Kiến trúc sạch (Clean Architecture) được sử dụng trong thực tế vào mã nguồn thật như thế nào.

  • Nhà phát triển độc lập hoặc nhà phát triển startup muốn tối đa hóa hiệu quả phát triển backend bằng cách sử dụng Supabase.

  • Những người cần một bộ hồ sơ năng lực (portfolio) thể hiện "khả năng thiết kế ứng dụng có thể mở rộng" để phục vụ cho việc tìm việc hoặc chuyển việc.

📋 Vui lòng kiểm tra trước khi khóa học bắt đầu (Prerequisites)

  • Kiến thức cơ bản về Flutter & Dart: Cần hiểu về cách sử dụng các widget cơ bản và lập trình bất đồng bộ (async/await).

  • Kinh nghiệm quản lý trạng thái: Sẽ rất tốt nếu bạn đã có kinh nghiệm sử dụng bất kỳ phương pháp quản lý trạng thái nào như Provider, Riverpod, GetX, v.v. (Khóa học được thiết kế để bạn có thể dễ dàng theo kịp ngay cả khi đây là lần đầu tiên tiếp cận BLoC.)

  • Kiến thức SQL cơ bản: Sẽ rất tốt nếu bạn đã biết cú pháp CRUD cơ bản để đọc và ghi dữ liệu. Những chính sách phức tạp sẽ được hướng dẫn trong khóa học.

📂 Cung cấp tài liệu bài giảng và mã nguồn

  • Slide PDF chất lượng cao: Cung cấp tài liệu thuyết trình PDF bao gồm lý thuyết cốt lõi và sơ đồ kiến trúc cho từng phần. (Tải xuống tại tab ‘Tài liệu’ của mỗi phần)

  • Mã nguồn cuối cùng được cung cấp:


    Cấp độ cơ bản: Cung cấp mã nguồn hoàn chỉnh cho các công cụ năng suất và cú pháp cốt lõi (ví dụ: data_class) được đề cập trong Phần 3.
    Dự án chính: Cung cấp cấu trúc monorepo và mã nguồn triển khai cuối cùng cho toàn bộ ứng dụng bảng tin cộng đồng bắt đầu từ Chương 4.

  • Link tải mã nguồn và hướng dẫn sử dụng sẽ được cung cấp chi tiết trong bài giảng đầu tiên của Chương 3 và Chương 4.


Bạn sẽ không chỉ hiểu 'làm thế nào' mà còn hiểu được bản chất 'tại sao' phải thiết kế như vậy. Hãy tham gia ngay vào hành trình đưa kỹ năng của bạn lên một tầm cao mới!

강의소개.콘텐츠.추천문구

학습 대상은 누구일까요?

  • Những nhà phát triển đã từng tạo các ứng dụng Flutter cơ bản nhưng muốn học hỏi về kiến trúc vững chắc ở cấp độ dịch vụ thực tế.

  • Những người cảm thấy khó khăn trong việc bảo trì khi mã nguồn ngày càng trở nên phức tạp và muốn tìm giải pháp thông qua 'Clean Architecture'.

  • Nhà phát triển độc lập hoặc nhà phát triển startup muốn nhanh chóng ra mắt ứng dụng hiệu suất cao bằng cách sử dụng BaaS như Supabase thay vì dành quá nhiều thời gian cho việc phát triển backend.

  • Những người muốn học hỏi bí quyết thực tế để kết hợp công cụ quản lý trạng thái (BLoC) với một kiến trúc hệ thống bài bản, thay vì chỉ dừng lại ở việc triển khai các tính năng đơn giản.

  • Những người đang chuẩn bị xin việc hoặc chuyển việc muốn chứng minh "năng lực thiết kế ứng dụng có khả năng mở rộng" trong portfolio của mình.

선수 지식, 필요할까요?

  • Cơ bản về Flutter: Bạn có thể sử dụng các widget cơ bản (Row, Column, ListView, v.v.) và cần có hiểu biết cơ bản về lập trình bất đồng bộ (async/await).

  • Cú pháp Dart cơ bản: Dành cho những người đã nắm vững các khái niệm cơ bản về lập trình hướng đối tượng như lớp (class), kế thừa (inheritance), v.v.

  • Kinh nghiệm quản lý trạng thái: Sẽ rất tốt nếu bạn đã từng sử dụng ít nhất một công cụ quản lý trạng thái (như Provider, Riverpod, GetX, v.v.). (Ngay cả khi bạn mới làm quen với BLoC, chỉ cần bạn nắm vững các nguyên lý cơ bản của quản lý trạng thái là có thể hoàn toàn theo kịp.)

  • Kiến thức SQL cơ bản: Sẽ rất tốt nếu bạn biết các cú pháp SQL CRUD đơn giản để đọc và ghi dữ liệu. Các truy vấn phức tạp hoặc chính sách bảo mật sẽ được chúng ta cùng nhau xây dựng trong khóa học.

  • Niềm đam mê học hỏi: Bạn không cần phải biết hoàn hảo mọi kỹ năng trước khi bắt đầu. Chỉ cần bạn có ý chí muốn học hỏi các phương pháp thiết kế mới là đủ!

강의소개.지공자소개

Chủ sở hữu doanh nghiệp một thành viên YourDevEdge | Chuyên gia Flutter & YouTuber 'Heavy Fran'

Xin chào. Tôi là giảng viên đang vận hành YourDevEdge, một startup nội dung đào tạo Full-stack và kênh YouTube chuyên về Flutter mang tên ‘Heavy Fran’.

Sau hơn 20 năm làm việc tại một tập đoàn viễn thông hàng đầu trong nước, tôi đã chuyển hướng sang con đường trở thành nhà phát triển ở độ tuổi không hề nhỏ. Những trải nghiệm tự học, làm quen với nhiều ngôn ngữ và framework khác nhau, cùng những lần trực tiếp đối mặt với khó khăn và rút ra bài học đã trở thành nền tảng cho triết lý giáo dục và phong cách giảng dạy riêng biệt của tôi hiện nay.

Trong thời gian qua, thông qua Udemy, tôi đã phát hành tổng cộng 5 khóa học bao gồm Flutter Provider, Bloc, Redux, Riverpod và khóa học phát triển Clean Architecture API dựa trên Dart Frog, qua đó chia sẻ trải nghiệm học tập thực tiễn với các học viên trên toàn thế giới. Thông qua trải nghiệm này, tôi đã không ngừng kiểm chứng đâu là những giải thích thực sự hữu ích cho người học và các nhà phát triển thực tế, thay vì chỉ là "những giải thích đúng về mặt lý thuyết".

Vì thấu hiểu hơn ai hết cảm giác mông lung và cô đơn khi học một công nghệ mới, tôi không chỉ đơn thuần dạy "cách triển khai tính năng", mà tập trung vào việc truyền tải bản chất của vấn đề: tại sao kiến trúc này lại cần thiết, và làm thế nào để giải quyết các vấn đề phức tạp trong thực tế một cách có hệ thống.

Tôi đã đưa vào bài giảng tất cả tư duy hệ thống tích lũy được trong hơn 20 năm, cùng với những trải nghiệm sai lầm và bí quyết để trở thành một nhà phát triển thực thụ dù có xuất phát điểm muộn.
Bằng cách kết nối giữa "cốt lõi nhất định phải hiểu" và "những chi tiết dễ bị bỏ lỡ", tôi sẽ trở thành một người dẫn dắt (pacemaker) đáng tin cậy để giúp các bạn không còn lạc lối một mình và có thể bứt phá lên những bước tiến tiếp theo.

더보기

커리큘럼

전체

145개 ∙ (강의상세_런타임_시간 강의상세_런타임_분)

해당 강의에서 제공: [object Object]
강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

강의상세.할인문구

76.230 ₫

30%

2.265.649 ₫