- We use default code style with following changes:
- Set max line length to 120
- Always leave your file auto-formatted.
- You can control how the line will break with use of trailing comma. Use trailing comma to get the formatting that makes most sense to you.
- For lint we use Dart static analysis
This is a bit longer read, but generally we follow these rules: https://dart.dev/guides/language/effective-dart
For Flutter development you can choose between multiple IDE-s. We recommend using IntelliJ ( / Android Studio) or VS Code.
- Flutter Enhancement Suite - Easier to add and manage pub packages (with autocomplete and docs)
- Rainbow brackets - Easier to find what brackets are pairs, since they are the same color
- KeyPromoter X - Tells you shortcuts (if one exists) for actions you do manually, great if you didn't use IntelliJ before and want to learn the shortcuts
- Nyan Progress Bar - Better progress bar
- r_flutter - for strongly typed assets.
- freezed - code generator that brings some Kotlin/Swift-like goodies that Dart is missing
- flutter_svg - prefer using SVG because it scales pixel-perfect and uses less memory. It has no native support so you gonna need this package. Sometimes you will get error complaining about
declaration. All I needed to copy-paste element to top, so it is declared before it's used (and that's exactly what crash will complain about).
- firebase_analytics - preferred library for analytics
You will need some kind of secure storage for you app. For secure storage we use fluttersecurestorage. This is mobile only lib that uses Keychain on iOS side and Keystore/KeyChain for android side.
For this lib you have to increase android min API from default 16 to 18.
- json_serializable - generates all the necessary glue to parse Json into dart models