xwidget 0.0.34 copy "xwidget: ^0.0.34" to clipboard
xwidget: ^0.0.34 copied to clipboard

A package for building dynamic UIs in Flutter using an expressive, XML based markup language.

XWidget Logo

Code Animation

Note: This document is very much still a work in progress. #

What is XWidget? #

XWidget is a not-so-opinionated library for building dynamic UIs in Flutter using an expressive, XML based markup language.

That was a mouth full, so let's break it down. "Not-so-opinionated" means that you're not forced to use XWidget in any particular way. You can use as much or as little of the framework as you want - whatever makes sense for your project. There are, however, a few Best Practices that you should follow to help keep your code organized and your final build size down to a minimum.

An XWidget UI is defined in XML and parsed at runtime. You have access to all the Flutter widgets and classes you are used to working with, including widgets from 3rd party libraries and even your own custom widgets. This is achieved through code generation. You specify which widgets you want to use and XWidget will generate the appropriate classes and functions and make them available as XML elements. You'll have access to all of the Widgets' constructor arguments as element attribute just as if you were writing Dart code. You'll even have code completion and access to Widgets' documentation in tooltips, if provided by the author, when you register the generated XML schema with your IDE.

For example:

<Column crossAxisAlignment="start">
    <Text data="Hello World">
        <TextStyle for="style" fontWeight="bold" color="#262626"/>
    </Text>
    <Text>Welcome to XWidget!</Text>
</Column>

Important: Only specify widgets that you actually use in your UI. Specifying unused widgets and helper classes in your configuration will bloat your app size. This is because code is generated for every component you specify and thus neutralizes Flutter's tree-shaking.

Table of Contents #

  1. Quick Start
  2. Example
  3. Configuration
  4. Code Generation
  5. Inflaters
  6. Dependencies
  7. Model
  8. Fragments
  9. Controllers
  10. Expression Language (EL)
  11. Resources
  12. Components
  13. Tags
  14. Best Practices
  15. Tips and Tricks
  16. Trouble Shooting
  17. FAQ
  18. Roadmap
  19. Known Issues
15
likes
0
pub points
31%
popularity

Publisher

verified publisherappfluent.us

A package for building dynamic UIs in Flutter using an expressive, XML based markup language.

Repository (GitHub)
View/report issues

Topics

#dynamic #layout #ui #widget #xml

License

unknown (license)

Dependencies

analyzer, args, flutter, glob, intl, logger, markdown, path, petitparser, xml, yaml

More

Packages that depend on xwidget