flutter_extended_platform_widgets 7.0.0+2 copy "flutter_extended_platform_widgets: ^7.0.0+2" to clipboard
flutter_extended_platform_widgets: ^7.0.0+2 copied to clipboard

Simplifying the use of both Material, Cupertino, Fluent, MacOS, Linux, and Fuchsia widgets with a single widget

Flutter Platform Widgets

Flutter Platform Widgets #

Pub GitHub

Reason for fork #

This is a fork package of the original flutter_platform_widgets package. With a fork, one can keep up to date with the developments happening in the original, while adding this missing support for the lesser-used platforms too. It now supports builders of the remaining Flutter-supported Windows, MacOS, Linux, Fuchsia, and Web platforms too. This is something that would not be added in the original plugin.

TL;DR; #

A wrapper library that makes it easier to target the design language of your chosen platform using a single widget.

Bit more #

For anyone that starts with building apps with Flutter it becomes clear that picking the right widget is important. This typically starts with using the Material set of widgets which is the default look and feel for Android. However when designing screens for iOS and the Cupertino design language a double up of effort is required to cater for a new set of widgets.

This project was initially an experiment which grew into a fully fledged package to support the look using the Material and Cupertino designed widgets with a single platform widget.

If you want to build a native looking app with very similar functionality then this package could save you time and effort.


This package supports the Stable release as a full released version.

Beta channels might be supported when there is a pre-release version. Please check the CHANGELOG for version compatibility.

Due to Master being in rapid development this package is unable to support the Master channel. If this support is required then it is best to fork the repo and locally reference the forked version where you can make changes appropriately.


Installation #

pub.dev: https://pub.dev/packages/flutter_platform_widgets/install

How it works #

Instead of having to write conditional code like this...

if (Platform.isAndroid) {
  return ElevatedButton(onPressed: onPressed, child: child);
} else if (Platform.isIOS) {
  return CupertinoButton.filled(onPressed: onPressed, child: child);
}

you can use a single platform widget which will render the correct underlying widget based on the ThemeData.platform property...

return PlatformElevatedButton(onPressed: onPressed, child: child);

The heavy lifting of choosing the right widget is done for you.

You can also specify what design language you want for any supported platforms within flutter. These include:

  • Android
  • iOS
  • Web
  • Macos
  • Windows
  • Linux

Docs #

View the package wiki for details of how to use and the list of available widgets

Issues and Feedback #

Please create an issue to provide feedback or an issue.

License #

MIT

Contributors #

Special thanks for everyone that have contributed to this project over the last 5 years...

Made with contrib.rocks.

Inspired by the example given by Swav Kulinski (https://github.com/swavkulinski/flutter-platform-specific-widgets)

9
likes
90
points
0
downloads

Publisher

unverified uploader

Weekly Downloads

Simplifying the use of both Material, Cupertino, Fluent, MacOS, Linux, and Fuchsia widgets with a single widget

Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

cupertino_icons, cupertino_progress_bar, fluent_ui, fluentui_system_icons, flutter, macos_ui

More

Packages that depend on flutter_extended_platform_widgets