2009-11-17 5 views
1

La méthode standard actuelle de développement d'applications Mac OS X est XCode/Objective-C/Interface Builder utilisant le paradigme MVC.Autre paradigme pour le développement de Mac OS X

Existe-t-il une alternative?

Je voudrais utiliser Interface Builder (XCode aussi) mais je préfère utiliser un langage de programmation différent. Je viens de la programmation .NET où vous pouvez déléguer un clic à une certaine fonction, etc. Y at-il quelque chose comme ça pour Mac? Je préfère rester loin des applications amorcées comme Titanium ou Qt ou RealBASIC.

+2

Vous pouvez déjà faire des clics appeler certaines méthodes avec Interface Builder. Êtes-vous sûr de savoir ce que vous rejetez? – Chuck

+0

Les délégués en C# sont une forme de lambdas ou de fermetures. Cette caractéristique de langage n'existe pas dans l'objectif-c avant 10.6. Il peut vraiment s'agir d'un style majeur définissant la fonction de langue. –

+0

Ce que vous cherchez est le paradigme de la cible-action. Avec Xcode, le seul moyen d'exécuter du code sur un clic est de spécifier la méthode à exécuter. – PeyloW

Répondre

2

En fonction de votre expérience linguistique et des besoins cibles que vous pourriez trouver MacRuby très intéressant. Il existe également PyObjC et un ancien pont ruby ​​nommé RubyCocoa.

Cependant, si vous cherchez le développement de l'iPhone, la seule chose dont j'ai entendu parler est MonoTouch de Novell, et nécessite des frais de licence.

Veuillez noter que toutes les technologies ci-dessus permettent une intégration transparente avec leurs bibliothèques de langue native ainsi qu'avec les bibliothèques et les frameworks de Cocoa et Carbon.

L'utilisation de ces technologies vous donnera une application de sentiment native assez propre. Cependant, beaucoup, sinon tous, exigeront toujours que vous utilisiez Interface Builder. Ce que je sais m'a pris du temps pour m'y habituer aussi.

6

Objective-C est très puissant et avec Cocoa et Interface Builder vous permettent de développer l'interface utilisateur sous Mac OS X.

Vous pouvez associer cible dans l'interface utilisateur avec l'action dans le code qui est exécuté et ainsi de suite.

Vous pouvez consulter IB guide, connections and bindings et Introduction to Cocoa Application Tutorial qui construit exemple d'application (consultez la Combler le modèle et Vue: La section Contrôleur de la façon dont les éléments interface utilisateur s'accroché au code) - qui est si vous êtes intéressé par Objectif-c/cacao.

1

Il y a beaucoup de ponts. PyObjC, CamelBones (Perl), JSCocoa (JavaScript), Cocoa #, HOC (Haskell), etc. Le seul qui soit vraiment proche de la transparence est MacRuby, une implémentation Ruby en plus des technologies de base de Mac OS X comme LLVM et l'Objective -C Runtime et garbage collector qui est conçu pour être un langage homologue à Objective-C pour le développement Cocoa. C'est toujours en version bêta, cependant. Il vous permet d'assigner un bloc Ruby en tant que gestionnaire d'action pour les éléments de l'interface utilisateur, ce que je comprends est quelque chose que vous aimez faire.

4

Vous pouvez déjà affecter des clics aux méthodes dans Objective-C - vous définissez une méthode avec un type de retour IBAction et vous pouvez câbler cela à un certain nombre d'événements possibles dans un bouton, ou de nombreux autres contrôles.

Apprenez à utiliser les outils avant de décider de vous aventurer dans d'autres langues, car il y a beaucoup de profondeur ici depuis des décennies d'évolution.

+0

Alors que je suis d'accord que IB et XCode présentent une plate-forme de développement puissant et les bibliothèques de cacao sont impressionnants à bien des égards. Ils ont aussi beaucoup de lacunes. Surtout si vous venez d'une plate-forme comme C# ou de nombreuses autres langues qui ont des caractéristiques que vous prenez pour acquis. Les fermetures, le support de regex natif et l'intégration de services web font partie de ce que beaucoup de langages ont construit et sont très robustes, mais obj-c/cacao n'a tout simplement pas le support pour eux. –

+2

Cocoa a des fermetures avec l'API 10.6, ils sont appelés des blocs et beaucoup d'API existantes ont de nouvelles méthodes qui acceptent les blocs comme arguments. Si vous voulez RegEx, allez ici: http: //regexkit.sourceforge.net/ –

+0

Peut-être que certains d'entre eux sont disponibles via des frameworks/frameworks externes, ou en tant que bibliothèques c/C++ ou ne sont simplement pas nécessaires pour tout le monde? – stefanB

0

Il est difficile de dire si vous préférez l'élaboration de modèles de langage ou de conception.

Voir Objective-C++, Python ou Ruby (le pont Java est obsolète).Rappelez-vous que ObjC est un sur-ensemble de C, vous pouvez utiliser C, C++ et ObjC dans la même application/sources. Soo ... vous pouvez être plus à l'aise en utilisant Objective-C++. Cela ressemble à un objet hybride, mais c'est simplement un support pour les objets et les syntaxes dans le même programme (c'est-à-dire que vous ne basez pas une classe ObjC sur une classe C++, mais vous pouvez utiliser des membres). C'est un grand sujet, en fait, bien que je n'aie jamais vu d'écrits dessus au-delà de quelques pages.

En ce qui concerne les modèles de conception, eh bien, vous êtes le programmeur :)

0

Votre meilleur pari, serait d'utiliser Cocoa support Sharp WinForms. Il y a quelques tutoriels sur le site de cocoasharp. Cela vous donnerait une longueur d'avance, mais je crains que vous n'alliez pas très loin avec cette approche, Cocoa n'est pas vraiment adapté à cette approche et au final, le code finirait par être difficile à gérer. Ce que vous pouvez faire, si les conventions Cocoa ne vous dérangent pas mais ne sont pas vraiment dans Objective-C, c'est d'utiliser Cocoa Sharp (ie, C#) pour coder en utilisant le paradigme MVC de Cocoa. De cette façon, vous pouvez toujours utiliser Interface Builder (je ne suis pas sûr du support de XCode dans Snow Leopard) et utiliser un langage familier.

On dirait que cette approche est productive, car les gens font même des applications iPhone de cette façon.

4

Il y a tellement de ces questions sur SO. Surtout dans les tags mac/iphone. Quelqu'un pose la question de savoir comment faire du développement mac/iphone plus comme un IDE/paradigme qu'ils connaissent déjà.

Le développement de Mac est différent de C#, .NET, etc. Il n'est pas moins puissant, c'est juste différent. Le cacao a de nombreuses forces qui peuvent ne pas être apparentes lorsque vous essayez d'appliquer votre ancienne façon de penser. Pour ne citer aucun des projets mentionnés ici (PyObjC, MacRuby, etc.), mais ils seront tout aussi confus, car ils sont une couche d'abstraction fine (et fuyante) sur les outils de développement natifs.

Si vous souhaitez développer sur Mac, prenez le temps et apprenez Objective-C/Cocoa/Xcode/IB. Ce n'est pas comme tu le sais, mais c'est un bon moyen si tu lui donnes une chance. Une fois que vous le savez, vous aurez encore des critiques, mais vous aurez sans doute trouvé des choses que vous aimez vraiment à ce sujet.

Si vous n'aimez pas apprendre de nouvelles plateformes/paradigmes/environnements, apprenez java ou qt une fois et terminez avec.