A 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. authorsection deprecated inpubspec.yaml | WARNING | 
| PluginPubspecHomepageCheck | Check plugin homepage in pubspec. Exists or not | ERROR | 
| PluginPubspecLintsCheck | Check Flutter plugin lintsdependency in pubspec file. Exists or not | ERROR | 
| PluginPubspecFlutterLintsCheck | Check Flutter plugin flutter_lintsdependency 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:
$ frbAdd 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| Argument | Description | 
|---|---|
| --help | Print help info | 
| --checkstyle-report | Generate report in Checkstyle format | 
Add .flutter_rb.yaml to root of a project for select checks that you are want to exclude:
exclude: flutter: - check1 - check2 - check3 android: - check1 - check2 ios: - check1 - check2 Tool 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.
Read 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
