Showing posts with label Ngôn ngữ lập trình Dart. Show all posts
Showing posts with label Ngôn ngữ lập trình Dart. Show all posts

Ngôn ngữ lập trình Dart [Phụ lục: Dart] [ Tự học Flutter]

Ngôn ngữ lập trình Dart.

Nếu bạn đã từng học qua C++, Java hay C# ở trường, các bạn sẽ thấy Dart cực kỳ gần gũi và rất dễ học. 

Ngôn ngữ lập trình Dart [Phụ lục: Dart] [ Tự học Flutter]


1. Tổng quan về ngôn ngữ Dart

Dart là một ngôn ngữ lập trình mã nguồn mở do chính Google phát triển và ra mắt lần đầu vào năm 2011. Mặc dù ban đầu được định hướng để thay thế JavaScript trên nền tảng web, nhưng ngày nay Dart nổi tiếng nhất với vai trò là "linh hồn" của framework Flutter, cho phép lập trình viên phát triển ứng dụng di động, web và desktop từ một nguồn code duy nhất.

Những điểm "ăn tiền" của Dart:

  • Vừa biên dịch JIT vừa AOT: Trong lúc code, Dart dùng cơ chế JIT (Just-In-Time) để biên dịch cực nhanh, hỗ trợ tính năng Hot Reload hiển thị thay đổi ngay lập tức. Khi phát hành app, Dart dùng AOT (Ahead-Of-Time) để biên dịch code ra thẳng mã máy (ARM hoặc x64), giúp ứng dụng chạy mượt mà như app native.
  • An toàn Null (Sound Null Safety): Dart áp dụng cơ chế ép buộc biến không được phép chứa giá trị null trừ khi các em cho phép. Điều này giúp loại bỏ hoàn toàn nỗi ám ảnh lỗi "NullPointerException" khi app đang chạy.

2. Cú pháp và các thành phần cơ bản

Hàm main()

Cũng giống như C hay Java, mọi chương trình Dart đều bắt buộc phải bắt đầu từ hàm main(). Đây là cánh cửa đầu tiên để ứng dụng khởi chạy.

Khai báo biến (Variables)

Dart là ngôn ngữ có kiểu tĩnh, nhưng lại rất thông minh trong việc tự suy luận kiểu dữ liệu. Các bạn có thể chỉ định rõ kiểu dữ liệu như int (số nguyên), double (số thực), String (chuỗi), bool (đúng/sai) hoặc dùng từ khóa var để Dart tự đoán kiểu. Lưu ý: Mọi câu lệnh trong Dart đều phải kết thúc bằng dấu chấm phẩy ;.

Hàm (Functions)

Trong Dart, các em có thể viết hàm truyền thống hoặc viết hàm cực kỳ ngắn gọn bằng cú pháp mũi tên => nếu hàm đó chỉ có một dòng code trả về giá trị.

Ví dụ minh họa cơ bản:

// 1. Hàm tính tổng hai số (dùng cú pháp mũi tên ngắn gọn)
int tinhTong(int a, int b) => a + b;

// 2. Hàm main khởi chạy chương trình
void main() {
  // Khai báo biến có định kiểu rõ ràng
  String loiChao = "Chào mừng các em sinh viên IT!";
  int namHoc = 2024;

  // Dùng 'var', Dart tự hiểu đây là số thập phân (double)
  var diemTrungBinh = 8.5;

  // In ra màn hình console
  print(loiChao);
  print("Năm học: $namHoc"); // Chèn biến vào chuỗi bằng dấu $

  // Gọi hàm
  int ketQua = tinhTong(5, 7);
  print("Kết quả 5 + 7 = $ketQua");
}

3. Lập trình Hướng đối tượng (OOP) với Dart

Dart là một ngôn ngữ thuần hướng đối tượng (Object-Oriented Programming). Điều này có nghĩa là mọi thứ trong Dart (thậm chí cả số nguyên, hay chuỗi) đều là các đối tượng (Objects). Dart hỗ trợ đầy đủ các tính chất của OOP như: Lớp (Class), Kế thừa (Inheritance), và Đa hình (Polymorphism).

Dưới đây là một ví dụ minh họa cách tạo Class và Kế thừa trong Dart:

// Tạo một Class cơ sở (Class cha)
class Nguoi {
  // Các thuộc tính
  String ten;
  int tuoi;

  // Hàm khởi tạo (Constructor) viết cực kỳ ngắn gọn của Dart
  Nguoi(this.ten, this.tuoi);

  // Phương thức (Method)
  void gioiThieu() {
    print("Xin chào, tôi là $ten, $tuoi tuổi.");
  }
}

// Lớp SinhVien kế thừa từ lớp Nguoi (dùng từ khóa extends)
class SinhVien extends Nguoi {
  String maSV;

  // Kế thừa Constructor của lớp cha dùng từ khóa super
  SinhVien(String ten, int tuoi, this.maSV) : super(ten, tuoi);

  // Ghi đè (Override) phương thức của lớp cha để thể hiện tính Đa hình
  @override
  void gioiThieu() {
    print("Xin chào, em là sinh viên $ten (Mã SV: $maSV). Em $tuoi tuổi.");
  }
}

void main() {
  // Tạo đối tượng từ Class
  Nguoi giangVien = Nguoi("Thầy Hùng", 35);
  giangVien.gioiThieu(); // In ra: Xin chào, tôi là Thầy Hùng, 35 tuổi.

  SinhVien sinhVien = SinhVien("An", 20, "SV12345");
  sinhVien.gioiThieu(); // In ra: Xin chào, em là sinh viên An (Mã SV: SV12345). Em 20 tuổi.
}

Giải thích nhanh: Trong ví dụ trên, class SinhVien đã kế thừa (extends) lại các thuộc tính tentuoi từ class Nguoi. Dart cung cấp một cách viết hàm khởi tạo Constructor rất ưu việt là gán thẳng tham số vào thuộc tính this.ten giúp tiết kiệm rất nhiều dòng code.

📝 Bài tập củng cố

Để biến kiến thức vừa học thành kỹ năng của mình, các bạn hãy mở DartPad - công cụ chạy code Dart trực tuyến ngay trên trình duyệt, và thực hiện bài tập nhỏ sau:

Yêu cầu:

  1. Tạo một class có tên là SanPham (Sản phẩm).
  2. Class này có 3 thuộc tính: tenSP (String), donGia (double), và soLuong (int).
  3. Tạo một hàm khởi tạo (Constructor) để gán giá trị cho 3 thuộc tính này.
  4. Viết một phương thức tinhTongTien() trả về kết quả là donGia * soLuong.
  5. Viết một phương thức inThongTin() để in ra màn hình: "Sản phẩm: [tenSP] - Tổng tiền: [Kết quả của hàm tinhTongTien]".
  6. Trong hàm main(), hãy tạo 2 đối tượng sản phẩm bất kỳ (ví dụ: Điện thoại, Laptop) và gọi hàm inThongTin() của từng đối tượng.


Hướng dẫn tự học lập trình Flutter với Dart trên Android Sutudio

1. Tổng quan về Flutter

Flutter là một bộ công cụ giao diện người dùng (UI framework) mã nguồn mở do Google tạo ra và ra mắt vào năm 2017. Điểm "ăn tiền" lớn nhất của Flutter là khả năng phát triển ứng dụng đa nền tảng (Cross-platform) chỉ với một mã nguồn (single codebase).

Thay vì phải học Java/Kotlin để viết app cho Android, rồi lại phải học Swift/Objective-C để viết app cho iOS, bạn chỉ cần học Flutter là có thể build app chạy mượt mà trên cả 2 hệ điều hành này,. Hiện nay, Flutter còn hỗ trợ build ra cả Web và các ứng dụng Desktop (Windows, macOS, Linux).

Flutter không sử dụng các thành phần giao diện mặc định của hệ điều hành mà tự vẽ lại mọi pixel trên màn hình bằng engine đồ họa riêng (Skia/Impeller), giúp ứng dụng có hiệu năng cực kỳ ấn tượng (có thể đạt 60-120fps) và giao diện nhất quán trên mọi thiết bị,. Rất nhiều ông lớn đang sử dụng Flutter như: chính Google (Google Pay), Alibaba, BMW, Toyota, v.v.,.

Hướng dẫn tự học lập trình Flutter với Dart trên Android Sutudio
Hướng dẫn tự học lập trình Flutter với Dart trên Android Sutudio (nguồn NotebookLM)


2. Giới thiệu ngôn ngữ lập trình Dart

Để học Flutter, bạn bắt buộc phải làm quen với ngôn ngữ lập trình Dart. Đây cũng là một ngôn ngữ do Google phát triển, được tối ưu hóa riêng cho việc xây dựng giao diện người dùng.

Nếu bạn đã từng học C++, C# hay Java ở trường đại học, bạn sẽ thấy Dart cực kỳ "quen mặt". Dart là ngôn ngữ kiểu tĩnh (statically typed), hỗ trợ lập trình hướng đối tượng (OOP) hoàn chỉnh với các khái niệm quen thuộc như Class, Interface, Mixin, Kế thừa....

Một số điểm thú vị của Dart khi kết hợp với Flutter:

  • Hot Reload: Dart hỗ trợ biên dịch Just-In-Time (JIT) trong quá trình phát triển. Điều này cho phép tính năng "Hot Reload" hoạt động – bạn vừa sửa code, lưu lại là giao diện app trên điện thoại cập nhật ngay lập tức trong chưa tới 1 giây mà không cần khởi động lại app,.
  • Null Safety: Dart áp dụng cơ chế an toàn null (Sound Null Safety), giúp bạn tránh được lỗi "NullPointerException" khét tiếng, làm cho code an toàn và ít lỗi vặt hơn,.

3. Các bước cài đặt Flutter trên Android Studio

Để lập trình Flutter, bạn cần cài đặt Flutter SDK và một IDE (môi trường lập trình). Android Studio hoặc Visual Studio Code là 2 lựa chọn phổ biến nhất,. Ở đây, chúng ta sẽ dùng Android Studio vì nó tích hợp sẵn các công cụ máy ảo rất tiện lợi.

Bước 1: Tải và cài đặt Flutter SDK

  • Truy cập link tải chính thức: Tải Flutter SDK.
  • Tải file .zip dành cho Windows (hoặc macOS/Linux tùy máy bạn).
  • Giải nén thư mục (Lưu ý: Không nên để trong C:\Program Files, hãy để ở nơi dễ truy cập như C:\src\flutter).
  • Cấu hình biến môi trường (PATH): Mở Environment Variables trên Windows, tìm biến Path, thêm đường dẫn C:\src\flutter\bin vào để máy tính nhận diện được lệnh flutter.

Bước 2: Tải và cài đặt Android Studio

  • Truy cập link tải: Tải Android Studio.
  • Cài đặt bình thường (cứ bấm Next và chọn Standard Installation). Đảm bảo Android SDK và Android Emulator được tick chọn để cài đặt.

Bước 3: Cài đặt Plugin Flutter trong Android Studio

  • Mở Android Studio lên.
  • Vào mục Plugins (hoặc File -> Settings -> Plugins),.
  • Tìm kiếm từ khóa Flutter và nhấn Install. Nó sẽ yêu cầu bạn cài thêm plugin Dart, bạn cứ chọn đồng ý.
  • Khởi động lại (Restart) Android Studio.

Bước 4: Kiểm tra cài đặt

  • Mở Command Prompt (CMD) hoặc Terminal, gõ lệnh: flutter doctor,.
  • Công cụ này sẽ kiểm tra xem bạn còn thiếu gì không. Nếu thấy tất cả đều có dấu tích xanh [✓], xin chúc mừng, bạn đã cài đặt thành công!. (Nếu có lỗi yêu cầu chấp nhận Android License, chỉ cần gõ flutter doctor --android-licenses và bấm 'y' cho đến hết,).

4. Các bước tạo và chạy 1 ứng dụng đầu tiên

Bây giờ chúng ta sẽ làm ứng dụng "Hello World" huyền thoại nhé:

Bước 1: Tạo project

  • Mở Android Studio, chọn New Flutter Project,.
  • Đảm bảo đường dẫn "Flutter SDK path" trỏ đúng vào thư mục Flutter bạn đã giải nén (VD: C:\src\flutter).
  • Đặt tên project (lưu ý viết chữ thường và dùng dấu gạch dưới, ví dụ: hello_flutter), sau đó nhấn Finish,.

Bước 2: Xóa code mẫu và viết code mới Flutter sẽ tự sinh ra một thư mục project. Hãy nhớ nguyên tắc: 90% thời gian code của bạn sẽ nằm trong thư mục lib/. Mở file lib/main.dart, xóa hết toàn bộ code có sẵn đi và chép đoạn code cực kỳ đơn giản sau đây vào:

import 'package:flutter/material.dart';

// Hàm main là nơi chương trình bắt đầu chạy
void main() {
  runApp(const MyApp());
}

// Tạo một Widget cơ bản
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text(
            'Hello World - Chào sinh viên IT!',
            style: TextStyle(fontSize: 24, color: Colors.blue),
          ),
        ),
      ),
    );
  }
}

Giải thích code nhanh: Mọi thứ trong Flutter đều là Widget (thành phần giao diện). MaterialApp là khung chứa app, Scaffold cung cấp cấu trúc màn hình cơ bản, Center giúp căn giữa nội dung, và Text dùng để hiển thị chữ.

Bước 3: Chạy ứng dụng

  • Bạn có thể cắm điện thoại thật vào máy tính (nhớ bật USB Debugging) hoặc chọn một máy ảo (Emulator) ngay trên thanh công cụ của Android Studio hoặc chạy trực tiếp trên trình duyệt Chrome,.
  • Nhấn nút Run (biểu tượng hình tam giác màu xanh),.
  • Đợi một lát để code biên dịch, và Bùm! Dòng chữ "Hello World" đã hiện lên màn hình điện thoại của bạn.

5. Một số tài liệu tham khảo hữu ích

Để tự học Flutter ở mức cơ bản đến nâng cao, bạn có thể lưu lại các trang web "gối đầu giường" sau:

  1. Trang chủ Flutter (Tiếng Anh): Nơi chứa mọi tài liệu chính thống, chính xác nhất từ Google.
  2. Trang chủ ngôn ngữ Dart (Tiếng Anh): Giúp bạn tra cứu cú pháp và cách hoạt động của Dart.
  3. DartPad (Lập trình trực tuyến): Nếu máy yếu chưa kịp cài đặt IDE, bạn có thể lên đây gõ code Dart/Flutter và xem kết quả ngay trên trình duyệt web.
  4. Học qua series bài viết tiếng Việt (Viblo / Cafedev / 200Lab): Rất nhiều lập trình viên Việt Nam chia sẻ các bài hướng dẫn chi tiết từ biến, hàm cho đến cách chia bố cục màn hình.
  5. Kho mã nguồn mở (Pub.dev): Khi bạn cần dùng thư viện bên ngoài (như gọi API, lưu dữ liệu), hãy lên đây tìm kiếm.

Chúc các bạn sinh viên IT có những giờ phút "code dạo" thật thú vị và sớm hoàn thành được những chiếc app xịn xò của riêng mình nhé!

Nếu bạn muốn có nguồn thu tự động, hoàn toàn miễn phí và vô cùng đơn giản thì có thể tham khảo app kiếm tiền Honeygain và EarnApp tại đây.

Nguồn NotebookLM

Categories

AI (13) AI programming (1) ASP (1) Android (32) App Honeygain (5) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (109) Bản đồ tư duy (1) C Plus Plus (103) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (2) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn kiếm tiền online tại nhà (7) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (131) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (11) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (9) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MMO (7) MS Access (1) Machine learning (2) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (3) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SEO (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (51) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (3) Toán rời rạc (13) Treo máy kiếm tiền (3) Trí tuệ nhân tạo (18) Tài liệu tham khảo (5) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (9) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (5) hợp ngữ (8) lập trình viên (3) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (4) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)