2009-04-26 13 views
26

Nel wikipedia article on Cocoa si dice:Quanto è difficile far funzionare un'applicazione Cocoa su Windows?

Ci sono anche implementazioni open source di parti principali del framework Cocoa che consente il cross-platform (tra cui Microsoft Windows) lo sviluppo di applicazioni Cocoa, come GNUstep, Cappuccino e Cocotron.

Eppure, quando ho guardato in se l'applicazione Mac Tweetie era disponibile per Windows lo sviluppatore aveva ruled it out:

Windows non dispone di cacao, l'ambiente di programmazione che Tweetie è realizzato in, in quanto tale, sembra una povera possibilità.

mi piacerebbe avere una risposta per indicare gli sviluppatori Tweetie (e come una risorsa per gli altri sviluppatori di cacao), che li avrebbe detto:

  • Quale implementazione è il più adatto per ottenere un cacao app in esecuzione su Windows?
  • Quanto lavoro è necessario eseguire per far funzionare l'app sotto Windows?
  • Quanto è facile/difficile mantenere una base di codice comune per Mac e Windows?
  • (qualsiasi altra considerazione che ho perso?)

Naturalmente se sarebbe troppo lavoro mi piacerebbe sapere che anche prima di proporre e potenzialmente l'invio di qualcun altro su una ricerca infruttuosa.

+5

Perché i downvotes? È una domanda valida, anche se la risposta è no. –

+6

Seriamente, questa domanda sta ricevendo una frustata senza motivo. –

+1

+1 Mi stavo chiedendo la stessa cosa. – Zifre

risposta

1

Ci sono Windows compilers for Objective-C (il linguaggio di programmazione utilizzato per scrivere applicazioni di cacao). Tuttavia, Cocoa include i framework per la presentazione della GUI. Questi framework visivi sono specifici per Mac OS X perché usano solo OS X Windows e altri controlli. Quindi qualcuno avrebbe bisogno di ri-implementare i controlli in Cocoa per utilizzare i controlli di Windows.

Inoltre, sono abbastanza certo che Tweetie utilizza solo tecnologie Mac OS X come Core Animation. Questo non esiste su Windows, quindi i bei effetti di animazione presenti nelle app dovrebbero essere implementati in un modo completamente diverso.

+0

E le implementazioni del framework del cacao dalla citazione di wikipedia nella mia domanda? –

+0

E se ci sono compilatori Objective-C per Windows, quali sono? si prega di fornire collegamenti. –

+0

aggiunto un collegamento per maggiori informazioni sulla compilazione dell'obiettivo c su windows – zpesk

4

Tra GNUstep, Cappuccino e Cocotron, Cocotron è l'unica scelta possibile per trasferire un'applicazione Mac su Windows. Cappuccino è per il web e GNUstep funziona solo su cygwin o mingw, il che significa che la GUI non assomiglia alle app native di Windows.

In teoria è possibile creare applicazioni per il cacao con Cocotron. Tuttavia, la realtà è che è ancora molto difficile da usare, ed è ancora abbastanza limitata nell'API Cocoa.

Pertanto, due soluzioni possibili:

  • Prova difficile rimuovere i codici non supportati dal Cocotron nella base codice originale e fare la compilazione croce. Mantenere il codice base comune sarà doloroso.
  • Avvia una nuova GUI, nessuna base di codice comune.due scelte qui
    • Avviare un progetto multipiattaforma con framework cross-application come Qt o Java.
    • Avvia un progetto solo per Windows. Ci sono un sacco di scelte qui, NET WinForm, MFC, ecc
+0

sembra che la pagina di wikipedia non sia corretta e necessiti di modifiche. –

+0

Terza opzione sarebbe quella di implementare i pezzi necessari in Cocotron e contribuirli al progetto, è open source. Naturalmente questo può variare in complessità, ma le persone lo hanno già fatto per pezzi ragionevoli. Più persone lo fanno, meno tutti devono fare. Se hai familiarità con Cocoa e hai già scritto un'app, la quantità di lavoro che si allontana da esso e le funzionalità che potresti sacrificare per un'altra struttura della GUI potrebbero essere più utili della semplice implementazione dei pezzi necessari in Cocotron. Qualcosa da ricordare, YMMV naturalmente. –

11

Non dimenticare:

  1. “le parti principali del framework Cocoa” non è lo stesso di "La totalità delle strutture Cocoa". Tweetie potrebbe usare qualcosa che manca.
  2. Tweetie potrebbe essere (molto probabilmente lo è) utilizzando API dai framework non Cocoa, come Core Foundation, Core Services, Core Graphics e Core Animation. Una porta dei framework Cocoa da sola non includerà nessuna di queste API e persino un framework di emulazione Mac-API più completo non includerà tutte queste API.
  3. Queste strutture sono eternamente a caccia di Apple. Anche se si aggiornano, torneranno immediatamente indietro alla prossima versione di Mac OS X. Gli sviluppatori di Mac hanno già messo in atto l'utilizzo di nuove API nelle nuove versioni di Mac OS X mentre aspettano che gli utenti eseguano l'aggiornamento a quelle nuove versioni; ora stai chiedendo i commenti a e attendi che lo sviluppatore di altri framework raggiunga nuovamente Apple.
  4. Qualsiasi seconda implementazione di un'API esistente avrà bug che la prima implementazione non ha, e viceversa. Queste differenze causeranno problemi di sviluppo e supporto.
  5. Stai chiedendo ai atebits di aggiungere una terza piattaforma a un'applicazione che esiste già su due. Supportare una piattaforma è molto lavoro. Supportare due piattaforme è un bel po 'di lavoro. Supportando tre? Ora stai entrando nel territorio delle grandi aziende.

Quindi, anche con questi framework Cocoa, la risposta è: difficile.

+0

RE: punto 2. Cocotron dice "Questo include AppKit, Foundation, Objective-C runtime e API di supporto come CoreGraphics e CoreFoundation" –

+0

cade sotto la seconda metà di quest'ultima frase, quindi, poiché mancano ancora importanti framework come come servizi principali (che include, tra l'altro, i servizi di lancio) e la rubrica. –

Problemi correlati