flutter_easy_plugin 0.0.1

  • Readme
  • Changelog
  • Example
  • Installing
  • new44

Flutter Easy Plugin #

A plugin basic class for Flutter. To implement method of plugin class directly without handleMethodCall or onMethodCall .

Flutter Test pub package Build Status style: effective dart

Features #

  • Class FlutterEasyPlugin must be as parent class.
  • Subclass implement plugin method directly without handleMethodCall or onMethodCall.
  • Just like an native method implementation for Flutter channel call.
  • Support result such as return-value, async-return-value and error for implemented method.
  • Try to see examples for detail or see method getPlatformVersion.

Usage #

To use this plugin, add flutter_easy_plugin as a dependency in your pubspec.yaml file. For example:

dependencies:
  flutter_easy_plugin: 0.0.1

API #

iOS #


// iOS result
@interface FlutterEasyPluginResult : NSObject

+ (instancetype)notImplemention;

+ (instancetype)return:(id)value;

+ (instancetype)error:(NSError *)error;

+ (instancetype)async:(void (^)(void (^done)(id value, NSError *_Nullable error)))block;

@end

// iOS base class
@interface FlutterEasyPlugin : NSObject<FlutterPlugin>

@property (nonatomic, copy, class, readonly) NSString *channelName;

@property (nonatomic, strong, readonly) FlutterMethodChannel *methodChannel;

- (instancetype)initWithMethodChannel:(FlutterMethodChannel *)methodChannel NS_DESIGNATED_INITIALIZER;

@end

Android #

// Android Result
public abstract class FlutterEasyPluginResult {
    public static FlutterEasyPluginResult success(Object object) {
        return new FlutterEasyPluginReturnResult(object);
    }

    public static FlutterEasyPluginResult error(Error error) {
        return new FlutterEasyPluginErrorResult(error);
    }

    public static FlutterEasyPluginResult notImplemented() {
        return new FlutterEasyPluginNotImplementedResult();
    }
    public static FlutterEasyPluginResult async(AsyncExcutor excutor) {
        return new FlutterEasyPluginAsyncResult(excutor);
    }
}

// Android base class
public class FlutterEasyPlugin implements MethodCallHandler {}

Issues #

Please file any issues, bugs or feature request as an issue on our Github page.

Want to contribute #

If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature), please carefully review our contribution guide and send us your pull request.

Author #

This Flutter easy plugin for Flutter is developed by modool. You can contact us at modool.go@gmail.com

0.0.1 #

example/lib/main.dart

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

const channel = MethodChannel('com.modool.flutter/flutter_easy_plugin');

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String platformVersion;

  @override
  void initState() {
    channel.invokeMethod('getPlatformVersion').then((platformVersion) {
      setState(() {
        this.platformVersion = platformVersion;
      });
    });

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Column(
          children: <Widget>[
            Text('getPlatformVersion: $platformVersion'),
          ],
        ),
      ),
    );
  }
}

Use this package as a library

1. Depend on it

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


dependencies:
  flutter_easy_plugin: ^0.0.1

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

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

3. Import it

Now in your Dart code, you can use:


import 'package:flutter_easy_plugin/flutter_easy_plugin.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
0
Health:
Code health derived from static analysis. [more]
99
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
70
Overall:
Weighted score of the above. [more]
44
Learn more about scoring.

We analyzed this package on Jul 3, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.13
  • Flutter: 1.17.5

Analysis suggestions

Package does not support Flutter platform linux

Because of import path [package:flutter_easy_plugin/flutter_easy_plugin.dart] that declares support for platforms: android, ios, macos

Package does not support Flutter platform web

Because of import path [package:flutter_easy_plugin/flutter_easy_plugin.dart] that declares support for platforms: android, ios, macos

Package does not support Flutter platform windows

Because of import path [package:flutter_easy_plugin/flutter_easy_plugin.dart] that declares support for platforms: android, ios, macos

Package not compatible with SDK dart

because of import path [flutter_easy_plugin] that is in a package requiring null.

Health issues and suggestions

Document public APIs. (-1 points)

4 out of 4 API elements have no dartdoc comment.Providing good documentation for libraries, classes, functions, and other API elements improves code readability and helps developers find and use your API.

Maintenance suggestions

The package description is too short. (-20 points)

Add more detail to the description field of pubspec.yaml. Use 60 to 180 characters to describe the package, what it does, and its target use case.

Package is pre-v0.1 release. (-10 points)

While nothing is inherently wrong with versions of 0.0.*, it might mean that the author is still experimenting with the general direction of the API.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.12 1.14.13
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6 1.2.0
vector_math 2.0.8
Dev dependencies
flutter_test