CHƯƠNG 1. FLUTTER TRONG LẬP TRÌNH ỨNG DỤNG DI ĐỘNG 1.1 Ngôn Ngữ Lập Trinh Dart Dart là ngôn ngữ lập trình nên ứng dụng Flutter. Đây cũng là nguyên nhân tạo nên sự khác biệt và vượt trội của Flutter so với các ứng dụng di động khác 1.1 Lịch sử hình thành và phát triển của ngôn ngữ lập trình Dart Ngôn ngữ Dart là một ngôn ngữ lập trình được phát triển bởi Google, được thiết kế dé xây dựng các ứng dụng web, mobile va máy tính. Tháng 10 năm 2011 Dart được công bó lần đầu tiên tại sự kiện GOTO Conference ở Aarhus, Đan Mạch.
Mục tiêu của Dart là giải quyết những hạn chế của JavaScript và cung cấp một ngôn ngữ hiện đại, an toàn và nhanh chóng cho việc phát triển ứng dụng web. Sau 1 tháng, ngôn ngữ Dart 1.0 được phát hành, đưa ngôn ngữ này từ giai đoạn thử nghiệm sang một phiên bản ồn định. Năm 2013, Google Chrome trở thành trình duyệt đầu tiên hỗ trợ chính thức Dart VM (Virtual Machine), cho phép chạy mã Dart trực tiếp trên trình duyệt.0 SDK (Software Development Kit) được phát hành. Điều này là một bước quan trọng dé cung cấp công cụ và tài liệu cho các nhà phát triển Dart.5 được phát hành với hỗ trợ cho Flutter, một framework dé xay dựng ứng dung di động va web đa nền tảng.
Day là một dau mốc quan trong đánh dau cho sự phô biến của Flutter hiện nay. Hiện tại, Dart tiếp tục phát triển và được sử dụng rộng rãi trong cộng đồng phát triển đa nền tảng, đặc biệt là khi tích hợp với Flutter dé xây dựng ứng dụng di động và web.2 Ngôn ngữ lap trình Dart 1. Co bản về ngôn ngữ lập trình Dart Dart là ngôn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và sau đó được Ecma (ECMA-408) dùng làm tiêu chuẩn. Dart được sử dụng để xây dựng các ứng dụng web, desktop (Windows, MacOS) và thiết bị di động (Android, iOS).
Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế garbage-collected, sử dụng cú pháp giống với ngôn ngữ lập trình C dé dich mã tùy ý sang JavaScript. Nó hỗ trợ interface, mixin, abstract, generic, static typing và sound type (2 cái cuối có thể hiểu là type-safe). Dart là ngôn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub. [2] VŨ LAN PHƯƠNG - D19CQAT02-B Đồ án tốt nghiệp Ngôn ngữ lập trình Dart là một ngôn ngữ hiện dai được thiết kế chủ yêu dé phát triển ứng dụng web, đi động và máy tính.
Dart là một ngôn ngữ hướng đối tượng (OOP). Nó hỗ trợ các khái niệm cơ bản của lập trình hướng đối tượng như class, object, inheritance, va encapsulation. Dart là một ngôn ngữ kiểu tinh (statically typed), cần khai báo kiểu dữ liệu của biến trước khi sử dụng và kiểm tra kiểu tại thời điểm biên dịch. Dart thường được sử dụng chủ yếu trong ngữ cảnh của Flutter, một framework phô biến để xây dựng giao diện người dùng đa nền tảng.
Flutter sử dụng Dart làm ngôn ngữ chính đề viết mã nguồn ứng dụng di động và web. Cú pháp của Dart tương đối đơn giản và dễ đọc, giống với nhiều ngôn ngữ lập trình khác như JavaScript hoặc Java. Điều này giúp người phát triển mới tiếp cận ngôn ngữ một cách nhanh chóng. Dart có khả năng chạy trên nhiều nền tảng khác nhau, bao gồm di động, web và desktop, giúp tối ưu hóa quá trình phát triển ứng dụng đa nên tảng.
Dart Platform Công nghệ biên dịch linh hoạt cua Dart cho phép lập trình viên thực thi ma Dart theo nhiêu cách khác nhau, tùy thuộc vào nên tảng và mục tiêu cụ thê, bao gôm: Stateful hot reload EB: ono OO Ff ARM32 ARM64 x86_64 JavaScript Dart Native Dart Web Hinh 1.1 Dart da nén tang 1. Native platform (nền tang tự nhiên) Trong quá trình phát triển, chu kỳ phat triển nhanh là yếu tố quan trong dé có khả năng thử nghiệm nhanh chóng. DartVM cung cấp một trình biên dịch ngay lập tức VŨ LAN PHƯƠNG - DI9CQAT02-B 13 Đồ án tốt nghiệp (just-in-time - JIT) với khả năng biên dịch giai đoạn (cho phép hot reload), thu thập sô liệu trực tuyến (dé hỗ trợ DevTools), và hỗ trợ gỡ lỗi phong phú. Khi ứng dụng sẵn sàng triển khai vào sản xuất - cho dù đang xuất bản vào cửa hàng ứng dụng hay triển khai backend - trình biên dịch trước thời điểm (ahead-of-time - AOT) của Dart có thé biên dịch thành mã máy native ARM hoặc x64.
Ứng dụng được biên dich AOT khởi chạy với thời gian khởi động ngăn và đồng nhất. Mã được biên dịch AOT chạy bên trong một runtime Dart hiệu quả, tuân theo hệ thống kiểu Dart sound và quản lý bộ nhớ bằng cách sử dụng cơ chế phân phối đối tượng nhanh chóng và bộ thu gom rác theo thế hệ. Web platform (nền tang web) Dart Web cho phép chạy mã Dart trên các nền tảng web duoc hỗ trợ bởi JavaScript. Với Dart Web, lập trình viên biên dịch mã Dart thành mã JavaScript, sau đó chạy mã đó trong trình duyệt, vi dụ như V8 trong Chrome.
Dart Web bao gồm hai chế độ biên dich: Trình biên dich phát triển tăng cường (incremental) cho phép chu kỳ phát triển nhanh chóng và Trình biên dịch tối ưu hóa sản xuất biên dịch mã Dart thành mã JavaScript nhanh, gọn và có thê triển khai.2 Công nghệ Flutter trong lập trình app mobile 1.1 Giới thiệu Flutter Flutter là một SDK phát triển ứng dụng di động nguồn mở được phát triển bởi Google. Nó được sử dụng dé phát triển ứng ứng dụng cho Android va iOS, cũng là phương thức chính dé phát triển ứng dụng cho Google Fuchsia. Phiên bản đầu tiên của Flutter được gọi là "Sky" và chạy trên hệ điều hành Android. Flutter được phát triển bởi một nhóm tại Google, được dẫn đầu bởi Kasper Lund và Erik Ernst, được ccông bồ tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu để có thé kết xuất ôn định ở mức 120 khung hình trên giây.
Trong bài phát biểu chính ở hội nghị Google Developer Days tại Thượng Hai, Google công bố phiên bản Flutter Release Preview 2, đây là phiên bản lớn cuối cùng trước Flutter 1. Lúc nay, Flutter chủ yếu tập trung vào ứng dụng di động, đặc biệt là iOS va Android. Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 đã được phát hành tại sự kiện Flutter Live, là phiên ban Beta release đầu tiên của framework này. Sự xuất hiện của các tính năng mới và sự 6n định của framework đã thu hút sự chú ý của cộng đồng phát trién.
Tháng 12 cùng năm đó đánh dấu bước đột phá quan trọng khi Flutter trở thành một framework ôn định và chính thức, hỗ trợ đa nền tảng và kha năng hot reload giúp tăng cường trải nghiệm phat trién. VŨ LAN PHƯƠNG - D19CQAT02-B Đồ án tốt nghiệp Năm 2019 — 2020, Flutter mở rộng hỗ trợ cho nhiêu nên tảng hơn, bao gom web va desktop (Windows, macOS, Linux). Cộng đồng Flutter phát triển nhanh chóng với sự tham gia của nhiều công ty và nhà phát triển.0 được phát hành với nhiều cải tiến đáng kể. Trong đó, đặc biệt phải ké tới Null safety, một tính năng quan trọng, được giới thiệu dé cải thiện an toàn và sự 6n định trong mã nguồn Flutter.
[4] Cho tới hiện tại, Flutter trở thành một trong những framework phổ biến nhất cho phát triển ứng dụng di động và đa nền tảng. Flutter đã phát triển nhanh chóng và trở thành một lựa chọn quan trọng cho các nhà phát triển khi xây dựng ứng dụng di động. Sự liên tục cập nhật và cải tiễn đã giúp Flutter đáp ứng được nhu cầu ngày càng tăng của cộng đồng phát triển.2 Da nền tảng và Mô hình "One Framework" Flutter được thiết kế dé hỗ trợ phát triển ứng dụng trên nhiều nền tảng khác nhau, bao gồm di động (Android, iOS), web và máy tính desktop (Windows, macOS, Linux). Khả năng này giúp nhà phát triển giảm thiểu sự phức tạp của việc duy trì và phát triển nhiều mã nguồn cho từng nên tang riêng biệt.
Mô hình "One Framework" là mô hình sử dụng cùng một framework dé xây dựng ứng dụng trên tất cả các nền tảng. Nhà phát triển có thể viết mã nguồn một lần (write once) và chạy ứng dụng trên mọi nên tảng mà không cân sửa đôi đáng kê. Mô hình "One Framework" giúp đảm bảo rằng hiệu suất của ứng dụng không giảm đi khi chuyển đổi giữa các nền tảng. Điều này có ý nghĩa đặc biệt quan trọng khi triển khai ứng dụng trên nhiều thiết bị.
Việc đồng bộ hóa phát triển giữa các nhóm làm việc trên các nền tảng khác nhau trở nên dé dang hơn, giúp tăng cường hiệu suất làm việc và giảm thiêu lỗi. Đồng thời, Flutter cung cấp một loạt các tính năng và widget đồng nhất trên tất cả các nền tảng, bao gồm cả giao diện người dùng và tương tác. Điều này giúp duy trì một trải nghiệm đồng nhất cho người dùng cuối trên mọi thiết bị. Mô hình "One Framework" trong Flutter là một ưu điểm quan trọng giúp tối ưu hóa quy trình phát triển và đảm bao rang ứng dụng có khả năng chạy mượt mà và hiệu quả trên nhiêu nên tảng khác nhau.3 Kiến trúc Flutter Flutter là một framework dành cho việc lập trình di động Cross-Platform, nó giúp các lập trình viên có thé tạo ra các ứng dụng chạy trên nhiều nền tảng như Web, Android, iOS (hiện tai va dự định tương lai Flutter còn có thể build được ứng dụng chạy trên cả Window, MacOS và Linux nữa).
Flutter cho phép các nhà phát triển tối VŨ LAN PHƯƠNG - D19CQAT02-B 15 Đồ án tốt nghiệp ưu các ứng dụng hiệu suât cao mang lại cảm giác tự nhiên trên các nên tảng khác nhau, năm bắt những khác biệt nơi chúng tôn tại trong khi chia sẻ với tư cách nhiêu mã nhât có thê. Flutter được thiết kế như một hệ thống linh hoạt, có cấu trúc lớp. Nó ton tại dưới dạng một loạt các thư viện độc lập mà mỗi thư viện phụ thuộc vào lớp dưới. Không có lớp nào có quyền truy cập đặc quyền vào lớp phía dưới, và mọi phần của cấp độ framework được thiết kế đề có thể thay thế và tuỳ chọn.
Fram Dart rk Material Cupertino Widgets Rendering Animation Painting Gestures Foundation Engine C/C++ Service Protocol Composition Platform Channels Dart Runtime Mgmt Frame Scheduling Embedder : : Platform-specific Render Surface Setup Native Plugins App Packaging Thread Setup Event Loop Interop Hình 1.2 Mô hình kiến trúc của Flutter Đối với hệ điều hành cơ bản, các ứng dụng Flutter được đóng gói trong giống như những ứng dụng native khác. Một Embedder cụ thể cho từng nền tảng cung cấp một điểm nhập; tương tác với hệ điều hành cơ bản đề truy cập các dịch vụ như bề mặt vẽ, khả năng tiếp cận, và đầu vào; và quản lý vòng sự kiện thông điệp.