Framework OS X ricchi di GUI?
-
09-06-2019 - |
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#).
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.