CLI tool for checking a Flutter plugin structure.
Each issue has a level parameter that describes its significant importance.
| Level | Description | 
|---|---|
NORMAL | 
Issue not found | 
WARNING | 
Issue is not serious and can't break a build | 
ERROR | 
Issue is critical and can break a build | 
| Check | Description | Level | 
|---|---|---|
PluginDirectoriesCheck | 
Check plugin directories structure in pubspec file. Example: if a Flutter plugin has only Android specific code but not contains iOS folder with description, then iOS build fails | ERROR | 
PluginPubspecNameCheck | 
Check plugin name in pubspec file. Exists or not | ERROR | 
PluginPubspecDescriptionCheck | 
Check plugin description in pubspec file. Exists or not | WARNING | 
PluginPubspecVersionCheck | 
Check plugin version in pubspec. Exists or not | ERROR | 
PluginPubspecAuthorCheck | 
Check plugin author in pubspec. Exists or not. author section deprecated in pubspec.yaml | 
WARNING | 
PluginPubspecHomepageCheck | 
Check plugin homepage in pubspec. Exists or not | ERROR | 
PluginPubspecLintsCheck | 
Check Flutter plugin lints dependency in pubspec file. Exists or not | 
ERROR | 
PluginPubspecFlutterLintsCheck | 
Check Flutter plugin flutter_lints dependency in pubspec file. Exists or not | 
ERROR | 
| Check | Description | Level | 
|---|---|---|
PluginGradleAndroidPackageCheck | 
Validate that \android\ package not exists in Gradle project config (build.gradle file) | ERROR | 
PluginGradleVersionCheck | 
Check plugin version in Gradle project config (build.gradle file). Version must be the same as plugin version in pubspec file | WARNING | 
| Check | Description | Level | 
|---|---|---|
PluginPodspecNameCheck | 
Check plugin name in podspec file. Exists or not | WARNING | 
PluginPodspecVersionCheck | 
Check plugin version in podspec file. Exists or not | WARNING | 
PluginPodspecAuthorsCheck | 
Check plugin's authors in podspec file. Exists or not | ERROR | 
PluginPodspecSourceCheck | 
Check plugin iOS source path in podspec file. If Flutter plugin cannot contains iOS specific code, source path must be '.' | 
ERROR | 
You should add flutter-rb-gradle-plugin to Android side of your plugin.
$ gem i flutter_rbThen run from a Flutter plugin's project folder:
$ frbBuild and install gem from sources:
$ gem build flutter_rb.gemspec
$ gem i flutter_rbThen run from a Flutter plugin's project folder:
$ frb inspect --path=./project_folderAdd project_folder/bin (where project_folder is path to project on your machine) to PATH variable in your
environment. Then updated environment and run from a Flutter plugin's project folder:
$ local_frb inspect --path=./project_folderStarts the flutter-rb.
$ frb inspect --path=./project_folder --report| Argument | Description | 
|---|---|
--path | 
Path to Dart/Flutter project. flutter-rb will be use current directory if this parameter are empty | 
--report | 
Generate report in Checkstyle format | 
Puts using version of flutter-rb.
$ frb versionPuts author and our contacts.
$ frb authorSince version 1.2.2 you can generate config by following command in terminal:
$ frb configAdd .flutter_rb.yaml to root of a project for select checks that you are want to exclude:
exclude:
  flutter:
    - PluginDirectoriesCheck
    - PluginPubspecNameCheck
    - PluginPubspecDescriptionCheck
  android:
    - PluginGradleAndroidPackageCheck
  ios:
    - PluginPodspecNameCheck
    - PluginPodspecVersionCheck
    - PluginPodspecAuthorsCheckTool can make report in Checkstyle format. To enable this feature, pass --checkstyle-report as an CLI argument. The
report file name is frb-checkstyle-report.xml.
Just run:
$ rdocRead Commit Convention. Make sure your build is green before you contribute your pull request. Then:
$ bundle exec rakeIf you don't see any error messages, submit your pull request.
- @fartem as Artem Fomchenkov
 
