about 2.2.0 about: ^2.2.0 copied to clipboard
Displays an About dialog, which describes the application, can show licenses, changelog, and other information.
// ignore_for_file: public_member_api_docs
import 'package:about/about.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'pubspec.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final isIos = theme.platform == TargetPlatform.iOS ||
theme.platform == TargetPlatform.macOS;
final aboutPage = AboutPage(
values: {
'version': Pubspec.version,
'buildNumber': Pubspec.versionBuild.toString(),
'year': DateTime.now().year.toString(),
'author': Pubspec.authorsName.join(', '),
},
title: const Text('About'),
applicationVersion: 'Version {{ version }}, build #{{ buildNumber }}',
applicationDescription: const Text(
Pubspec.description,
textAlign: TextAlign.justify,
),
applicationIcon: const FlutterLogo(size: 100),
applicationLegalese: 'Copyright © {{ author }}, {{ year }}',
children: const <Widget>[
MarkdownPageListTile(
filename: 'README.md',
title: Text('View Readme'),
icon: Icon(Icons.all_inclusive),
),
MarkdownPageListTile(
filename: 'CHANGELOG.md',
title: Text('View Changelog'),
icon: Icon(Icons.view_list),
),
MarkdownPageListTile(
filename: 'LICENSE.md',
title: Text('View License'),
icon: Icon(Icons.description),
),
MarkdownPageListTile(
filename: 'CONTRIBUTING.md',
title: Text('Contributing'),
icon: Icon(Icons.share),
),
MarkdownPageListTile(
filename: 'CODE_OF_CONDUCT.md',
title: Text('Code of conduct'),
icon: Icon(Icons.sentiment_satisfied),
),
LicensesPageListTile(
title: Text('Open source Licenses'),
icon: Icon(Icons.favorite),
),
],
);
if (isIos) {
return CupertinoApp(
title: 'About Demo (Cupertino)',
home: aboutPage,
theme: CupertinoThemeData(
brightness: theme.brightness,
),
);
}
return MaterialApp(
title: 'About Demo (Material)',
home: aboutPage,
theme: ThemeData(),
darkTheme: ThemeData(brightness: Brightness.dark),
);
}
}