Chương 3 CƠ SỞ LÝ THUYẾT
3.1. Tổng quan về Flutter
3.1.1. Khái niệm
Flutter là UI Framework mã nguồn mở miễn phí phát triển ứng dụng đa nền tảng dành cho di động, tạo bởi Google và phát hành vào tháng 5 năm 2017.
Flutter gồm 2 thành phần quan trọng:
Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn phát triển các ứng dụng của mình. Điều này bao gồm các cơng cụ để biên dịch mã của bạn thành mã máy gốc (mã cho iOS và Android).
Một Framework (UI Library based on widgets): Một tập hợp các thành phần UI có thể tái sử dụng (button, text inputs, slider,...) giúp bạn có thể cá nhân hóa tùy theo nhu cầu của riêng mình.
3.1.2. Kiến trúc
12
Flutter được xây dựng với C/C++, Dart, Skia (2D rendering engine), Flutter compile toàn bộ code trực tiếp thành code ARM x86 từ đó có thể dễ dàng sử dụng GPU của thiết bị cũng như gọi các API native một các dễ dàng.
Flutter cung cấp các widgets (bao gồm cả Material Design và Cupertino (IOS styled) widgets), được quản lý và render bởi Flutter’s framework và engine. Flutter cịn tích hợp cả animation, rendering, widgets, gestures vào trong framework để lập trình viên có thể tinh chỉnh giao diện đến tận pixel với hiệu năng cực tốt. Nhờ vậy, Với Flutter, khơng có giới hạn nào về giao diện.
3.2. Tổng quan về Dart 3.2.1. Khái niệm
Dart là ngơn ngữ lập trình đa mục đích được phát triển bởi Google và sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn. Nó được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động.
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 kiểu C để dịch mã tùy ý sang JavaScript. Nó hỗ trợ interface, mixin, abstract, generic, static typing và sound type.
Dart là ngơn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub.
3.2.2. Đặc điểm
- Hỗ trợ lập trình hướng đối tượng OOP.
- Hỗ trợ HTML DOM framework để bạn khai thác DOM đa trình duyệt.
- Hỗ trợ lập trình khơng đồng bộ async.
- Hỗ trợ deferred loading từ Dart 1.6. Tính năng sẽ giúp bạn cải thiện được
hiệu suất khi khởi động ứng dụng bởi vì nó sẽ khởi tạo các package nào đang được sử dụng trong ứng dụng của bạn.
- Tích hợp với Polymer project để bạn xây dựng các web components và tái sử dụng lại trong các ứng dụng khác trong tương lai.
13
- Tích hợp với Angular để bạn có thể tạo ứng dụng web theo mơ hình MVC có thể dễ dàng bảo trì, dễ kiểm thử và clean code hơn.
- Hỗ trợ các thư viện toán học để bạn xây dựng các ứng dụng game và ứng
dụng liên quan đến việc tính tốn.
- Hỗ trợ các kiểu dữ liệu phố biến như số nguyên, chuỗi, số thực...
3.3. Tổng quan về Firebase 3.3.1. Khái niệm
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud. Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
3.3.2. Lịch sử phát triển
Gần một thập niên trước, Firebase ra đời với tiền thân là Envolve. Đây là một nền tảng đơn giản chuyên cung cấp những API cần thiết để tích hợp tính năng chat vào trang web. Bên cạnh ứng dụng nhắn tin trực tuyến, Envolve còn được người dùng sử dụng để truyền và đồng bộ hóa dữ liệu cho những ứng dụng khác như các trị chơi trực tuyến,… Do đó, các nhà sáng lập đã tách biệt hệ thống nhắn tin trực tuyến và đồng bộ dữ liệu thời gian thực thành hai phần riêng biệt.
Trên cơ sở đó, năm 2012, Firebase ra đời với sản phẩm cung cấp là dịch vụ Backend-as-a-Service. Tiếp đến, vào năm 2014, Google mua lại Firebase và phát triển nó thành một dịch vụ đa chức năng được hàng triệu người sử dụng cho đến hiện nay.