Domanda

Cosa consiglieresti per lo sviluppo su OS X di un'applicazione grafica come quelle possibili in WPF?

Il mio background specifico è Smalltalk e Java, ma attualmente lavoro principalmente in DHTML/.NET (ASP.NET/C#).

È stato utile?

Soluzione

Cacao.Considerato da molti il ​​miglior framework applicativo di sempre.Il linguaggio è Objective-C, un linguaggio simile a SmallTalk che ha ispirato i creatori di Java.

In realtà, non esiste un'alternativa ragionevole a Cocoa per lo sviluppo di OS X, a meno che tu non abbia esigenze specifiche come il voler essere multipiattaforma.

Altri suggerimenti

Oltre a Interface Builder che è incluso come parte degli strumenti Xcode, puoi anche utilizzare QT, GTK+, AWT e SWING (per il tuo background Java), Tk, Squeak (per il tuo background Smalltalk), Shoes (piccolo toolkit Ruby GUI molto interessante ), FXRuby (più Ruby), wxWidgets, XULRunner e altri che sono sicuro di aver dimenticato.Per le app più native, tuttavia, Interface Builder è la soluzione migliore.

Cocoa è il framework principale da utilizzare su Mac OS X.È ciò che utilizza Apple, è ciò che utilizza la maggior parte dei nuovi sviluppi ed è dove vengono principalmente aggiunte nuove funzionalità.

Se provieni da WPF, penso che potresti trovare familiari alcuni concetti di Cocoa.(Nonostante Cocoa sia solo un po' più vecchio.) È costruito interamente attorno a MVC, ci sono notifiche e associazioni di modifiche alle proprietà, c'è il supporto per le animazioni, c'è un framework di gestione della persistenza e del grafico degli oggetti e così via.

(Inoltre, potresti voler aggiungere "mac" ai tag.)

Con il tuo background Java, non lasciarti distrarre dal bridge Cocoa-Java ormai deprecato.All'inizio della storia di OS X, Apple fornì un'interfaccia Java (faticosamente gestita manualmente) per le librerie Cocoa.A causa delle differenze semantiche tra Java e Objective-C, molte delle funzionalità più potenti di Cocoa, incluso il legame chiave-valore (su cui sono costruite molte altre funzionalità) sono molto difficili, portando a divergenze tra le funzionalità di Objective-C e Java e l’eventuale deprezzamento del ponte.Tutto lo sviluppo di Cocoa viene eseguito al meglio con Objective-C o uno dei tanti bridge (generati automaticamente) verso linguaggi dinamici come Python o Ruby.

Con il tuo background in chiacchiere, mi aspetto che tu possa imparare Objective-C in un giorno o due.

Non sono sicuro di cosa sia WPF, ma la maggior parte dello sviluppo per la piattaforma OSX viene eseguito in Objective-C con Cocoa.Puoi utilizzare le API Carbon deprecate con altri linguaggi come Java, ma le nuove applicazioni per OSX dovrebbero davvero essere sviluppate in Objective-C.Puoi iniziare con La guida di Apple con Xcode come IDE.

Per dirla in un modo diverso rispetto ai poster precedenti:se non stai progettando la tua interfaccia in InterfaceBuilder e non la stai manipolando con Objective-C, ti ritroverai con un'applicazione che non appare, non si sente, non agisce o non funziona come dovrebbe un'applicazione Macintosh e risalterà come un pollice irritato per gli utenti.Sarà un'esperienza spiacevole per l'utente rispetto ad altre app e probabilmente per questo desidererà un'applicazione diversa.

Toolkit come QT sono accettabili se la tua applicazione utilizza già QT e desideri eseguirne il porting veloce, ma se stai scrivendo una nuova applicazione (o una GUI separata), scrivila in Cocoa utilizzando ObjC o ObjC++.

Potresti dare un'occhiata PyObjc che è un ponte tra il linguaggio di programmazione Python e Objective-C, inclusi i collegamenti per i componenti di Mac OS X, incluso Cocoa.

Con uno sfondo Smalltalk, consiglierei direttamente Cocoa e Objective-C.Tuttavia, se propendi per un linguaggio dinamico, RubyCocoa ti permetterà di usare Ruby che penso troverai più facile da imparare rispetto a Python.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top