buckshot 0.1.3

Buckshot Logo

Buckshot [buhk-shot] noun When darts land wildly all over the board.

Buckshot is a UI Framework for modern web applications. It is written in Google Dart and attempts to model the best of .net WPF (Silverlight) and Adobe Flex, but without the need for a plug-in. Buckshot renders all output in HTML5/CSS3, and makes use of features available in today's modern web browsers.

If you've worked with .net WPF or Silverlight then this framework will feel very familiar to you.

Status: Alpha #

Project is currently in the alpha stage of development. It will likely not move to beta or v1.0 until after Dart ships v1.0. This is to ensure that that library is working correctly with the Dart APIs, which are still in flux.

For Modern Web Browsers #

While the project will attempt some compatibility with older/non-compliant browsers, the target focus is centered squarely on modern web browsers. If Buckshot isn't working in your browser of choice, then it isn't modern. Ok that may be a bit harsh, but seriously: Use Chrome.

Getting Started #

See the "getting_started" document in the doc/ folder.

Features #

Template-Driven Similar to Xaml, but more simplified and flexible. Supports XML, JSON, and YAML formats.
Actions Event-driven actions, like playing animations, changing properties, etc, in XML templates instead of code (you can also do it in code too, if desired)
Controls Dozens of controls included with the core library, everything from primitive shapes to complex template-supporting controls, like ListBox and TreeView
Animation Declaratively set keyframe animations for your elements, and off you go (still new, has some limitations)
Data Binding Buckshot supports 4 different types of binding from XML templates (or in code): Resource binding, element-to-element binding, data binding, and template binding
Events .net folks will find this model to be very familiar. We use it to wrap DOM events and for other internal events, but you can use it in your own apps
Style Templates Use a common style library among multiple elements. Individual changes to style property values will automatically update any elements using that style
Extensibility Everything in Buckshot is designed to be extensible, so you can create libraries of your own controls, resources, and more

And Much, Much More [More Details Here] (https://github.com/prujohn/Buckshot/wiki/What-is-Buckshot%3F)

License #

Apache 2.0. See license.txt for project licensing information.

Contact #

Buckshot Discussion Group: https://groups.google.com/forum/#!forum/buckshot-ui

Buckshot on G+: https://plus.google.com/b/105133271658972815666/105133271658972815666/posts

Blog: http://phylotic.blogspot.com

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  buckshot: ^0.1.3

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:buckshot/buckshot_browser.dart';
import 'package:buckshot/extensions/controls/accordion/accordion.dart';
import 'package:buckshot/extensions/controls/accordion/accordion_item.dart';
import 'package:buckshot/extensions/controls/canvas/bitmap_canvas.dart';
import 'package:buckshot/extensions/controls/canvas/canvas_base.dart';
import 'package:buckshot/extensions/controls/canvas/webgl_canvas.dart';
import 'package:buckshot/extensions/controls/dock_panel.dart';
import 'package:buckshot/extensions/controls/list_box.dart';
import 'package:buckshot/extensions/controls/media/funny_or_die.dart';
import 'package:buckshot/extensions/controls/media/hulu.dart';
import 'package:buckshot/extensions/controls/media/vimeo.dart';
import 'package:buckshot/extensions/controls/media/youtube.dart';
import 'package:buckshot/extensions/controls/menus/menu.dart';
import 'package:buckshot/extensions/controls/menus/menu_item.dart';
import 'package:buckshot/extensions/controls/menus/menu_item_selected_event_args.dart';
import 'package:buckshot/extensions/controls/menus/menu_lib.dart';
import 'package:buckshot/extensions/controls/menus/menu_strip.dart';
import 'package:buckshot/extensions/controls/modal_dialog.dart';
import 'package:buckshot/extensions/controls/popup.dart';
import 'package:buckshot/extensions/controls/social/plus_one.dart';
import 'package:buckshot/extensions/controls/tab_control/tab_control.dart';
import 'package:buckshot/extensions/controls/tab_control/tab_item.dart';
import 'package:buckshot/extensions/controls/tab_control/tab_selected_event_args.dart';
import 'package:buckshot/extensions/controls/treeview/tree_node.dart';
import 'package:buckshot/extensions/controls/treeview/tree_view.dart';
import 'package:buckshot/extensions/template_providers/json_template_provider.dart';
import 'package:buckshot/extensions/template_providers/yaml/composer.dart';
import 'package:buckshot/extensions/template_providers/yaml/constructor.dart';
import 'package:buckshot/extensions/template_providers/yaml/deep_equals.dart';
import 'package:buckshot/extensions/template_providers/yaml/model.dart';
import 'package:buckshot/extensions/template_providers/yaml/parser.dart';
import 'package:buckshot/extensions/template_providers/yaml/visitor.dart';
import 'package:buckshot/extensions/template_providers/yaml/yaml.dart';
import 'package:buckshot/extensions/template_providers/yaml/yaml_map.dart';
import 'package:buckshot/extensions/template_providers/yaml_template_provider.dart';
import 'package:buckshot/gen/gen_option.dart';
import 'package:buckshot/gen/generator_file.dart';
import 'package:buckshot/gen/genie.dart';
import 'package:buckshot/gen/logger.dart';
import 'package:buckshot/generator_console.dart';
import 'package:buckshot/web/browser.dart';
import 'package:buckshot/web/browser_info.dart';
import 'package:buckshot/web/web.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
0
Health:
Code health derived from static analysis. [more]
--
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
--
Overall:
Weighted score of the above. [more]
0
Learn more about scoring.

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Analysis issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see https://dart.dev/dart-2#migration.