Hi 👋 I'm glad to see you here. Below you can find a gitbook link from which you should be abble to start fast. Also, if you have any questions about the refund, you can see the purposes for which you can do this. Do not hesitate to reach me in Twitter\x: https://x.com/porada_app
Gitbook: https://app.gitbook.com/invite/mzJuF9kLVBalqQxevfuc/Hhxh016eWiPyE9FGVp6b
You can help our project grow and receive refillment in a few ways.
- If you have anything to say, you can create a purpose pull request(if you don't have permission, reach out to me on Twitter to receive it). With your successful contribution, you can receive a full refund of the package that you purchased before.
- You can also refer anyone and receive a full refill of your purchase plan.
- Or you can make a post on any social platform about your experience and receive a half refund of your purchase plan.
📦lib
┣ 📂core
┃ ┣ 📂error
┃ ┣ 📂params
┃ ┣ 📂resources
┃ ┣ 📂routes
┃ ┣ 📂usecase
┃ ┃ ┗ 📜usecase.dart
┃ ┣ 📜app_core.dart
┃ ┗ 📜app_strings.dart
┣ 📂data
┃ ┣ 📂datasources
┃ ┃ ┣ 📂local
┃ ┃ ┗ 📂remote
┃ ┣ 📂models
┃ ┗ 📂repositories
┣ 📂domain
┃ ┣ 📂entities
┃ ┣ 📂repositories
┃ ┗ 📂usecases
┗ 📂presentation
┃ ┣ 📂blocs
┃ ┣ 📂pages
┃ ┗ 📂widgets
- We have three official environments: dev, prod. These are running on GCP.
- For local full-stack development, we have a dev flavor. The flavored_env file for this flavor only
has an example without any credentials, the file with credentials can be found in 1Password, with
the name
Consumer Platform. To run project, flavored_env.example should be copied to flavored_env.
- FEATURE branch naming:
feature/<JIRA TICKET NAME>-<(OPTIONAL) EXATRA NAMING>ex.feature/MOB-458-update-read-me, feature/MOB-458 - BUG's, FIX's, naming:
bug/<TASK NUMBER>-<OPTIONAL PART>, fix/<TASK NUMBER>-<OPTIONAL PART>ex.bug/MOB-100500, fix/MOB-777 - RELEASE naming:
- If the release process starts we make code freeze in a separate branch
named
release-{version}ex.release-{1.0.5} - After release approved on top of release branch we put TAG with the same name and push build
to market
release-{version}ex.release-1.0.5 - Any bugFixes should be pushed in to release branch and later could be merged back to
dev
- If the release process starts we make code freeze in a separate branch
named
To create build for Staging(Dev):
- Create pull request and await until Github Actions done flutter linter work and requested
developer reviewed your changes too.
- Before we push developer changes to
devbranch, firstly we runflutter analyzewhich analyzes code by linter rules(I can send you all our rules if need). then we will runflutter testswhich run all projects tests which we write before. If something from it dropped build pull requests weren’t passed so these changes didn’t push to branch or build. Note: We moved all linter and tests from codemagic stage to the code review stage because it is more chipper for the client to not have it on codemagic, and it’s better for us to know about problems before we even start to build.
- Before we push developer changes to
- Merge pull request to
devbranch, after this codemagic start deploying your build automatically. - Staging build will be uploaded to Slack inside
qa-build. - QA team can download build directly from slack channel but before user device should be added to codemagic QA team to create an Apple certificate.
Specification\Pipeline for Staging build in codemagic:
-
Trigger codemagic:
- on push - on pull request update - trigger only on branch
dev
- on push - on pull request update - trigger only on branch
-
Build specification:
- build with latest XCode\cocoapods\flutter stable versions - flutter mode
profile - signed option automatically for both platform
- build with latest XCode\cocoapods\flutter stable versions - flutter mode
-
Post Script:
- Start script to bump application version automatically. Then push it to the repository with
name
{b_name}-{x.y.z}
- Start script to bump application version automatically. Then push it to the repository with
name
-
Uploaded file:
- uploaded build’s to slack
WEB example: Release build
flutter build web --release --dart-define=ENVIRONMENT=devor
flutter build web --web-renderer canvaskit --dart-define=ENVIRONMENT=dev --release
Debug build provide JavaScript compiled stacktrace with some ability to read code and find issue
flutter build web --profile --dart-define=ENVIRONMENT=dev --dart-define=Dart2jsOptimization=O0Dart plugin dhttpd DHTTPD
Firebase link publishing Short description Precondition:
- Access to Firebase account
- Installed Firebase CLI
- Logged in with command line into Firebase account with access Publish
command:
firebase deploy
CORS issue: How to run on local machine ->CORS Issue
Automate CORS fix using Dart plugin Plugin for automate fix
_Write here your proposition for improvements
- Add freezed library to project link
- Update library in application to newest version; Setup recurring task for every 2 quartiles
- Provide the ability for CI/CD to extract release notes based on lastBuildTag and generate list automatically with adding hash of commit where the build was taken. It can reduce the number of ongoing tags in the repository and make build always pointing on its parent commit with a full set of description
- Setup service for sharing builds internally. Firebase App Distribution
read original article - https://docs.flutter.dev/perf/shader
-
run
flutter run --profile --flavor dev --dart-define=ENVIRONMENT=dev --cache-sksl --purge-persistent-cache -
after app was runned goes to some pages, while you navigatin throught app, in background this command will record the junk files
-
press
Shift+morMto write skia junks to file(flutter_01.sksl.json) -
use in Codemagic or locally to test like
flutter build --release --obfuscate --split-debug-info=$CM_BUILD_DIR/build/app/outputs/symbols --flavor uat -t lib/main.dart --dart-define=ENVIRONMENT=uat --bundle-sksl-path flutter_01.sksl.json