Dart Libraries & Frameworks
Exploring Dart's ecosystem of libraries and frameworks
📚 What are Dart Libraries & Frameworks?
Dart libraries and frameworks provide pre-built functionality to accelerate development. They offer reusable code, tools, and structures for building applications efficiently across different platforms and use cases.
// Import a library to use its functionality
import 'dart:core';
import 'package:flutter/material.dart';
void main() {
print('Hello from Dart libraries!');
}
Output:
Hello from Dart libraries!
Types of Dart Libraries
Core Libraries
Built-in libraries included with Dart
import 'dart:core';
import 'dart:async';
import 'dart:io';
Package Libraries
External packages from pub.dev
import 'package:http/http.dart';
import 'package:json_annotation/json_annotation.dart';
Frameworks
Complete development frameworks
// Flutter for mobile apps
import 'package:flutter/material.dart';
// AngularDart for web apps
import 'package:angular/angular.dart';
Custom Libraries
Your own reusable code modules
// lib/my_utils.dart
library my_utils;
String formatName(String name) {
return name.toUpperCase();
}
🔹 Popular Dart Frameworks
Major frameworks built with Dart:
🔸 Flutter (Mobile & Desktop)
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Flutter App')),
body: Center(child: Text('Hello Flutter!')),
),
);
}
}
🔸 AngularDart (Web)
import 'package:angular/angular.dart';
@Component(
selector: 'my-app',
template: '{{title}}
',
)
class AppComponent {
String title = 'Hello AngularDart!';
}
🔹 Using External Packages
Add packages to your pubspec.yaml file:
name: my_app
dependencies:
http: ^0.13.5
json_annotation: ^4.8.1
dev_dependencies:
test: ^1.21.0
Then import and use them:
import 'package:http/http.dart' as http;
import 'dart:convert';
Future fetchData() async {
final response = await http.get(
Uri.parse('https://api.example.com/data')
);
if (response.statusCode == 200) {
final data = json.decode(response.body);
print('Data: $data');
}
}
🔹 Creating Custom Libraries
Organize your code into reusable libraries:
// lib/math_utils.dart
library math_utils;
/// Calculate the area of a circle
double circleArea(double radius) {
return 3.14159 * radius * radius;
}
/// Calculate factorial of a number
int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
// main.dart
import 'lib/math_utils.dart';
void main() {
print('Circle area: ${circleArea(5)}');
print('Factorial of 5: ${factorial(5)}');
}
Output:
Circle area: 78.53975
Factorial of 5: 120