hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Dart Programming Basic
Packages trong Dart

Packages trong Dart

  • 07-06-2024
  • Toanngo92
  • 0 Comments

Mục lục

  • Packages trong Dart là gì?
  • Sự cần thiết của Packages trong Dart
  • Cách Sử Dụng
  • Các Loại Packages Dart
  • Packages Plugin
  • Tạo Packages Tự Định Nghĩa trong Dart
  • pubspec.yaml
  • .gitignore
  • README .md
  • CHANGELOG . md
  • Ví dụ về ứng dụng đơn giản sử dụng một User-defined Package

Packages trong Dart là gì?

Packages Dart là một tập hợp các tệp được tổ chức có thể được sử dụng để tạo ra một thư viện phần mềm hoặc một công cụ. Để phát triển ứng dụng, người ta có thể sử dụng các thư viện hoặc gói tích hợp cũng như gói của bên thứ ba. Dart có một bộ Packages mặc định như math, html và collections được tải tự động khi bắt đầu ứng dụng Dart console. Dart cũng hỗ trợ việc tạo ra các gói được xác định bởi người dùng.

Sự cần thiết của Packages trong Dart

Một gói Dart chứa một hoặc một tập hợp các chức năng giúp chúng ta giải quyết các vấn đề hoặc thêm các tính năng mới vào ứng dụng. Nó cũng giúp giải quyết các vấn đề mà không cần phải viết mã từ đầu. Ví dụ, hãy nói chúng ta đang xây dựng một ứng dụng yêu cầu tính năng hội nghị video. Việc triển khai gói hoặc viết mã từ đầu có thể là một công việc đầy tốn thời gian và phiền toái. Trong trường hợp như vậy, có khả năng rằng một gói có thể đã tồn tại có thể xử lý tính năng hội nghị video. Do đó, gói này có thể dễ dàng tích hợp vào ứng dụng của chúng ta làm cho công việc trở nên dễ dàng hơn.

Cách Sử Dụng

Một Packages thường được sử dụng trong các ứng dụng yêu cầu thư viện từ thư viện core hoặc thư viện của bên thứ ba. Những Packages này thường chứa các mã có thể tái sử dụng có thể được sử dụng cho nhiều ứng dụng trên tất cả các nền tảng. Các Packages trong Dart có thể được gửi và kéo từ trang web và kho lưu trữ pub.dev bằng cách sử dụng tiện ích dòng lệnh pub.

Nếu cần các gói khác ngoài các gói mặc định, những gói đó phải được cài đặt trước và được tải rõ ràng để sử dụng. Một khi gói đã được tải, nó có thể được sử dụng trong toàn bộ môi trường Dart. IDE Dart cung cấp hỗ trợ tích hợp cho việc tạo, cập nhật và xuất bản các gói. Một cách khác để đạt được kết quả tương tự là sử dụng pub.

LệnhMô tả
pub getSử dụng để lấy tất cả các gói mà ứng dụng phụ thuộc vào.
pub upgradeSử dụng để nâng cấp tất cả các gói mà ứng dụng phụ thuộc vào.
pub helpSử dụng để lấy tất cả các lệnh pub có sẵn. Điều này có thể hướng dẫn người dùng làm việc tốt hơn với các lệnh.

Các Loại Packages Dart

Chức năng quyết định việc phân loại các gói Dart, như:

a. Packages Đa Năng:

Đây là các gói được sử dụng phổ biến nhất trong hầu hết các dự án như xử lý các đối tượng JSON, thực hiện cuộc gọi API, và nhiều hơn nữa.

Tên GóiMô Tả
charactersSử dụng để thao tác chuỗi.
httpSử dụng để tiêu thụ các tài nguyên http.
intlSử dụng cho quốc tế hóa và cục bộ hóa.
json_serializableGiúp việc sử dụng gói tạo mã trở nên dễ dàng hơn.
pathSử dụng để thao tác với loại đường dẫn.
stack_tracePhân tích và thao tác các dấu vết ngăn xếp được tạo ra bởi hiện thực Dart.

b. Packages Thư Viện Cốt Lõi Dart:

Các gói này được xây dựng dựa trên thư viện cốt lõi Dart, từ đó giúp thêm các tính năng và chức năng bị thiếu.

Thư viện Cốt lõi là một thư viện được tích hợp sẵn, tự động được nhập vào, cung cấp các bộ sưu tập cơ bản như List, Set, Maps, DateTime, và thậm chí là các lỗi. Dart có một bộ sưu tập thư viện cốt lõi rộng lớn cung cấp các yêu cầu cơ bản cần thiết cho các nhiệm vụ lập trình hàng ngày. Thư viện cốt lõi Dart hoạt động trên nhiều nền tảng như nền tảng mặc định Dart, nền tảng Dart native, và nền tảng Dart Web.

Tên GóiMô Tả
collectionGói này mở rộng trên dart: collection và thêm nhiều hàm và lớp để làm cho việc sử dụng bộ sưu tập dễ dàng hơn.
ioGói này mở rộng trên dart: io và được sử dụng để làm việc với tệp, socket, và hỗ trợ I/O khác cho các ứng dụng máy chủ.
asyncGói này mở rộng trên dart: async và thêm các lớp tiện ích để làm cho tính toán bất đồng bộ dễ dàng hơn.

c. Packages Đặc Biệt:

Các Packages đặc biệt là các gói cho phát triển di động (flutter) và Web.

Packages Plugin

Packages plugin là các gói cụ thể có một API và được viết bằng mã Dart cùng với một hoặc nhiều triển khai cụ thể cho từng nền tảng. Có thể viết các gói plugin cho các hệ điều hành như iOS, Android, MacOS, Windows, hoặc Linux cũng như để phát triển các ứng dụng Web.

Có khá nhiều gói cho Android và iOS được tối ưu hóa cho dữ liệu cũng như pin. Mặc dù có thể viết các gói sử dụng Dart cho các gói đã tồn tại, nhưng không có cách thông thường để chúng là thân thiện với thiết bị di động. Điều này dẫn đến việc tiêu tốn một lượng tài nguyên đáng kể cho vấn đề này và do đó, tốt hơn là tránh viết tất cả các gói chỉ bằng Dart.

Cần lưu ý rằng một số thư viện như các thư viện báo cáo lỗi là một phần của hệ điều hành. Một ví dụ về điều này là Dịch vụ Di động Google (GMS). GMS là một bộ sưu tập các ứng dụng và API của Google cung cấp tính năng hỗ trợ trên các thiết bị để cải thiện Trải Nghiệm Người Dùng. Các thư viện này, để giảm thiểu việc sử dụng dữ liệu, tổng hợp dữ liệu từ nhiều ứng dụng và gửi chúng theo lô cho các ứng dụng yêu cầu dữ liệu. Mã Dart không bao giờ là một phần của hệ điều hành và do đó, không tuân thủ điều này.

Xem xét một số Packages tích hợp có sẵn với Dart. Một loại dữ liệu như File có sẵn thông qua dart: io, sử dụng đó để đọc/viết vào một tệp. Một ví dụ đơn giản cho điều này được thể hiện trong đoạn mã bên dưới.

import ‘dart:io’;

//Để tạo một tệp từ một URL

File newFile =

File. fromUri (Uri.parse('file url từ Web'));

Một ví dụ khác là thực hiện các phép toán toán học như làm tròn các chữ số có thể được thực hiện bằng cách sử dụng các phương thức từ gói toán học dart tích hợp sẵn.

Tạo Packages Tự Định Nghĩa trong Dart

Các gói được sử dụng bởi Dart để chia sẻ thư viện và công cụ. Ngoài các gói tích hợp được cung cấp bởi Dart như dart:core, dart:io và dart:math, người dùng cũng có thể tạo ra các gói riêng của họ. Thư mục và cấu trúc cho một gói được tạo tự động trong Dart khi sử dụng lệnh create.

Dưới đây là một ví dụ về cách tạo một gói trong Dart trên terminal:

dart create --template=package-simple mypackage

Trong lệnh này, một gói Dart được tạo bằng lệnh dart create với mypackage là tên của gói.

Hình bên dưới minh họa kết quả trên terminal khi thực thi lệnh.

Khi tạo gói trong Dart, một số tệp được tạo như được hiển thị trong Hình bên trên.

pubspec.yaml

Tất cả các ứng dụng Dart đều có một tệp pubspec.yaml và tệp này bao gồm các siêu dữ liệu. Tác giả gói, phiên bản, tên ứng dụng và mô tả đều được lưu trữ như một phần của siêu dữ liệu. pubspec.yaml cũng được sử dụng để tải xuống các thư viện cần thiết cho ứng dụng khi lập trình.

Hình trên mô tả cách tệp pubspec.yaml trông như thế nào trong Dart khi tạo gói trong Dart.

Tên gói được nhìn thấy ở phần đầu của tệp. Trường này chỉ ra tên gói và cũng chỉ định cách nhập các tệp bên trong dự án này.

Đoạn mã bên dưới là một ví dụ về cách nhập tệp bên trong dự án.

import 'package:mypackage/main.dart';

Trường mô tả cho phép bạn thêm mô tả cho dự án. Đây là một trường tùy chọn. Mô tả này sẽ hiển thị cho mọi người khi gói được xuất bản trên pub.dev.

Trường phiên bản trong tệp cho phép bạn thêm một phiên bản cho ứng dụng hoặc thư viện.

Nếu ứng dụng là ứng dụng di động và được xuất bản trên Play Store hoặc App Store, thì phiên bản được gọi là phiên bản ứng dụng.

Trường môi trường thêm ràng buộc cho SDK Dart.

Đoạn mã trong Hình trên đơn giản chỉ ra rằng ứng dụng sẽ chạy trên các phiên bản SDK Dart cao hơn hoặc bằng ‘2.16.1’ và các phiên bản SDK Dart thấp hơn ‘3.0.0’. Nếu phiên bản SDK không tương thích với các gói được sử dụng, mã sẽ không thể biên dịch và hiển thị một lỗi giải quyết phiên bản không thành công. Để tránh điều này, tốt nhất là duy trì Dart được cập nhật.

Trường dev_dependencies chỉ định các phụ thuộc ứng dụng sẽ cần trong quá trình phát triển. Hình bên dưới trình bày các phụ thuộc trong tệp .yaml.

.gitignore

Lệnh này cho biết cho Git biết những tệp mà nó phải bỏ qua khi và khi dự án được thực hiện commit vào kho lưu trữ GitHub.

README .md

Tệp README cung cấp thông tin chi tiết hơn về gói. Nếu gói này được xuất bản trên pub.dev, nội dung của tệp README sẽ xuất hiện trên trang chính của gói.

Một mô tả ngắn về gói có thể được thêm vào tệp này để giúp người dùng tiềm năng. Một danh sách về những gì có thể được thực hiện bằng cách sử dụng gói cũng có thể được thêm ở đây.

Hình bên trên cho thấy cách tệp README.md trông như thế nào trong Dart khi tạo gói trong Dart.

CHANGELOG . md

Tệp CHANGELOG.md cung cấp thông tin về các cập nhật mới nhất cho dự án hoặc ứng dụng. Tệp này theo dõi tất cả các thay đổi được thực hiện trong dự án được tổ chức theo ngày và phiên bản. Do đó, bất kỳ cải tiến đáng chú ý hoặc lỗi nào cũng có thể được xác định bằng cách sử dụng tệp CHANGELOG.md.

Ví dụ về ứng dụng đơn giản sử dụng một User-defined Package

Trong gói mypackage, triển khai một lớp Arithmetic nhận hai số nguyên và thực hiện các phép toán số học. Lớp này có thể được tạo bên trong lib/src/mypackage_base.dart.

class Arithmetic {
  static int add(int a, int b) => a + b;
  static int sub(int a, int b) => a - b;
  static int multiply(int a, int b) => a * b;
  static double divide(int a, int b) => a / b;
}

Đoạn mã trên hiển thị lớp Arithmetic được tạo bên trong lib/src/mypackage_base.dart của gói mypackage. Lớp này chứa bốn phương thức tĩnh để thực hiện phép cộng, phép trừ, phép chia và phép nhân tương ứng.

Bây giờ, đây là một đoạn mã từ gói mypackage và nó có thể được sử dụng trong bất kỳ dự án Dart nào.

Tạo một dự án Dart mới gọi là sample_dart_project và sử dụng các tính năng của gói mypackage.

Dưới đây là lệnh để tạo một dự án Dart mới:

dart create sample_dart_project

Trong thư mục sample_dart_project, có tệp pubspec.yaml nơi bạn có thể thêm các phụ thuộc. Dưới phần dependencies, chỉ định tên của gói và đường dẫn. Vì đây là một gói do người dùng xác định và có sẵn cục bộ, thêm phụ thuộc như được hiển thị trong Đoạn mã bên dưới.

dependencies:
  mypackage:
    path: /Users/rax/Dart/mypackage

Đoạn mã trên hiển thị phụ thuộc được thêm vào bên trong pubspec.yaml của dự án sample_dart_project.

Để cập nhật các phụ thuộc, chạy lệnh dart pub get. Trong tệp lib/sample_dart_project.dart, nhập gói mypackage và sử dụng các tính năng. Bên trong hàm main(), hai biến được khai báo và các phương thức của lớp Arithmetic từ gói mypackage được gọi và in ra.

Đoạn mã bên dưới hiển thị mã từ lib/sample_dart_project.dart của dự án sample_dart_project.

import 'package:mypackage/mypackage.dart';

void main() {
  int a = 10;
  int b = 5;
  print(Arithmetic.add(a, b));
  print(Arithmetic.sub(a, b));
  print(Arithmetic.multiply(a, b));
  print(Arithmetic.divide(a, b));
}

Dưới đây là cách bạn có thể chạy sample_dart_project bằng lệnh dart run lib/sample_dart_project.dart. Điều này sẽ hiển thị đầu ra như được hiển thị trong Hình bên dưới:

dart run lib/sample_dart_project.dart

Bài viết liên quan:

JSON trong Dart
Lập Trình Đồng Bộ và Bất Đồng Bộ trong Dart
Collections và Ngoại lệ trong Dart
Lập trình hướng đối tượng trong Dart
Toán tử và Câu lệnh Điều khiển trong Dart
Biến và kiểu dữ liện trong Dart
Giới Thiệu Về Ngôn Ngữ Lập Trình Dart Cơ Bản

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Mẫu prompt tạo mô tả chi tiết bối cảnh

Một số cải tiến trong ASP.NET Core, Razor Page, Model Binding, Gabbage collection

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×