Chương 1. TỔNG QUAN VỀ FRONTEND. Lịch sử phát triển. Thời kỳ desktop applications.
Thời kỳ web applications. Thời kỳ JavaScript. Sự phát triển của CSS. Cách mạng jQuery.
Thời kỳ mobile applications. Thời kỳ cross platform applications. Thời kỳ progressive web applications. Thời kỳ responsive design.
Framework trỗi dậy. Công nghệ Frontend. Các ngôn ngữ lập trình và framework. Các framework Frontend phổ biến.
Các xu hướng công nghệ phổ biến. Artificial Intelligence và Machine Learning. Single-Page Application. Progressive Web Apps.
Server-Side Rendering. Low Code Development. Micro Front End Architecture. Mobile-First Approach .Voice User Interface.
CÁC KIẾN TRÚC PHỔ BIẾN. Cấu trúc mô hình MVC. Hoạt động của mô hình MVC. Lợi ích của việc sử dụng mô hình MVC.
Các ngôn ngữ và framework sử dụng mô hình MVC. Cấu trúc của mô hình MVP. Hoạt động của mô hình MVP. Sự khác biệt giữa MVC và MVP.
Lợi ích của việc sử dụng mô hình MVP. Các ngôn ngữ và framework sử dụng mô hình MVP. Cấu trúc của mô hình MVVM. Hoạt động của mô hình MVVM.
Sự khác biệt giữa MVC/MVP và MVVM. Lợi ích của việc sử dụng mô hình MVVM. Các ngôn ngữ và framework sử dụng mô hình MVVM. Cấu trúc của mô hình component-based.
Hoạt động của mô hình component-based. Lợi ích của việc sử dụng mô hình component-based. Các ngôn ngữ và framework sử dụng mô hình component-based. Cấu trúc của mô hình micro Frontend.
Hoạt động của mô hình micro Frontend. Lợi ích của việc sử dụng mô hình micro Frontend. Các công nghệ và framework sử dụng mô hình micro Frontend. Kiến trúc Flux.
Cấu trúc của kiến trúc Flux. Hoạt động của kiến trúc Flux. Lợi ích của việc sử dụng kiến trúc Flux. Các công nghệ và framework sử dụng kiến trúc Flux.
Kiến trúc Redux. Cấu trúc của kiến trúc Redux. Hoạt động của kiến trúc Redux. So sánh kiến trúc Redux so với kiến trúc Flux.
Các công nghệ và framework sử dụng kiến trúc Redux. CÁC VẤN ĐỀ CƠ BẢN CỦA FRONTEND. Hiển thị UI (UI Rendering). Phương thức xử lý.
UI Rendering trong React. React Virtual DOM. UI Rendering trong Flutter. Giải quyết vấn đề.
Tương tác trong React. Tương tác trong Flutter. Cách giải quyết. Form Validation với React.
Form Validation với Flutter. Tạo Frontend động (dynamic form). Công nghệ BEEKAI. Xây dựng form với nhiều bước (multi-step form builder).
Công nghệ React-hook. Các loại React Hooks. KHÁI QUÁT VỀ FLUTTER. Lịch sử phát triển.
Kiến trúc hệ thống Flutter. Ưu nhược điểm. Nhược điểm. Hiện trạng, tiềm năng.
Refactor mã thành Widget thay vì phương thức. Kiểm soát chi phí phương thức build. Sử dụng state management. Xác định rõ ràng kiến trúc.
Tuân theo Dart style guide. Lựa chọn Package kỹ càng. Hạn chế sử dụng MediaQuery/LayoutBuilder. Chỉ sử dụng Streams khi cần thiết.
Sử dụng từ khóa const khi có thể .Giảm thiểu các hoạt động tốn kém .Sử dụng lazy builder .Giảm thiểu intrinsic operations .Sử dụng if thay vì conditional expression .Sử dụng ?? và ?. Trường hợp nên sử dụng. Phát triển ứng dụng di động đa nền tảng. Phát triển Web App.
Phát triển ứng dụng yêu cầu ổn định cao. Trường hợp không nên sử dụng. Ứng dụng có chức năng phụ thuộc cao đến hệ điều hành. Áp dụng thực tế tăng cường (Augmented Reality).
Khả năng Web hạn chế. Banking và Decentralized exchanges. SO SÁNH FLUTTER VỚI REACT NATIVE. Ngôn ngữ lập trình.
Kiến trúc kỹ thuật. Kiến trúc Flutter. Kiến trúc React Native. UI component và development API.
React Native Component. Năng suất của nhà phát triển. React Native DX. Hỗ trợ cộng đồng.
Cộng đồng Flutter. Cộng đồng React Native. Hỗ trợ Testing. React Native Testing.
Hỗ trợ tự động hóa Build và Release. Flutter Build and Release. React Native Build and Release. PHÂN TÍCH THIẾT KẾ ỨNG DỤNG.
Hiện trạng vấn đề. Phương hướng giải quyết. Phân tích yêu cầu ứng dụng. Phân tích thiết kế hệ thống.
Biểu đồ Use Case. Danh sách actors. Danh sách Use Case. Đặc tả Use Case.
Đặc tả Use Case đăng ký. Đặc tả Use Case đăng nhập. Đặc tả Use Case đăng xuất. Đặc tả Use Case đăng nhập với Google.
Đặc tả Use Case xem danh sách bài đăng. Đặc tả Use Case thêm bài đăng. Đặc tả Use Case yêu thích bài đăng. Đặc tả Use Case xoá bài đăng.
Đặc tả Use Case xem danh sách bình luận. Đặc tả Use Case thêm bình luận. Đặc tả Use Case xoá bình luận. Đặc tả Use Case chỉnh sửa thông tin tài khoản.
Mô hình cơ sở dữ liệu. Mô tả giao diện ứng dụng. Giao diện đăng ký. Giao diện đăng nhập.
Giao diện trang chủ. Giao diện danh sách bình luận. Giao diện thêm bài đăng. Giao diện quản lý thông tin tài khoản.
Cài đặt ứng dụng. Kết quả đạt được. Hướng phát triển. 127 xi DANH MỤC HÌNH Hình 1.
HTML, CSS, JavaScript tạo nên trang web. Cách AJAX hoạt động. Các tính năng của NodeJS. Một số phương thức trong jQuery.
Luồng hoạt động của PWA. Số lượng framework đồ sộ khi chỉ mới tính riêng cho JS. IDE và text editor. Đa dạng ngôn ngữ lập trình.
Server-side rendering. Mô phỏng luồng hoạt động của MVC. Các ngôn ngữ và framework sử dụng MVC. Mô hình MVP.
Mô hình MVC. Cấu trúc mô hình MVVM. Các thành phần của kiến trúc Flux. Cấu trúc của kiến trúc Redux.
React thể hiện component thành view. React Virtual DOM. Quy trình render Widget của Flutter. Mẫu mã lệnh sử dụng thư viện yup và react-hook-form.
Mẫu mã lệnh sử dụng formik. Mẫu mã lệnh sử dụng react-hook-form. Mẫu mã lệnh sử dụng TextFormField. Gói form_bloc hỗ trợ cho Flutter.
Tổ chức cấu trúc trang và các form câu hỏi bằng bảng điều khiển (control panel) và phương thức drag-and-drop. Thiết kế chủ đề. Tự tạo code (Code Generation): Tự động xây dựng ứng dụng bằng ngôn ngữ HTML hoặc React Hook Form. Flow control của BEEKAI.
BEEKAI có khả năng duy trì khả năng đáp ứng người dùng trên mọi nền tảng. Kết quả phân tích của BEEKAI. Giao diện theo dõi hồ sơ của BEEKAI. Xuất bản dữ liệu theo dõi người dùng.
Ngôn ngữ Dart. Tóm tắt lịch sử Flutter. Kiến trúc Flutter. Mô tả roadmap của Flutter.
Kiến trúc BLOC. Kiến trúc Provider sử dụng ChangeNotifier. Ví dụ sử dụng lazy builder. Ví dụ sử dụng toán tử ??.
Hạn chế của Flutter cho Web. Tencent Cloud Chat sử dụng Flutter. Chỉ số thành công của nhóm phát triển khi sử dụng Flutter. Ứng dụng Xianyu sử dụng Flutter.
Chỉ số thành công của nhóm phát triển eBay. Ứng dụng eBay Motors. Chỉ số thành công của nhóm phát triển Nubank. Ứng dụng Nubank liên kết với thẻ vật lý.
Skia – Flutter high performance rendering engine. Mô tả kiến trúc 2 luồng của React Native. React Native giao tiếp với nền tảng native thông qua cơ chế cầu nối Bridge. Mô tả Widget thông qua Widget tree của Flutter inspector.
React Native lấy cảm hứng component từ React, chỉ khác môi trường chạy ứng dụng. Ví dụ ứng dụng React Native. Sơ đồ Use Case tổng quát. Sơ đồ Use Case cho module bài đăng.
Sơ đồ Use Case cho module bình luận. Giao diện đăng ký. Giao diện đăng nhập. Giao diện trang chủ.
Giao diện trang chủ khi mở menu mở rộng của bài đăng. Giao diện danh sách bình luận. Giao diện danh sách bình luận khi mở menu mở rộng của bình luận. Giao diện thêm bài đăng.
Giao diện thêm bài đăng khi mở menu mở rộng chọn ảnh. Giao diện quản lý thông tin tài khoản. Giao diện quản lý thông tin tài khoản khi mở menu mở rộng chọn ảnh.125 xiv DANH MỤC BẢNG Bảng 5.1 So sánh hiệu suất của Flutter và React Native .1 Danh sách actors .2 Danh sách Use Case .3 Đặc tả Use Case đăng ký.4 Đặc tả Use Case đăng nhập .5 Đặc tả Use Case đăng xuất .6 Đặc tả Use Case đăng nhập với Google .7 Đặc tả Use Case xem danh sách bài đăng .8 Đặc tả Use Case thêm bài đăng .9 Đặc tả Use Case yêu thích bài đăng .10 Đặc tả Use Case xoá bài đăng .11 Đặc tả Use Case xem danh sách bình luận .12 Đặc tả Use Case thêm bình luận .13 Đặc tả Use Case xoá bình luận.14 Đặc tả Use Case chỉnh sửa thông tin tài khoản .15 Danh sách các tập (NoSQL Collections) .19 Mô tả giao diện đăng ký .20 Mô tả giao diện đăng nhập .21 Mô tả giao diện trang chủ .22 Mô tả giao diện danh sách bình luận .23 Mô tả giao diện thêm bài đăng .24 Mô tả giao diện quản lý thông tin tài khoản .126 xv TÓM TẮT ĐỒ ÁN Đồ án tập trung vào tìm hiểu và nghiên cứu về Flutter nói riêng và nhánh Frontend nói riêng, một trong những ngành nghề phổ biến nhất trong cộng đồng lập trình viên hiện nay. Đồ án tập trung nghiên cứu về quá trình phát triển của ngành Frontend, các xu hướng phát triển hiện nay như tích hợp AI, AR, responsive application và xu thế chuyển sang các ứng dụng chạy đa nền tảng.
Đồ án cung cấp một cái nhìn rõ hơn về những điều cần lưu ý trong quá trình xây dựng một ứng dụng xét về mặt Frontend, những kiến trúc phổ biến và những best practice để tối ưu hiệu suất của ứng dụng. Ở cuối đồ án là một ứng dụng mạng xã hội đơn giản, mục đích chính để thể hiện khả năng chạy đa nền tảng của Flutter. TỔNG QUAN VỀ FRONTEND 1. Frontend là gì Frontend, còn được gọi là client-side đề cập đến phần của ứng dụng phần mềm hoặc trang web mà người dùng tương tác trực tiếp.
Nó bao gồm các yếu tố giao diện người dùng (UI) và trải nghiệm người dùng (UX) của một hệ thống. Phát triển Frontend liên quan đến việc tạo và triển khai các yếu tố trực quan, chẳng hạn như trang web, biểu mẫu, nút, menu và các tính năng tương tác khác mà người dùng thấy và tương tác khi sử dụng một ứng dụng hoặc trang web. Phát triển front-end thường bao gồm sự kết hợp của các công nghệ, bao gồm HTML để cấu trúc nội dung, CSS để thiết kế và bố trí và JavaScript để thêm tính tương tác và chức năng vào các trang web. Các nhà phát triển front-end làm việc để đảm bảo rằng giao diện người dùng thân thiện, hấp dẫn mắt và phản hồi trên các thiết bị và kích thước màn hình khác nhau.