Sondage nouvel outil de développement R.A.D

Seriez-vous intéressé par un nouvel outil de développement pour Mac dans l’esprit de Delphi. ?
Il sera fondé sur Cocoa et un Pascal Objet étendu pour prendre en charge certaines spécificités de l’objective-C.
Merci de votre participation.

Mieux vaut étendre un projet existant avec une extension, il y a de très bon éditeurs

La description est tellement légère que j’ai envie de dire non :slight_smile:

Que dire de plus ? Posez-moi des questions ?

Si tu ne sais pas mieux présenter ton idée ou projet (ça dépend de son avancement) que ça, franchement, je doute de la qualité du produit fini.
C’est pas à nous de demander des infos, c’est à toi de bien le décrire. Nous on ne demande rien, c’est toi qui veut quelque chose de nous :wink:

Tu as effectivement raison et je vais au mieux de te le présenter.
L’objectif du projet est de proposer une solution plus simple d’utilisation de Cocoa que le couple Xcode/IB.
L’application regroupe à la fois un éditeur pour l’interface visuelle et un pour le code correspondant. Tout ceci est intégéré dans un projet qui peut également contenir des références à des ressources ou des ressources, telles que les menus de l’application.
L’idée est la même que celle de Delphi, on dessine des contrôles et ils sont automatiquement insérés dans le code. De là, il est possible de choisir le ou les événements que l’on veut implémenter. Si tu connais Cocoa, les notifications, les méthodes événementielles, les méthodes actions sont identifiées comme des événements. Quelques exemples concrets pour illustrer:

Par exemple. on dispose d’un bouton butOk et l’on veut écrire le code de réaction, on obtient la méthode suivante:

Event x.butOK_Action;
Begin
End; { butOK_Action };

x étant le nom de la classe du controleur. Il peut s’agir d’un controleur de fenêtre ou de boite de dialogue (pannel), ce qui est équivalent à quelques propriétés près.

Si l’on veut traiter l’événement mouseEntered, il suffit de sélectionner cet événement dans l’éditeur de code, on obtient:

Event x.butOK_MouseEntered(inEvent:NSEvent);
Begin
End; { butOK_MouseEntered }

Pour les fenêtres, par exemple, la notification est traitée comme un événement.

Event x.WindowDidBecomeKey;
Begin
End; { WindowDidBecomeKey }

Fini les sous cas, délegate, target et compagnie. Une approche unique et globale. C’est l’idée directrice d’XDev.

La gestion des menus est également simplifiée. Chaque menu traité doit implémenter deux méthodes. La première consiste à l’exécution de l’action de la commande. Elle s’écrira pour l’article Nouveau :

Event x.mnuItemNew_Action;
Begin
End; { mnuItemNew_Action }

La seconde s’interesse à la façon de gérer la disponibilité. Elle s’écrira:

Event x.mnuItemNew_Validation:Boolean;
Begin
End; { mnuItemNew_Validation }

ou

Event x.mnuItemNew_Validation(inItem:NSMenuItem):Boolean ;
Begin
End; { mnuItemNew_Validation }

A ce propos, je n’ai pas tranché. La seconde écriture permet de modifier l’article de menu dans son ensemble. La valeur retournée indique si oui ou non l’article est dispo.

Par ces quelques exemples, il est évident que certaines lourdeurs ont été radicalement éliminées.
Chaque fois que j’implémente une classe de Cocoa, je recherche toujours un moyen de masquer la lourdeur, l’initialisation, etc
C’est l’objectif de tout bon R.A.D. C’est la plus-value de l’application.
Comme Deplhi, certains objets peuvent être intégrés sans faire pour autant partie de l’interface. Il y a par exemple, les objets NSTimer, NSWorkspace.

La version actuelle du compilateur est de permettre la création de librairies et d’applications. Ainsi, Cocoa est intégré dans le projet sous la forme de deux libs (FoundationX3r1 et AppKitX3r1).
Certaines fonctionnalités de l’Objectve-C ne sont pas disponibles. Il s’agit des catégories, des sélecteurs.
Le compilateur engendre un bytecode exécutable depuis une machine virtuelle placée dans l’application finale.
Il existe un débogueur très proche de celui d’Xcode.
Il y a beaucoup de chose à dire. Ce serait trop long. Bien que cette présentation ne soit pas complète, elle dégage les idées que j’ai déjà et que je vais développer dans ce projet de longue haleine !
Les premières versions seront gratuites. Malgrè tout le soin que je porte (analyses, docs très détaillées), je sais qu’il ya aura des bugs !

Pour finir, j’ai également réalisé un mouteur de bases de données selon le modèle DAO de jet, celui qui équipe Access de Microsoft (mode SQL ou par méthodes). Il est clair qu’il sera implémenté dans ce projet dès que possible avec de nouveaux controles dépendants.

OK, c’est beaucoup beaucoup mieux. Tu n’avais pas non plus besoin de rentrer dans un tel niveau de détails :wink:
Bon, je te souhaite bon courage, mais je ne suis pas bien placé pour te dire si le projet est intéressant ou pas.
Pour ma part il ne l’est pas, car je fais du développement multi-plateforme, donc non graphique, ou avec des lib graphiques multi-plateforme… :slight_smile:

Y-a-plus personne ? C’est fini. Quelqu’un a-t-il coupé la lumière ? J’ai fait peur à quelqu’un ?