Importing Dart Libraries

Importing Dart Libraries

About

  • Code Reuse: Share functionality across files
  • Core Libraries: Built-in Dart libraries
  • Third-party: External package imports
  • Organization: Logical code separation

Main Topics

  1. Basic Import

    • Definition: import keyword
    • Example:
      import 'dart:math'; // Core library
      import 'package:flutter/material.dart'; // Package
      import 'lib/utils.dart'; // Local file
  2. Core Libraries

    • Definition: Dart SDK provided
    • Example:
      import 'dart:async'; // Async operations
      import 'dart:convert'; // JSON handling
  3. Package Imports

    • Definition: From pub.dev
    • Example:
      import 'package:http/http.dart';
      import 'package:provider/provider.dart';
  4. Relative Imports

    • Definition: Project file paths
    • Example:
      import '../widgets/header.dart';
      import './constants.dart';
  5. Initialization

    • Definition: deferred as

    • Example:

      import 'package:heavy_library/heavy.dart' deferred as heavy;
      
      void load() async {
        await heavy.loadLibrary();
        heavy.run();
      }

How to Use

  • Core: Start with dart: libraries
  • Packages: Add to pubspec first
  • Organization: Group related imports
  • Performance: Defer heavy libraries

How It Works

  1. Resolution: Path or package lookup
  2. Loading: At runtime
  3. Scope: Brings identifiers into namespace
  4. Caching: Single library instance

Example:

// Typical Flutter app imports
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'dart:async';

// Local imports
import '../models/user.dart';
import './api_service.dart';

Conclusion

Importing libraries in Dart provides access to core functionality, third-party packages, and your own organized code. Proper import practices keep your codebase clean and maintainable while enabling powerful code reuse across projects.