openplanning

Tạo Module trong Flutter

  1. Tạo một Flutter Module
  2. Tạo một widget tuỳ biến
  3. Sử dụng Flutter Module địa phương
  4. Sử dụng Assets của một Module
Module là một thực thể logic có mọi thứ (mã lập trình và các phần phụ thuộc của nó) để thực thi chức năng mong muốn. Chia một dự án lớn thành nhiều module và lắp ráp nó lại với nhau giúp code của bạn dễ dàng bảo trì và làm tăng khả năng tái sử dụng code.
Flutter Module vs Flutter Package
Về cơ bản, Flutter ModuleFlutter Package đều là các thư viện, nó có thể được sử dụng cho các dự án Flutter khác.
Flutter Package
Flutter Module
Là một thư viện sẽ được viết hoàn toàn bằng mã Dart. Nó không liên quan gì tới các chức năng Native (tự nhiên).
Về cơ bản Flutter Module là một tập hợp các chức năng mà bạn muốn sử dụng cho ứng dụng của mình. Nó bao gồm tất cả những gì có thể như một Flutter Package, ngoài ra nó có thể chứa các chức năng Native, các mã đặc biệt tuỳ chỉnh cho một nền tảng cụ thể.
  • So sánh plugin, skeleton, module và package trong Flutter
  • Flutter Package
  • Flutter Skeletons
  • Flutter Plugin
Bài viết này sẽ hướng dẫn bạn tạo một Flutter Module trên Android Studio và cách để bạn có thể sử dụng nó trong các dự án Flutter khác.

1. Tạo một Flutter Module

Trên Android Studio chọn:
  • File > New > New Flutter Project...
  • > Flutter > Next
Project type: Module

2. Tạo một widget tuỳ biến

Tạo một widget tuỳ biến trong module:
MyIconLabelText widget:
my_icon_label_text.dart
import 'package:flutter/material.dart';

class MyIconLabelText extends StatelessWidget {
  final Icon icon;
  final String label;
  final String text;
  final TextStyle? labelStyle;
  final TextStyle? textStyle;

  const MyIconLabelText({
    super.key,
    required this.icon,
    required this.label,
    required this.text,
    this.labelStyle,
    this.textStyle,
  });

  @override
  Widget build(BuildContext context) {
    return Text.rich(
      TextSpan(
        children: [
          WidgetSpan(
            child: icon,
            alignment: PlaceholderAlignment.middle,
          ),
          const WidgetSpan(child: SizedBox(width: 2)),
          TextSpan(
            text: label,
            style: labelStyle ??
                const TextStyle(
                  fontWeight: FontWeight.bold,
                ),
          ),
          const WidgetSpan(child: SizedBox(width: 5)),
          TextSpan(
            text: text,
            style: textStyle,
          ),
        ],
      ),
    );
  }
}

3. Sử dụng Flutter Module địa phương

Ở bước trên chúng ta đã tạo ra một Flutter Module, bây giờ chúng ta sẽ sử dụng nó trong một dự án khác.
Khai báo đường dẫn tuyệt đối tới Module của bạn trong pubspec.yaml:
dependencies: 
  my_demo_flutter_module:
    path: /absolute/path/to/my_demo_flutter_module
Hoặc khai báo đường dẫn tương đối tới Module của bạn trong pubspec.yaml:
dependencies: 
  my_demo_flutter_module:
    path: ../my_demo_flutter_module

4. Sử dụng Assets của một Module

  • Flutter Assets
Bạn cũng có thể thêm các Assets vào module và nó có thể được sử dụng cho các dự án khác.
pubspec.yaml
flutter: 
  uses-material-design: true 

  assets:
     - my-images/
Tại các dự án Flutter khác bạn có thể truy cập vào Assets của my_demo_flutter_module:
Image.asset(
  'packages/my_demo_flutter_module/my-images/feel_good_32.png',
),
Hoặc tạo ra các hàm tiện ích trong my_demo_flutter_module cho phép các dự án bên ngoài truy cập vào Assets của nó.
assets_utils.dart
import 'package:flutter/material.dart';

///
/// @imageName = "feel_good_16.png".
///
Image getAssetsImage(String imageName) {
  return Image.asset(
    'packages/my_demo_flutter_module/my-images/$imageName',
  );
}

Các hướng dẫn lập trình Flutter

Show More