inflearn logo

[Sơ trung cấp] Ứng dụng Flutter Todo - FlutterBloc

Hy vọng thông qua bài giảng này, bạn sẽ tích lũy thêm được dù chỉ một kiến thức mới để trở thành một nhà phát triển ứng dụng Flutter trưởng thành hơn so với "bản thân" của ngày hôm qua.

30 học viên đang tham gia khóa học này

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

Flutter
Flutter
clean-architecture
clean-architecture
bloc
bloc
Flutter
Flutter
clean-architecture
clean-architecture
bloc
bloc

Bạn sẽ nhận được điều này sau khi học.

  • Clean Architecture (Rút gọn)

  • Áp dụng DI

  • Quản lý trạng thái FlutterBloc

  • Giao diện người dùng tùy chỉnh

Tạo ứng dụng Todo bằng Flutter,
hãy cùng thực hiện qua live coding nhé? 💻

📢 Vui lòng kiểm tra trước khi học!

  • Trong bài giảng này, chúng tôi sẽ không giải thích về các lý thuyết cơ bản.
  • Mã nguồn được sử dụng trong bài giảng không được cung cấp. Để cải thiện kỹ năng, vui lòng tự mình viết mã và học tập lặp đi lặp lại.

Học Flutter thông qua việc thực hành làm ứng dụng 🚀

Chúng ta hãy cùng nhau tạo một ứng dụng Todo tham khảo từ ứng dụng Ghi chú cơ bản của iOS thông qua bài giảng này. Bài giảng này được tiến hành theo hình thức Live coding từ khâu chuẩn bị dự án cho đến khi hoàn thiện. Tôi hầu như không giải thích về lý thuyết cơ bản, và bạn có thể kiểm tra những phần giải thích còn thiếu trong ghi chú bài học! Hãy cùng thực hiện dự án và làm quen với Clean Architecture, DI, quản lý trạng thái BLoC, Custom UI, v.v.

pubspec.yaml

Các
được sử dụng trong dự án
là thư viện!

Vì phiên bản có thể thay đổi nên
tôi đã loại bỏ dấu mũ (^) rồi!

  • environment:
    • sdk: '>=2.17.0 < 3.0.0'
  • dependencies:
    • freezed_annotation: 2.2.0
    • flutter_bloc: 8.1.1
    • get_it: 7.2.0
    • hive: 2.2.3
    • hive_flutter: 1.1.0
    • intl: 0.17.0
  • dev_dependencies:
    • build_runner: 2.3.2
    • freezed: 2.3.0
    • hive_generator: 2.0.0

Bạn sẽ học được những điều này 📖

Bước 1.
Chuẩn bị dự án

Bao gồm 3 bước chuẩn bị.

  • Xây dựng cấu trúc thư mục dự án
  • Chuẩn bị route để chuyển đổi màn hình
  • Chuẩn bị DI (Dependency Injection)

Bước 2.
Xây dựng UI cơ bản

Tiến hành thực hiện các công việc UI sẽ sử dụng trong ứng dụng.

  • Chủ đề chung
  • Nút bấm chung
  • Thanh điều hướng phía dưới chung
  • Hộp thoại chung
  • Ô thư mục
  • Hộp thoại nhập thư mục
  • Ô ghi chú

Bước 3.
Mô hình hóa dữ liệu

Tiến hành công việc mô hình hóa dữ liệu bằng cách sử dụng gói Freezed.

  • Thêm gói Freezed
  • Tạo mô hình thư mục
  • Tạo mô hình ghi chú

Step 4.
Thao tác DB

Sử dụng gói Hive để tiến hành các thao tác với DB.

  • Thêm gói Hive
  • Áp dụng Hive vào mô hình thư mục
  • Áp dụng Hive vào model ghi chú
  • HiveDB > Thao tác CRUD
  • Xây dựng lớp trừu tượng LocalDB
  • LocalDB > Đăng ký Singleton

Bước 5.
Thiết kế màn hình thư mục
Thiết kế màn hình ghi chú
Thiết kế màn hình thêm/sửa ghi chú

Tiến hành thực hiện giao diện màn hình.

  • Thực hiện công việc cho Screen dựa trên UI đã làm ở Step 2
  • Thực hiện công việc Repository dựa trên Model và DB đã làm ở Step 3 và Step 4
  • Repository > Đăng ký Singleton
  • Thực hiện FlutterBloc(Cubit) để liên kết dữ liệu và màn hình
  • LocalDB > Repository > FlutterBloc(Cubit) > Screen 

Q&A 💬

Q. Có giúp ích cho công việc thực tế không?

Nếu bạn hiểu rõ và nắm vững kiến thức, nó sẽ giúp ích rất nhiều cho công việc thực tế và có thể áp dụng được ngay.

Q. Tôi có thể phát triển đến mức độ nào?

Vì chỉ có một ví dụ duy nhất, tôi tin rằng nếu bạn hiểu rõ từng phần trước khi tiếp tục, bạn sẽ có thể trưởng thành rất nhiều. Ngoài ra, vì mã nguồn trong bài giảng không phải là đáp án duy nhất, việc thử viết lại mã của người khác theo cách mới cũng sẽ giúp ích rất nhiều cho sự phát triển của bạn.

H. Bạn không sử dụng các gói quản lý trạng thái khác sao?

Tôi đã từng sử dụng Provider và GetX. Kết luận là, chỉ cần bạn hiểu rõ khái niệm về quản lý trạng thái, thì dù sử dụng cái nào đi chăng nữa, hãy cứ dùng gói quản lý trạng thái nào phù hợp nhất với bản thân là được.

Q. Tôi có thể đặt câu hỏi ngoài nội dung bài giảng không?

Các câu hỏi ngoài nội dung bài giảng là không thể. Tuy nhiên, tôi nghĩ hầu hết chúng đều có liên quan đến nội dung bài giảng. 😊

Q. Tôi cảm thấy phần giải thích trong bài giảng còn thiếu sót nhiều, có lý do nào khác không ạ?

Trọng tâm của bài giảng này thiên về mục đích chia sẻ quá trình tôi phát triển hơn là giải thích chi tiết, nên phần diễn giải có thể còn thiếu sót. Tuy nhiên, tôi tin rằng sẽ có nhiều điểm hữu ích mà bạn có thể học hỏi được.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người sẽ tiến hành dự án mới

  • Những người sẽ trưởng thành thông qua việc học tập lặp đi lặp lại

  • Những người có tư duy muốn gặt hái được dù chỉ là một điều gì đó.

Cần biết trước khi bắt đầu?

  • Ngôn ngữ Dart

  • Kiến thức cơ bản về Flutter

  • Kiến thức lập trình bất đồng bộ trong Flutter

Xin chào
Đây là Gasigogi

Tôi là một nhà phát triển Flutter & iOS, người đã bắt đầu phát triển Flutter từ năm 2019.

Tôi rất quan tâm đến sự phát triển năng lực lập trình của các thành viên trong nhóm. 😁

Tôi đặc biệt thích review code. 😊

Có vẻ như trên thế giới có rất nhiều người giỏi lập trình!

Mặt khác, tôi vẫn nghĩ rằng kỹ năng lập trình của mình còn nhiều thiếu sót.

Tôi thừa nhận những thiếu sót của bản thân và luôn nỗ lực để lấp đầy những thiếu sót đó.

Có thể lấp đầy những thiếu sót đó ở đâu?

Đó chính là! Những người "đồng nghiệp" của các bạn. Tôi đang bù đắp những thiếu sót của bản thân và trưởng thành hơn nhờ các đồng nghiệp, ngược lại, tôi cũng chia sẻ thế mạnh của mình cho họ để lấp đầy những phần còn thiếu...

Chính là!

Đó chính là "đồng nghiệp" của các bạn.

Tôi đang bù đắp những thiếu sót của bản thân thông qua các đồng nghiệp và ngày càng trưởng thành hơn, và

Ngược lại, tôi chia sẻ thế mạnh của mình với đồng nghiệp để bù đắp những thiếu sót của họ và "cùng nhau" trưởng thành.

Giờ đây tôi là "đồng nghiệp" của các bạn.

Hy vọng rằng thông qua những kiến thức của tôi, bạn sẽ trở thành một nhà phát triển trưởng thành hơn so với "bản thân mình" của ngày hôm qua, và

Tôi cũng sẽ trở thành một nhà phát triển trưởng thành hơn nữa thông qua những phản hồi từ các bạn.

Thêm

Chương trình giảng dạy

Tất cả

45 bài giảng ∙ (5giờ 28phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Giảm 25% cho thành viên mới

1.537.179 ₫

25%

2.049.569 ₫