<<

KDevelop Tour ’horizon et retour d’expériences (++)

2e rencontre DevelopR6 25 mars 2010

F. Langrognet

F. Langrognet () KDevelop Mars 2010 1 / 27 PLAN

1 Introduction

2 Principales fonctionnalités

3 KDevelop 4

4 Cas pratique - utilisation d’outils intégrés à KDevelop

5 Alternatives à KDevelop - Conclusion

F. Langrognet () KDevelop Mars 2010 2 / 27 PLAN

1 Introduction

2 Principales fonctionnalités

3 KDevelop 4

4 Cas pratique - utilisation d’outils intégrés à KDevelop

5 Alternatives à KDevelop - Conclusion

F. Langrognet () KDevelop Mars 2010 3 / 27 Historique

Historique

1998 : Mise en place du projet KDevelop ◮ Objectif : bâtir un IDE pour KDE facile à utiliser ◮ Langage : uniquement C/C++

2001 : KDevelop 2.0 2004 : KDevelop 3.0 (complètement réécrit) ◮ Langages supportés : C++, Java, Python, PHP, . . . ◮ Plugins 1er mai 2010 : KDevelop 4.0.0 Complètement réécrit - encore ! Beaucoup de nouveautés et fonctionnalités améliorées Version 3.9.95 (ubuntu 9.10) : disponible uniquement pour le C++

F. Langrognet () KDevelop Mars 2010 4 / 27 Ecosystème Ecosystème naturel Développement en C++ sous /KDE

Mais aussi ... 15 langages supportés Version windows () et Mac OS

F. Langrognet () KDevelop Mars 2010 5 / 27 PLAN

1 Introduction

2 Principales fonctionnalités

3 KDevelop 4

4 Cas pratique - utilisation d’outils intégrés à KDevelop

5 Alternatives à KDevelop - Conclusion

F. Langrognet () KDevelop Mars 2010 6 / 27 Aperçu des fonctionnalités

Langages / Fonctionnalités

F. Langrognet () KDevelop Mars 2010 7 / 27 Fonctionnalités (1)

Présentation des fonctionnalités de KDevelop 3.5.3 (et ... 4.0)

15 langages Construction de projet Ada, C, C++, Objective-C, SQL, autotools , Haskell, Java, PHP, Pascal, qmake , Python, Ruby, Bash

ant (java)

F. Langrognet () KDevelop Mars 2010 8 / 27 Fonctionnalités (2) Edition (texte/classes)

Coloration syntaxique Aide à la création de classe Indentation automatique Visualisation de classes : Complétion automatique ◮ Classe mère, classes dérivées ◮ Membres privés, publics, protégés Aide à l’ouverture/fermeture de ◮ parenthèses, accolades Liste des utilisations des méthodes/fonctions Utilisations de variables (KDevelop4)

F. Langrognet () KDevelop Mars 2010 9 / 27 Fonctionnalités (3)

Editeur d’IHM SGV cvs svn Designer perforce clearCase (KDevelop4) (KDevelop4)

F. Langrognet () KDevelop Mars 2010 10 / 27 Fonctionnalités (4)

Debugger Génération automatique de Points d’arrêts conditionnels documentation Liste d’appel

Etat des variables Doxygen pour C++

F. Langrognet () KDevelop Mars 2010 11 / 27 Fonctionnalités (5)

Kits de développement Développement de plugins KDE QT (QT Designer, QT Linguist) ◮ GTK Kate ◮ KFile wxWidgets ◮ Konqueror ◮ superwaba Noatun ◮ ... GBA KDevelop

F. Langrognet () KDevelop Mars 2010 12 / 27 PLAN

1 Introduction

2 Principales fonctionnalités

3 KDevelop 4

4 Cas pratique - utilisation d’outils intégrés à KDevelop

5 Alternatives à KDevelop - Conclusion

F. Langrognet () KDevelop Mars 2010 13 / 27 KDevelop4

Quelques améliorations (parmi d’autres) Nouveau langage : C#

Nouveaux SGV (décentralisés) : ◮ git ◮ mercurial ◮ bazaar

Tests ◮ CppUnit, QTest

Edition (coloration, navigation dans les classes, . . . )

F. Langrognet () KDevelop Mars 2010 14 / 27 KDevelop4 - Edition (1) Coloration syntaxique

F. Langrognet () KDevelop Mars 2010 15 / 27 KDevelop4 - Edition (2) Complétion automatique

F. Langrognet () KDevelop Mars 2010 16 / 27 KDevelop4 - Edition (3) Information contextuelle

F. Langrognet () KDevelop Mars 2010 17 / 27 KDevelop4 - Edition (4) Edition de classes, navigation

F. Langrognet () KDevelop Mars 2010 18 / 27 PLAN

1 Introduction

2 Principales fonctionnalités

3 KDevelop 4

4 Cas pratique - utilisation d’outils intégrés à KDevelop

5 Alternatives à KDevelop - Conclusion

F. Langrognet () KDevelop Mars 2010 19 / 27 Développement de Mixmod avec KDevelop Mixmod/KDevelop

Edition Logiciel de classification de données Debugger Ecrit en C++ (et avec QT) cmake Valgrind Développé sous Linux KCacheGrind Distribué pour Linux, Windows (SVN) (Doxygen)

F. Langrognet () KDevelop Mars 2010 20 / 27 Utilisation de cmake

cmake cmake -> KDevelop cmake . -GKDevelop3 Possibilité de créer des projets CodeBlocks, CDT KDevelop -> cmake Configuration de cmake depuis KDevelop

F. Langrognet () KDevelop Mars 2010 21 / 27 Utilisation de valgrind Valgrind Outil d’analyse dynamique de code C++ (comme Purify) Utilisation de valeurs ou de pointeurs non initialisés Accès à des zones mémoire libérées ou non allouées

Libération à tort d’une zone mémoire (ex : 2 delete d’une même zone) Non libération de mémoire allouée Passage d’arguments invalides à certaines fonctions de la librairie standard

F. Langrognet () KDevelop Mars 2010 22 / 27 Utilisation de kCachegrind KCachegrind Navigateur pour les données produites par des outils de profilage

F. Langrognet () KDevelop Mars 2010 23 / 27 PLAN

1 Introduction

2 Principales fonctionnalités

3 KDevelop 4

4 Cas pratique - utilisation d’outils intégrés à KDevelop

5 Alternatives à KDevelop - Conclusion

F. Langrognet () KDevelop Mars 2010 24 / 27 Et si l’on partait des besoins ?

Un IDE pour C++

Critères de choix : Gratuit, Payant Linux, Windows Fonctionnalités : complétion de code, gestionnaire de version, debugger, . . .

F. Langrognet () KDevelop Mars 2010 25 / 27 Conclusion

KDevelop

IDE très complet Nombreux outils pour le C++ valgrind, KCacheGrind, Doxygen, . . . Utilisation sous Windows, Création facile de projets divers MacOS très marginale QT, WxWidgets, . . . Cross compilation ? Edition de texte, navigation classes, fichiers de grande qualité (KDevelop4) Création de package? Debugger performant Projet actif et pérenne

F. Langrognet () KDevelop Mars 2010 26 / 27 KDevelopR6

FIN

Merci de votre attention

Florent Langrognet

F. Langrognet () KDevelop Mars 2010 27 / 27