Skip to content

followthemoney1/core

Repository files navigation

Info

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

How to contribute

You can help our project grow and receive refillment in a few ways.

  1. 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.
  2. You can also refer anyone and receive a full refill of your purchase plan.
  3. Or you can make a post on any social platform about your experience and receive a half refund of your purchase plan.

Structure

📦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

Environment setup

  • 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.

Branch naming policy

  • 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

Staging Build

To create build for Staging(Dev):

  1. 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 dev branch, firstly we run flutter analyze which analyzes code by linter rules(I can send you all our rules if need). then we will run flutter tests which 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.
  2. Merge pull request to dev branch, after this codemagic start deploying your build automatically.
  3. Staging build will be uploaded to Slack inside qa-build.
  4. 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.

Staging Codemagic Specification

Specification\Pipeline for Staging build in codemagic:

  1. Trigger codemagic:

    • on push - on pull request update - trigger only on branch dev
  2. Build specification:

    • build with latest XCode\cocoapods\flutter stable versions - flutter mode profile
    • signed option automatically for both platform
  3. Post Script:

    • Start script to bump application version automatically. Then push it to the repository with name {b_name}-{x.y.z}
  4. Uploaded file:

    • uploaded build’s to slack

Build commands

WEB example: Release build

flutter build web --release --dart-define=ENVIRONMENT=dev

or

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=O0

How to run local release app

Dart plugin dhttpd DHTTPD

Firebase publishing

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

Proposed improvements list

_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

How to use localization - nerd

Step by step guide

How to optimize Mobile app with recording SkSl file

read original article - https://docs.flutter.dev/perf/shader

  1. run flutter run --profile --flavor dev --dart-define=ENVIRONMENT=dev --cache-sksl --purge-persistent-cache

  2. after app was runned goes to some pages, while you navigatin throught app, in background this command will record the junk files

  3. press Shift + m or M to write skia junks to file(flutter_01.sksl.json)

  4. 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published