Skip to content
This repository has been archived by the owner on May 18, 2023. It is now read-only.

Project Files Tour

nguyen_marc edited this page Feb 16, 2020 · 3 revisions

Parce qu'il y a trop de fichiers.

Fichiers Manquants

Commençons par ce qu'il n'y a pas et qui est nécessaire au déploiement.

.
└── android
    ├── app
    │   ├── build.gradle
    │   └── keystore.jks  <-- Manquant
    ├── build.gradle
    └── key.properties    <-- Manquant

Keystore.jks est un Keystore contenant la clé d'upload.

key.properties contient les paramètres nécéssaire à Gradle pour build. Voir ./android/app/build.gradle. Il y a 4 paramètres nécéssaires au déploiement :

  • keyAlias : Identifiant de la clé
  • keyPassword : Mot de passe de la clé
  • storeFile : Emplacement du keystore à partir du dossier app
  • keyPassword : Mot de passe du KeyStore.

Le setup du KeyStore se fait en suivant le guide de Google ou le guide de Oracle.

Vue Globale

.
├── .ci-scripts
├── .devcontainer
├── .git
├── .github
├── android
├── assets
├── docs
├── ios
├── lib
├── test
├── test_driver
├── web
├── .coveralls.yml
├── .gitignore
├── .gitlab-ci.yml
├── .metadata
├── .packages
├── 1.dart_to_arb.sh
├── 2.arb_to_dart.sh
├── AUTHORS
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── PRIVACY_POLICY.md
├── README.md
├── analysis_options.yaml
├── pubspec.yaml
├── resize_test_integration.sh
├── test_coverage.sh
└── test_integration.sh

Git

.git, .gitignore et différents .gitkeep. Il n'y aura aucune explication. Voir Git.

Lié au développement

Dossiers

.devcontainer permet de faire du développement dans un container. Voir le guide de VSCode.

android contient les fichiers destinées au développement Android.

ios contient les fichiers destinées au développement iOS.

web contient les fichiers destinées au développement Web.

asset contient les fichiers transférés lors de la compilation de l'application.

lib contient le code source de l'application basé sur Flutter. C'est là que l'on code.

test contient les tests unitaires.

test_driver contient les tests d'intégrations.

Fichiers

Internationalisation

1.dart_to_arb.sh permet de générer des templates pour l'internationalisation. Les fichiers générés sont stockées dans un dossier ./assets/l10n.

2.arb_to_dart.sh permet de générer le codes liés aux templates de l'internationalisation. Les fichiers générés sont stockés dans ./lib/core/constants/l10n

Analyzer et gestion de paquets

analysis_options.yaml paramètre le flutter analyzer

pubspec.yaml est le gestionnaire de version des paquets. C'est là que l'on change la version de l'application, des versions de paquets et des dépendances de développement. Voir le guide de Flutter sur la gestion des paquets, l'ajout d'assets et le fichier en elle-même.

Tests unitaires et intégrations

test_coverage.sh pour lancer les tests unitaires avec coverage et génération d'un site web. Voir genhtml.

test_integration.sh pour lancer les tests d'intégrations. Voir Flutter Driver.

resize_test_integration.sh permet de rétrécir les captures générés par les tests d'intégrations.

Lié à Github et au CI/CD

Dossiers

.ci-scripts contient des scripts pour alimenter les containers lors de certaines phases dans la pipeline CI/CD.

.github contient des templates pour Github et peut contenir des Github Actions pour le CI/CD.

docs contient des images pour la documentation Github et Play Store.

Fichiers

.coveralls.yml lié à la publication du score des tests unitaires.

.gitlab-ci.yml contient la configuration de Gitlab CI.

AUTHORS, CODE_OF_CONDUCT.md, CONTRIBUTING.md, LICENSE, PRIVACY_POLICY.md et README.md sont des fichiers de documentation et législation.

Android

Avant de continuer. Voir les fichiers manquants afin de déployer sur Android.

./android
├── app
│   ├── src
│   │   ├── debug
│   │   │   └── AndroidManifest.xml
│   │   ├── main
│   │   │   ├── kotlin/com/minitel/toolbox
│   │   │   │   └── MainActivity.kt
│   │   │   ├── res
│   │   │   └── AndroidManifest.xml
│   │   └── profile
│   │       └── AndroidManifest.xml
│   ├── build.gradle
│   ├── keystore.jks    <-- Manquant
│   └── proguard-rules.pro
├── gradle
│   └── wrapper
│       └── gradle-wrapper.properties
├── .gitignore
├── build.gradle
├── gradle.properties
├── key.properties     <-- Manquant
└── settings.gradle

Permissions de l'application

./android/app/src/debug/AndroidManifest.xml contient les permissions en debug.

./android/app/src/profile/AndroidManifest.xml contient les permissions en performance profiling.

./android/app/src/main/AndroidManifest.xml contient permissions en général. Contient également d'autres configurations. Voir la documentation Android sur AndroidManifest.xml.

./android/app/src/main/res/ contient les ressources spécifique à Android comme les couleurs principales de l'application, logo et autres images.

Android Code Spécifique

./android/app/src/main/kotlin/com/minitel/toolbox/MainActivity.kt

Peut contenir du code spécifique. Mais il ne contient que le FlutterActivity en tant que MainActivity.

Gradle

Gradle est un système de build pour Android.

./android/gradle.properties sont les paramètres de build.

./android/build.gradle contrôle les librairies nécessaires à l'application Android. Il paramètre la version de Kotlin et du plugin Gradle.

./android/gradle/wrapper/gradle-wrapper.properties permet de contrôler la version de Gradle. C'est ici qu'on met à jour le système de build.

./android/settings.gradle n'a pas d'utilité pour le projet.

Plus d'info sur Developer Android.

./android/app/src/build.gradle contient toutes la configuration du build, c'est-à-dire, la signature, la minification, les divers librairies, le target, le minSDK et le compileSDK.

./android/app/src/proguard-rules.pro contient une whitelist contre optimisation de code. Voir Code Shrinking de Android.

Références

Pour plus d'information voir : Build and release an Android app de la documentation Flutter.

iOS

Pas de documentation. Application non supporté.

Web

Pas de documentation. Application non supporté.

Flutter Lib

Contient ici, le code de l'application. Voir la section dédiée à la description complète de l'application.