# Nouvel outil de développement



## xbuilder (9 Juin 2015)

Bonjour à toutes et à tous

Je viens de terminer la construction d'un outil de développement pour OS X.
Il est basé sur un langage Pascal orienté objet ainsi que Cocoa. Il s'agit d'une version bêta pouvant fonctionner dès Maverick.

Je recherche des personnes qui seraient intéressées par ce projet. Je leur demande de faire des critiques objectives afin que je puisse l'améliorer.

Le projet se présente sous la forme d'un dmg téléchargeable à l'adresse suivante :

https://copy.com/NRGvec2FgdxoKwmR

Il contient l'ensemble du système à l'exception des tutoriels vidéos qui sont à télécharger à la demande.

Par avance, merci à toutes celles ou ceux qui vont y participer.


----------



## xbuilder (16 Juin 2015)

Bonjour,

Vous êtes nombreux à visiter le fil mais aucun n'y participe !

Je pense que cela est dû au fait que la description du projet est insuffisante.

Sans entrer dans le détail, le système peut s'adresser à des personnes désireuses d'évoluer dans l'utilisation de leur Mac.  De manière générale, il s'adresse à tout public.
Le système est proposé avec 21 exemples d'application tels que l'enregistrement audio, un client ftp, un enregistreur d'événements (déplacement de la souris, utilisation du clavier), un compresseur/décompresseur zip, un éditeur de graphiques, etc.

Au travers de ces exemples, vous constaterez que les briques logicielles réalisent la plupart des taches. Ces briques se déclinent en plusieurs catégories :

1. Les contrôleurs visuels ; ce sont des composants permettant la gestion des documents (fenêtre plus fichier), des boîtes de dialogue modales (bloquantes), et des feuilles (fenêtres recouvrant une autre fenêtre, elles sont semi modales).

2. Les objets liés ; ce sont des composants prêts à l'emploi qui sont pilotés par événement. Par exemple, lorsqu'une compression s'est achevée, l'objet lié CXZipUnZip déclenche l'événement DidCompress en transmettant le nom du fichier venant d'être compressé.La version actuelle propose 21 objets liés tels que le support automatique des mises à jour, le convertisseur audio, la gestion de la télécommande Apple, des formateurs calendaires et numériques, ou encore la synthèse vocale.

3. Les contrôles ; ce sont les composants déposés dans les fenêtres. Ils sont regroupés dans quatre catégories ; les boutons (inutile de les présenter), les contrôles d'acquisition (les zones de saisie, la capture vidéo, le traitement de texte, etc.), les contrôles de restitution (les étiquettes, les graphiques, les séquences vidéo, les documents PDF, les prompteurs, les tables simples et les tables hiérarchiques, etc.), et les contrôles de dispositions (les boîtes à onglets, les barres de boutons ancrés, les vues de transition, les placards, etc.).

Dans le prochain post, j'expliquerai comment s'effectue l'intégration des objets liés et des contrôles dans les contrôleurs visuels.

Bonne journée.


----------



## Mboum (16 Juin 2015)

Bonjour,

j'entend bien votre idée mais désolé à l'époque d'xcode, playground et swift; quel est l'intérêt d'utiliser des solutions tiers embarquées? il y a 15 ans peut-être? et encore Code Warrior n'a pas survécu.

De plus, les composants que vous décrivez existent déjà sous forme de projets open-source matures et maintenus par un grand nombre de développeurs ce qui en assure la solidité et la pérennité ; qui développe en cocoa est familier aujourd'hui avec des projets tel que cocoa-pods?


----------



## xbuilder (16 Juin 2015)

Bonsoir,

Tout d'abord, je vous remercie d'avoir répondu et je vais vous expliquer mon raisonnement.

«_J'entends bien votre idée mais désolé à l'époque d'xcode, playground et swift; quel est l'intérêt d'utiliser des solutions tiers embarquées?_»

Je connais bien Xcode et je dois dire qu'au fil des versions, il devient de plus en plus lourd et il est difficile parfois de s'y retrouver. La documentation devient de moins en moins lisible.

Je ne peux me prononcer pour playground, car je ne le connais pas.

Quant à Swift, je n'y suis pas encore passé. Mais compte tenu de la structure de Cocoa (delegation,notifications, etc…), les chaînages entre le code et l'interface utilisateur nécessite toujours une intervention humaine. J'ai eu plusieurs fois des soucis avec des outlets incomplets. Le projet se charge de toutes ces taches pénibles.

«_il y a 15 ans peut-être? et encore Code Warrior n'a pas survécu._».

J'ai également utilisé plusieurs années Code Warrior, Power Plan n'a jamais été structuré pour fonctionner dans un IDE.

«_De plus, les composants que vous décrivez existent déjà sous forme de projets open-source matures et maintenus par un grand nombre de développeurs ce qui en assure la solidité et la pérennité ; qui développe en cocoa est familier aujourd'hui avec des projets tel que cocoa-pods? _»

Sur ce point, je vais répondre sur un cas précis. J'ai intégré le projet FTPManager (GitHub-nkreipke). Avant de l'intégrer, j'ai réalisé de nombreux tests. Ce projet fonctionnait parfaitement à l'exception d'un blocage après environ 40 secondes d'utilisation.
J'ai contacté l'auteur pour lui signaler le problème, je lui également fournit une autre fonctionnalité (le renommage d'un fichier ou d'un répertoire sur le serveur). La réponse n'a pas résolu le problème. J'ai finalement développé un outil de commande en ligne qui est lancé pour chaque opération. Problème résolu.
Ce vécu peut s'expliquer simplement sur le fait que lorsque des gens développent de tels projets, on ne peut rien exiger d'eux en cas de bogues.

Pour ce qui est de la pérennité, de nombreux projets tombent à l'eau sur GitHub.

Actuellement, j'implémente les PopOver, j'ai dû reprendre un code de Matt Gemel (excellent) car la solution d'Apple est franchement une usine à gaz !

Il y a pas moins de trois objets nécessaires  ! la solution qui sera proposée dans le projet sera la même que celle des boîtes de dialogue ou des feuilles.


----------



## zeltron54 (17 Juin 2015)

Bonjour,
Je précise d'entrée, je ne suis pas programmeur.
J'ai voulu tester l'application, celle-ci s'installe sans problème, au lancement elle me propose une fenêtre d'ouverture de projet existant, que je décline. Je demande alors "nouveau projet" mais après avoir donné un titre et cliqué sur créer j'ai une erreur !

Erreur du gestionnaire de projet #12.
Le répertoire des modèles de projets est inaccessible.

Par contre l'ouverture d'un projet existant choisi dans le dossier "Projects-->Samples" fonctionne sans problème.


----------



## xbuilder (17 Juin 2015)

Bonjour,

@zeltron54

D'abord, je tiens à vous remercier d'avoir installé XBuilder.

Le projet s'adresse à tout public. Le fait de n'être pas programmeur n'est absolument pas un obstacle. La documentation abondante s'adresse également aux débutants.

En ce qui concerne l'erreur, le composant Templates ne figurait pas dans l'archive, un oubli.

Dans la nouvelle version (1.02), j'ai également ajouté une fonctionnalité très utile pour se renseigner sur des symboles figurant dans les codes source. Elle provient de l'outil de développement d'Apple, Xcode. Préalablement, il faut que la fenêtre de l'aide en ligne soit affichée en mode assistant. Au niveau de l'éditeur de code, il suffit d'appuyer sur la touche option, les symboles sont soulignés et affichés en bleu tandis que la description est présentée dans l'aide.

Aujourd'hui, j'ai pu tester les projets livrés sur un iMac 27, il semble qu'il y ait un problème sur le projet KeyMouseRecorder (enregistre les événements de la souris et du clavier). Les événements du clavier ne sont pas interceptés sur ce matériel. Le développement a été effectué sur un iMac 24. Je vais creuser le problème.

Le dmg de la nouvelle version est accessible depuis le lien suivant :

https://copy.com/tUnVch9XCOietMBT


----------



## xbuilder (17 Juin 2015)

Les événements du clavier ne peuvent être restitués que si l'application correspondante est autorisée à le faire. Pour cela, il faut ouvrir les préférences système, cliquez sur « Sécurité et confidentialité », onglet « Confidentialité ». Si l'application ne figure pas dans la table de droite, il faut la glisser/déposer dedans en ayant préalablement déverrouillé le cadenas.


----------



## xbuilder (18 Juin 2015)

Déplacement du dmg vers Dropbox afin d'éviter de poster des nouveaux liens pour chaque mise à jour.

https://dl.dropboxusercontent.com/u/45497180/XBuilder Installer.dmg


----------



## xbuilder (24 Juin 2015)

version 1.1 en ligne...


----------



## xbuilder (21 Juillet 2015)

version 1.11 en ligne… (10.10 mini)
démo de l'appui finale : https://vimeo.com/user42199032/demo1finalxbuilder
démo de sa construction : https://vimeo.com/user42199032/demo1xbuilder


----------



## xbuilder (30 Juillet 2015)

Version 1.12 en ligne… https://dl.dropboxusercontent.com/u/45497180/XBuilder Installer.dmg

Support du Cover Flow identique à celui du Finder et peut afficher les pages d'un document PDF.

Sur les recommandations d'un testeur, lors de l'ouverture de l'application, une boîte de dialogue propose désormais l'ouverture automatique de l'aide en ligne.

Nouvel objet lié proposant une loupe grossissante.

Vidéo vimeo qui montre une partie des applications produites à l'aide de XBuilder:






Suite au début de septembre.

A bientôt.


----------



## xbuilder (8 Septembre 2015)

Version 1.13 en ligne : https://dl.dropboxusercontent.com/u/45497180/XBuilder Installer.dmg

Intégration de la représentation ondulatoire d'une source audio à la fois pour une capture (AudioRecorderWaveForm) ou d'une restitution (AudioPlayerWaveForm).

Intégration des notifications du Finder.

Ces trois éléments ajoutent respectivement deux nouveaux contrôles et un nouvel objet lié.

Chacun d'eux sont expliquées à l'aide de trois nouveaux projets déployés lors de l'installation de XBuilder.

Vidéo Vimeo montrant l'implémentation de ces nouvelles classes.


----------



## xbuilder (12 Octobre 2015)

Bonjour,

La version 1.14 est en ligne : https://dl.dropboxusercontent.com/u/45497180/XBuilder Installer.dmg


Elle apporte des correctifs ainsi qu'une optimisation du compilateur ; la compilation/construction est améliorée jusqu'à 30 %, la table des symboles été réduite de 10 %.

Ajoute l'instruction Continue, l'assignation d'expression compatible lors de la déclaration des variables.

Nouveau projet permettant de créer des tâches exécutées en parallèle dans les projets applicatifs.

Remaniement de l'éditeur de code, notamment la modification profonde de l'affichage des lignes et des points d'arrêt; plus rapide et plus esthétique.

Testé sous El Capitan.


Cette mouture est pour le moment la dernière à mettre en œuvre des fonctionnalités de Cocoa. Ce projet est momentanément mis en sommeil.


Le nouveau projet intitulé XMate permettra la construction d'agents conversationnels comme Siri  en utilisant QUD (Questions Under Discussion). Il permettra d'exécuter des briques logicielles développées à l'aide de XBuilder. Il sera ensuite proposé sur l'App store.

Pour finir, une vidéo






A bientôt.


----------



## xbuilder (30 Octobre 2015)

Clôturé


----------

