flutterdux 0.0.1

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • 49

FlutterDux

Flutter + Redux.js

Android only at the moment, iOS coming soon.

Getting Started

Check out this article for a description of how it works.

Loading website

void main() {
  runApp(new MyApp());
  FlutterDux.instance.loadUrl('<YOUR WEBSITE RUNNING REDUX>');
}

Binding widgets

class _MyWidgetState extends State<MyWidget> with FlutterDuxMixin{
  int _counter = 0;

  @override
  List<Property> get properties => [
    new Property(
      statePath: 'counter',
      onChanged: (v) => _counter = v
    )
  ];

  /// The widget's `setState` will be called automatically
  /// when state slice `counter` changes.
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Text('$_counter'),
      floatingActionButton: new FloatingActionButton(
        onPressed: () => dispatch({'type': 'INCREMENT'}),
        child: new Icon(Icons.add),
      ),
    );
  }
}

Dispatching actions

/// Raw action
dispatch({'type': 'INCREMENT'});

/// Action creator
dispatch('incrementCounter');

/// Action creator with arguments
dispatch('addTodo', ['Take out the trash']);

[0.0.1] - October 19th 2017

  • Initial release

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutterdux/flutterdux.dart';

void main() {
  runApp(new MyApp());
  FlutterDux.instance.loadUrl('https://run.plnkr.co/x6YJxqP8zHq8WG2t/');
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> with FlutterDuxMixin{
  int _counter = 0;

  @override
  List<Property> get properties => [
    new Property(
      statePath: 'counter',
      onChanged: (v) => _counter = v,
      value: _counter,
    )
  ];

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(widget.title),
      ),
      body: new Center(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            new Text(
              'You have pushed the button this many times:',
            ),
            new Text(
              '$_counter',
              style: Theme.of(context).textTheme.display1,
            ),
          ],
        ),
      ),
      floatingActionButton: new FloatingActionButton(
        //onPressed: () => dispatch('addTodo', ['Take out the trash']),
        onPressed: () => dispatch({'type': 'INCREMENT'}),
        tooltip: 'Increment',
        child: new Icon(Icons.add),
      ),
    );
  }
}

1. Depend on it

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


dependencies:
  flutterdux: "^0.0.1"

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter packages get

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

3. Import it

Now in your Dart code, you can use:


import 'package:flutterdux/flutterdux.dart';
        
Version Uploaded Documentation Archive
0.0.1 Oct 19, 2017 Go to the documentation of flutterdux 0.0.1 Download flutterdux 0.0.1 archive

Analysis

We analyzed this package on Apr 23, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.49.0
  • pana: 0.10.6
  • Flutter: 0.3.2

Scores

Popularity:
Describes how popular the package is relative to other packages. [more]
0 / 100
Health:
Code health derived from static analysis. [more]
96 / 100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100 / 100
Overall score:
Weighted score of the above. [more]
49
Learn more about scoring.

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Suggestions

  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.

  • Fix analysis and formatting issues.

    Analysis or formatting checks reported 7 hints.

    Run flutter format to format lib/flutterdux.dart.

    Run flutter format to format lib/src/flutterdux.dart.

    Similar analysis of the following files failed:

    • lib/src/flutterdux_mixin.dart (hint)
    • lib/utils/path.dart (hint)

Dependencies

Package Constraint Resolved Available
Direct dependencies
flutter 0.0.0
Transitive dependencies
collection 1.14.6 1.14.9
meta 1.1.2
sky_engine 0.0.99
typed_data 1.1.5
vector_math 2.0.6