Getting Started

Structure des repertoires

Introduction

Nylo Website utilise une structure de repertoires propre et organisee inspiree de Laravel. Cette structure aide a maintenir la coherence entre les projets et facilite la recherche de fichiers.

Repertoire racine

nylo_app/
├── android/          # Android platform files
├── assets/           # Images, fonts, and other assets
├── ios/              # iOS platform files
├── lang/             # Language/translation JSON files
├── lib/              # Dart application code
├── test/             # Test files
├── .env              # Environment variables
├── pubspec.yaml      # Dependencies and project config
└── ...

Le repertoire lib

Le dossier lib/ contient tout le code Dart de votre application :

lib/
├── app/              # Application logic
├── bootstrap/        # Boot configuration
├── config/           # Configuration files
├── resources/        # UI components
├── routes/           # Route definitions
└── main.dart         # Application entry point

app/

Le repertoire app/ contient la logique principale de votre application :

Repertoire Objectif
commands/ Commandes Metro CLI personnalisees
controllers/ Controleurs de pages pour la logique metier
events/ Classes d'evenements pour le systeme d'evenements
forms/ Classes de formulaires avec validation
models/ Classes de modeles de donnees
networking/ Services API et configuration reseau
networking/dio/interceptors/ Intercepteurs HTTP Dio
providers/ Fournisseurs de services demarres au lancement de l'application
services/ Classes de services generaux

bootstrap/

Le repertoire bootstrap/ contient les fichiers qui configurent le demarrage de votre application :

Fichier Objectif
boot.dart Configuration de la sequence de demarrage principale
decoders.dart Enregistrement des decodeurs de modeles et d'API
env.g.dart Configuration d'environnement chiffree generee
events.dart Enregistrement des evenements
extensions.dart Extensions personnalisees
helpers.dart Fonctions d'aide personnalisees
providers.dart Enregistrement des fournisseurs
theme.dart Configuration du theme

config/

Le repertoire config/ contient la configuration de l'application :

Fichier Objectif
app.dart Parametres principaux de l'application
design.dart Design de l'application (police, logo, chargeur)
localization.dart Parametres de langue et de localisation
storage_keys.dart Definitions des cles de stockage local
toast_notification.dart Styles de notifications toast

resources/

Le repertoire resources/ contient les composants d'interface utilisateur :

Repertoire Objectif
pages/ Widgets de pages (ecrans)
themes/ Definitions de themes
themes/light/ Couleurs du theme clair
themes/dark/ Couleurs du theme sombre
widgets/ Composants de widgets reutilisables
widgets/buttons/ Widgets de boutons personnalises
widgets/bottom_sheet_modals/ Widgets de feuilles modales inferieures

routes/

Le repertoire routes/ contient la configuration du routage :

Fichier/Repertoire Objectif
router.dart Definitions des routes
guards/ Classes de gardes de routes

Repertoire des assets

Le repertoire assets/ stocke les fichiers statiques :

assets/
├── app_icon/         # App icon source
├── fonts/            # Custom fonts
└── images/           # Image assets

Enregistrement des assets

Les assets sont enregistres dans pubspec.yaml :

flutter:
  assets:
    - assets/fonts/
    - assets/images/
    - assets/app_icon/
    - lang/

Helpers pour les assets

Nylo Website fournit des helpers pour travailler avec les assets.

Assets d'images

// Standard Flutter way
Image.asset(
  'assets/images/logo.png',
  height: 50,
  width: 50,
)

// Using LocalAsset widget
LocalAsset.image(
  "logo.png",
  height: 50,
  width: 50,
)

Assets generaux

// Get any asset path
String fontPath = getAsset('fonts/custom.ttf');

// Video example
VideoPlayerController.asset(
  getAsset('videos/intro.mp4')
)

Fichiers de langue

Les fichiers de langue sont stockes dans lang/ a la racine du projet :

lang/
├── en.json           # English
├── es.json           # Spanish
├── fr.json           # French
└── ...

Voir Localisation pour plus de details.