Skip to content

Join the global community with MyQuran App for Quran engagement.

License

Notifications You must be signed in to change notification settings

Eldar2021/my_quran

Repository files navigation

My Quran Hatim Aplication.

Regardless of your nationality, place of residence, gender, or social status, you're invited to join a global community with MyQuran App. This app offers a personalized and comprehensive way to engage with the Quran, making it easy for users to track their recitations, follow prayer times.

Requirements

  • Dart sdk: ">=3.5.0 <4.0.0"
  • Flutter: "3.24.3"
  • Android: minSdkVersion 23
  • iOS: --ios-language swift, Xcode version >= 15.4.0

Melos

Melos splitting up large code bases into separate independently versioned packages is extremely useful for code sharing. However, making changes across many repositories is messy and difficult to track, and testing across repositories gets complicated really fast. To solve these (and many other) problems, some projects will organize their code bases into multi-package repositories (sometimes called monorepos).

  • Install melos
dart pub global activate melos

Setup

melos bootstrap

Run App

  • If you have an AVD or real device attached, you can do
melos run-app

Run tests

  • run all tests from the command line:
melos test

Integration tests

  • run integration tests in test_driver directory:
melos integration-test

Fmt

dartfmt lacks config file support, which implies that customizations need to be done by users individually. The default limit of 80 characters line length conflicts with the deeply nested structure of flutter's declarative code for designing widgets. This causes many unwanted linebreaks that reduce the readability of flutter code. Hence, we increase the line length of the code to 120.

  • Settings > Dart > Line length 120.
  • Autoformat on save: Settings > Languages and Frameworks > then tick: Format code on save, Organize imports on save.
  • Format the whole codebase with:
melos format-all

Generate

  • Re generate .g files run:
melos run-build-runner-all

Installing iOS Dependencies

./scripts/pod_install.sh