mobileBeginner

Flutter 101 - Xây dựng Muiltiplatform Application

Flutter 101 - Xây dựng Muiltiplatform Application

Flutter từ nền tảng đến triển khai: widget tree, state management (setState/Provider/Riverpod), navigation/forms/storage và tối ưu khung hình. Xây app đa nền tảng hiện đại, hiệu năng tốt.

4.7 (24 đánh giá)18h👥 130 học viên📚 14 bài học📎 18 tài liệu🌐 Vietnamese
10.000.000
IT
Tạo bởi ITSS Training
🌐 VietnameseBeginner

Lộ trình học

Buổi 1
Ngày 1-2

Mục tiêu

  • Hiểu rõ Flutter và Dart
  • Setup Flutter development environment
  • Tạo app đầu tiên

Nội dung

  • Giới thiệu Flutter, kiến trúc rendering và ưu điểm đa nền tảng; so sánh với React Native và native để định vị lựa chọn.
  • Cài đặt Flutter SDK và IDE; cấu hình thiết bị ảo/thật, hot reload và mẹo xử lý lỗi môi trường.
  • Khởi tạo project bằng flutter create, khám phá cấu trúc thư mục và quy ước đặt tên theo style guide.
  • Hiểu widget tree, stateless/stateful widgets và composition để tạo UI dễ tái sử dụng.
  • Thực hành: tạo app Hello World và điều chỉnh theme cơ bản (màu, font, spacing).
Buổi 2
Ngày 3-4

Mục tiêu

  • State management
  • Navigation và routing
  • Forms và user input

Nội dung

  • Đào sâu StatefulWidget/State và vòng đời; sử dụng setState() đúng chỗ để tránh rebuild thừa.
  • Tổng quan state management: khi nào đủ dùng setState, khi nào cần Provider/Riverpod; tách business logic khỏi UI.
  • Định tuyến với Navigator 1.0/2.0, đặt tên route và truyền tham số an toàn.
  • Xây dựng form với TextField, validation đồng bộ/bất đồng bộ và UX nhập liệu thân thiện.
  • Bài lab: tạo flow đăng nhập/đăng ký đơn giản có validation và điều hướng sau khi thành công.
Buổi 3
Ngày 5-6

Mục tiêu

  • Advanced state management
  • HTTP requests và API
  • Local storage

Nội dung

  • Làm việc với Provider/Riverpod: tạo providers, refactor business logic và tối ưu rebuild.
  • Gọi API bằng http/Dio; cấu trúc layer dịch vụ, xử lý lỗi và retry hợp lý.
  • JSON serialization: codegen với json_serializable, kiểm soát nullable và default values.
  • Lưu trữ cục bộ với SharedPreferences/Hive; chiến lược cache và đồng bộ dữ liệu.
  • Bài lab: xây danh sách có phân trang, cache tạm và refresh thủ công/tự động.
Buổi 4
Ngày 7-8

Mục tiêu

  • Advanced features
  • Project thực tế
  • Build và deployment

Nội dung

  • Thiết kế custom widgets có tham số rõ ràng và tài liệu nội bộ; nguyên tắc composition over inheritance.
  • Animations: implicit vs explicit, AnimationController và tối ưu khung hình để giữ 60/120fps.
  • Giao tiếp với native qua platform channels khi cần tính năng ngoài SDK; cân nhắc chi phí bảo trì.
  • Testing: unit/widget/integration; mock phụ thuộc và golden tests cho UI ổn định.
  • Build và deploy đa nền tảng: cấu hình flavors, ký ứng dụng và tối ưu kích thước gói phát hành.
Buổi 5
Ngày 9-10

Mục tiêu

  • Quản lý state nâng cao
  • Tối ưu hiệu năng

Nội dung

  • Provider/Riverpod nâng cao: StateNotifier/Notifier, AsyncValue và patterns để tách UI/logic rõ ràng.
  • Memoization và tránh rebuild thừa: selector, const widgets và keys phù hợp.
  • Isolates và compute để xử lý tác vụ nặng không chặn UI; pattern truyền dữ liệu an toàn.
  • Profiling với DevTools/Flutter Inspector để phát hiện layout jank và tối ưu frame build time.
Buổi 6
Ngày 11-12

Mục tiêu

  • Làm việc với API và storage
  • Bảo mật cơ bản

Nội dung

  • HTTP và Dio: interceptors, retry/backoff và cancel; xử lý lỗi tập trung và mapping sang UI.
  • Offline-first với local database (Hive/Drift): đồng bộ nền và chiến lược hợp nhất xung đột.
  • Secure storage: lưu khóa và token an toàn; che giấu dữ liệu nhạy cảm trên màn hình.
  • Quản lý secrets: tách cấu hình theo môi trường và quy tắc bảo vệ kho bí mật.
Buổi 7
Ngày 13-14

Mục tiêu

  • Testing và CI
  • Chuẩn bị phát hành

Nội dung

  • Viết Unit/Widget/Integration tests bền vững; chiến lược mock network và đồng hồ thời gian.
  • Thiết lập CI cơ bản để chạy build/test/lint; tối ưu cache để rút ngắn pipeline.
  • Code signing cho Android/iOS: bảo quản chứng chỉ an toàn và quy trình gia hạn.
  • Chuẩn bị release notes: ghi nhận thay đổi, ảnh chụp màn hình và checklists QA.
Buổi 8
Ngày 15-16

Mục tiêu

  • Dự án tổng kết
  • Trình bày sản phẩm

Nội dung

  • Hoàn thiện dự án cá nhân: rà soát requirements, kiểm tra lỗi hiếm và tối ưu kích thước bundle.
  • Tối ưu UI/UX: accessibility, màu tương phản, kích thước chạm và chuyển cảnh mượt mà.
  • Demo và phản biện: trình bày kiến trúc, quyết định kỹ thuật và kế hoạch vận hành sau phát hành.
  • Định hướng tiếp: lập backlog cải tiến hiệu năng, theo dõi crash/analytics và kế hoạch cập nhật phiên bản SDK.