diff --git a/README.md b/README.md index b872ed93757ec3e8ba54b8fa3c44461e106636e6..196c35114631b706317895c10a4d99ea0135e0cf 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,19 @@ This repository is the starting point for my personal projects. If you have any This repository requires [Flutter](https://flutter.dev/docs/get-started/install) to be installed and present in your development environment. -Clone the project, install the dependencies and run the application. - +Clone the project and enter the project folder. ```sh git clone https://github.com/anfeichtinger/flutter_production_boilerplate.git cd flutter_production_boilerplate +``` + +Get the dependencies. +```sh flutter pub get +``` + +Run the app via command line or through your development environment. (optional) +```sh flutter run lib/main.dart ``` @@ -27,17 +34,78 @@ This repository makes use of the following pub packages: | Package | Version | Usage | | ------ | ------ | ------ | -| [Bloc](https://pub.dev/packages/bloc) | ^7.0.0 | State management -| [Flutter Bloc](https://pub.dev/packages/flutter_bloc) | ^7.0.1 | State management +| [Bloc](https://pub.dev/packages/bloc) | ^7.0.0 | State management* +| [Flutter Bloc](https://pub.dev/packages/flutter_bloc) | ^7.0.1 | State management* | [Hydrated Bloc](https://pub.dev/packages/hydrated_bloc) | ^7.0.1 | Persists Bloc state with Hive -| [Equatable](https://pub.dev/packages/equatable) | ^2.0.2 | Easily compare custom classes, used for Bloc states +| [Equatable](https://pub.dev/packages/equatable) | ^2.0.2 | Easily compare custom classes, used for Bloc states* | [Pedantic](https://pub.dev/packages/pedantic) | ^1.11.0 | Stricter linting rules | [Path Provider](https://pub.dev/packages/path_provider) | ^2.0.2 | Get the save path for Hive | [Flutter Displaymode](https://pub.dev/packages/flutter_displaymode) | ^0.3.2 | Support high refresh rate displays | [Easy Localization](https://pub.dev/packages/easy_localization) | ^3.0.0 | Makes localization easy | [Hive](https://pub.dev/packages/hive) | ^2.0.4 | Platform independent storage. -| [Url Launcher](https://pub.dev/packages/url_launcher) | ^6.0.6 | Open urls in Browser (optional) -| [Ionicons](https://pub.dev/packages/ionicons) | ^0.1.2 | Modern icon library (optional) +| [Url Launcher](https://pub.dev/packages/url_launcher) | ^6.0.6 | Open urls in Browser +| [Ionicons](https://pub.dev/packages/ionicons) | ^0.1.2 | Modern icon library +> \* Recommended to keep regardless of your project + +## Using this package as a starting point + +After following the installation steps you can customize your project. + +#### Changing the package and app name + +You can follow the instructions in this [Stackoverflow issue](https://stackoverflow.com/a/51550358). + +#### Theme + +You can customize your brand colors in the [lib/config/theme.dart](./lib/config/theme.dart) file. +The project useses colors from [TailwindCSS](https://tailwindcss.com/docs/customizing-colors). As primary swatch the indigo color palette is used while for the text the gray color palette is used. Feel free to replace those values with your own. +In order to get a smooth transition for the text colors it is necessary to override each text type in the TextTheme. + +#### Removing unwanted packages + +If a package is not listed, then removing it from [pubspec.yaml](./pubspec.yaml) as well as all imports and uses should be enough. This is required for removing every packages, the following instructions are an addition to that. + +##### Pedantic + +Delete the [analysis_options.yaml](./analysis_options.yaml) file. +As an alternative you can modify the rules in this file or use a different package like [Lint](https://pub.dev/packages/lint). + +##### Easy Localization + +Remove the [assets/translations](./assets/translations) folder. +Go to [ios/Runner/Info.plist](./ios/Runner/Info.plist) and remove the following code: + +``` +<key>CFBundleLocalizations</key> +<array> + <string>en</string> + <string>de</string> +</array> +``` + +##### Url Launcher + +For iOS go to [ios/Runner/Info.plist](./ios/Runner/Info.plist) and remove the following code: + +``` +<key>LSApplicationQueriesSchemes</key> +<array> + <string>https</string> + <string>http</string> +</array> +``` + +For Android you can take a look at this [Stackoverflow issue](https://stackoverflow.com/a/65082750) for more information. +Go to [android/app/src/AndroidManifest.xml](./android/app/src/main/AndroidManifest.xml) and remove the following code: + +``` +<queries> + <intent> + <action android:name="android.intent.action.VIEW" /> + <data android:scheme="https" /> + </intent> +</queries> +``` ## License