# Chapitre 3. Créer une nouvelle Application

KAppWizard, l'Assistant d'Application KDE, vous aide à commencer à travailler sur de nouveaux projets avec KDevelop. Ainsi, tous vos projets seront d'abord créés par l'assistant ; ensuite, vous pourrez commencer à les construire et à étendre le squelette de code source déjà fourni. KAppWizard vous permet aussi de choisir entre plusieurs types de projets selon les objectifs de votre projet :

- Application KDE Normale : inclut le code source de la structure complète d'une application KDE standard avec le support du modèle Controleur-Document-Vue, une barre de menus, une barre d'outils et une barre d'état ainsi qu'un ensemble de documentations standards basées sur SGML , des liens KDE et des icônes d'applications. C'est le type d'application généralement utilisé pour un nouveau projet KDE& ;;

- Mini Application KDE : contient la même structure générale que le type d'Application KDE Normale mais avec la différence que le code de l'application ne fournit qu'un widget comme fenêtre& ;;

- Application Qt Normale : globalement similaire à une application KDE normale avec la différence que le projet est uniquement basé sur la bibliothèque Qt et ne contient aucun support de KDE. C'est utile pour des projets qui doivent être portables pour les plates-formes Windows ou qui ne nécessitent pas les bibliothèques de KDE pour l'utilisateur final& ;;

- Application C : uniquement basée sur le compilateur C, elle s'exécute dans une console& ;;

- Application C++ : uniquement basée sur le compilateur C++, elle s'exécute dans une console comme une application C et ne nécessite donc pas X-Window& ;;

- Projet personnalisé : crée un projet vide sans aucun code source. C'est utile pour porter dans KDevelop des projets existant déjà ou pour des projets que vous commencez à partir de rien. Notez que vous devrez gérer vous-même tous les fichiers de construction (NdT : makefiles) et les scripts de configuration (NdT : configure scripts).

Dans ce chapitre, nous allons voir comment KAppWizard peut être appelé et ce qui doit être fait pour générer un projet d'application KDE. Ce sera aussi la première étape de notre tour d'horizon, où nous créerons la version initiale d'un projet d'exemple. Pour tous les types de projets, les étapes sont globalement les mêmes, certaines options pouvant juste être disponibles ou non.

# 3.1. Appel de KAppWizard et Génération de Projet

## 3.1.1. Lancement de KAppWizard et Première Page

Pour débuter votre première application KDE, ouvrez KDevelop. Sélectionnez ensuite "Nouveau..." dans le menu "Projet". KAppWizard démarre et vous voyez sur la première page une arborescence contenant les types de projets. Quand un type de projet est sélectionné, vous voyez un aperçu de l'apparence qu'aura l'application après le processus de construction. Choisissez le sous-arbre KDE, type Normal. Appuyez ensuite sur le bouton "Suivant" en bas de la première page de l'assistant. Cela vous mènera à la page suivante où vous devrez définir les options générales du projet.

## 3.1.2. La Page des Paramètres de Génération

Pour notre application exemple, nous choisissons `KScribble` comme nom de projet ; vous devez donc le saisir dans le champ "Nom du projet". Sélectionnez ensuite le dossier où vous voulez construire votre projet ; le dossier par défaut est votre dossier utilisateur. Vous pouvez saisir le chemin manuellement ou vous pouvez appuyer sur le bouton à droite pour sélectionner le dossier dans une boîte de dialogue.

Ensuite, vous devez saisir le numéro de version. Pour la première version, définissez le à `0.1`. Il est habituel de numéroter les nouvelles applications qui sont en cours de développement avec un numéro de sortie inférieur à 1, et comme la version initiale contiendra uniquement l'architecture standard, nous appelerons cette version 0.1.

Enfin, ajoutez votre nom dans le champ "Auteur" et votre adresse de courrier électronique. Vous pouvez laisser tels quels (valeurs par défaut) les autres paramètres.

Pour obtenir des informations sur toutes les autres options, vous pouvez faire un clic droit sur les options et vous obtiendrez une fenêtre d'aide rapide décrivant le but de cette option.

Ces options sont :

- générer les sources et les en-têtes : génère le code source de l'application

- Fichiers standards GNU : ajoute une copie de la Licence Publique Générale GNU GPL au projet ainsi que des fichiers standards pour informer l'utilisateur lors de la distribution du paquetage

- Manuel d'utilisation : le manuel d'utilisation en SGML , déjà préparé pour votre projet

- Documentation de l'API : crée une documentation initiale au format HTML pour l'Interface de Programmation d'Application (NdT : API signifie littéralement Application Programming Interface)

- Fichier lsm : le "Linux Software Map", utilisé par les sites de distribution, il contient une description rapide sur le but du projet et ses prérequis

- Fichier .kdelnk : un lien KDE qui installera votre application dans le menu "Applications" du tableau de bord de KDE

- Icône de Programme : une icône qui représente votre projet et peut être utilisée pour créer un lien sur le bureau.

Maintenant, nous allons passer à la page suivante en appuyant à nouveau sur le bouton "Suivant" pour définir le modèle des fichiers d'en-têtes de votre projet.

## 3.1.3. Les modèles des En-têtes et des fichiers Sources

La page de modèle des fichiers d'en-tête vous permet d'ajouter automatiquement, dans vos fichiers d'en-tête, un préambule contenant le nom du fichier, la date de construction, l'année du copyright ainsi que votre nom et votre adresse électronique. Vous n'avez pas à convertir ces parties en majuscule car KAppWizard le fait automatiquement et enregistre le modèle de ce projet pour l'utiliser lors de la création de nouveaux fichiers.

La seconde partie du modèle d'en-tête par défaut contient des informations sur la licence. Par défaut, votre projet est placé sous la Licence Publique Générale GNU GPL qui est aussi incluse dans le paquetage. Cette licence est utilisée pour protéger votre code source contre toute personne qui copierait seulement les sources pour son usage personnel. La Licence Publique Générale, qui vous offre cette licence gratuitement et protège vos droits en tant qu'auteur, est habituelle pour la distribution le logiciels libres. Pour obtenir plus d'informations sur cette licence, vous devriez consulter ultérieurement le fichier COPYING dans le répertoire de base de votre nouveau projet, qui est une copie de la GPL et est déjà distribué avec votre application.

Cependant, vous pouvez choisir une autre licence ou un autre modèle d'en-tête que vous utilisez déjà pour vos projets. Dans ce cas, vous pouvez éditer directement le modèle donné par défaut. Pour cela, le modèle apparaît dans une fenêtre d'édition. Pour effacer la page par défaut, sélectionnez "Nouveau" ; pour utiliser un autre modèle, choisissez "Chargement..." qui vous permet de choisir le fichier de modèle.

Quand vous avez terminé, allez à la page suivante en appuyant sur "Suivant". C'est la page de modèle pour vos fichiers sources, elles est globalement identique à la page de modèle d'en-tête. La seule différence est que ce modèle est utilisé pour vos fichiers d'implantation.

## 3.1.4. Création du Projet

Maintenant que vous avez défini toutes les options de KScribble, sélectionnez "Suivant" et appuyez sur le bouton "Créer" au bas de la fenêtre de l'assistant. Si ce bouton n'est pas disponible, vous n'avez pas défini toutes les options correctement. Pour corriger une erreur, revenez en arrière dans l'assistant en appuyant sur "Précédent".

Ensuite, vous allez voir ce que fait KAppWizard - il copie tous les modèles dans le dossier de votre projet et crée le nouveau projet. Lorsque KAppWizard a terminé, le bouton "Annuler" se change en un bouton "Quitter" pour sortir de l'assistant. Après cette dernière étape, vous avez terminé la création d'un nouveau projet. Ensuite, KDevelop le charge et l'affichage de l'arborescence vous permet de naviguer à travers les fichiers et les classes du projet.

Dans la section suivante, nous discuterons de la construction et de l'exécution de votre première version de KScribble, ainsi que de l'organisation du code source.