> Vocabulaire (v0.7.297) : dans le Studio, un écran s'appelle **interface** ; **module** désigne un fichier de code. Voir `modules-application.md`.

Source : https://docs.berkios.online/studio/ecrans-modulaires/ · Section : Studio · Documentation officielle BERKIOS (https://docs.berkios.online)


# Écrans modulaires BERKIOS

Les projets peuvent séparer leurs écrans graphiques en fichiers `.bk` dédiés. Le manifeste `berkios.project.json` relie chaque écran à son fichier avec la propriété `file`.

```json
{
  "entry": "main.bk",
  "initialScreen": "accueil",
  "modules": [{
    "id": "navigation",
    "entry": "src/screens/navigation.bk",
    "screens": [
      { "name": "accueil", "file": "src/screens/accueil-ui.bk" }
    ]
  }]
}
```

Un fichier `accueil-ui.bk` contient une application de type interface et une déclaration d'interface :

```berkios
langue français
application "Écran d'accueil"
  type interface

interface Accueil
  titre "Bienvenue"
  étiquette message "Mon écran est indépendant."
```

`interfaceId` est facultatif si le fichier ne contient qu'une interface. Le compilateur déduit alors son identifiant. S'il y a plusieurs interfaces dans le même fichier, il faut préciser `interfaceId` pour chaque écran.

Les chemins sont relatifs à la racine du projet. Les chemins inexistants, les liens sortant du dossier projet, les interfaces en double et les fichiers qui ne compilent pas sont refusés. Les fichiers sont suivis par le rechargement à chaud de l'aperçu.

Les modules Core sont indépendants : ils restent déclarés avec `modules[].entry` et peuvent importer des services `.bk` avec la syntaxe Core existante.

## Lancer l'exemple

Depuis le dossier `compiler` :

```bash
node bin/berkios.mjs apercu ../examples/application-modulaire/main.bk
```

Le manifeste `berkios.project.json` doit se trouver à côté de `main.bk`.
