Code Monkey home page Code Monkey logo

flutter_platform_widgets's Introduction

Flutter Platform Widgets

Flutter Platform Widgets

Pub GitHub

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 Material and Cupertino 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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.