Libraries and Visibility
Importing Libraries
dart
// Core libraries
import 'dart:math';
import 'dart:async';
import 'dart:convert';
// Package imports
import 'package:http/http.dart';
// Relative imports
import 'utils/helpers.dart';Library Prefixes
dart
import 'dart:math' as math;
import 'package:lib1/lib1.dart' as lib1;
import 'package:lib2/lib2.dart' as lib2;
void main() {
print(math.pi);
lib1.someFunction();
lib2.someFunction();
}Selective Imports
dart
// Import only specific members
import 'dart:math' show pi, sqrt;
// Import all except specific members
import 'dart:math' hide cos, sin;Creating Libraries
dart
// math_utils.dart
library math_utils;
const double pi = 3.14159;
double circleArea(double radius) {
return pi * radius * radius;
}
// Private (not exported)
double _internalHelper() {
return 42.0;
}Exporting Libraries
dart
// my_library.dart
library my_library;
export 'src/utils.dart';
export 'src/models.dart';
export 'src/services.dart' show ServiceA, ServiceB;Part and Part Of
dart
// main_library.dart
library main_library;
part 'part1.dart';
part 'part2.dart';
// part1.dart
part of main_library;
void function1() {
print('Function 1');
}
// part2.dart
part of main_library;
void function2() {
print('Function 2');
}Visibility
dart
// Public - accessible everywhere
class PublicClass {}
// Private - only within library
class _PrivateClass {}
class MyClass {
int publicField = 0;
int _privateField = 0;
void publicMethod() {}
void _privateMethod() {}
}