Le altre risposte che ho visto hanno colpito il chiodo sulla testa per quanto riguarda la toolchain, ecc. Aggiungerò che quando si è trattato delle linee guida per l'interfaccia umana, Apple si è distinta dalle altre aziende sia per la profondità di pensiero sulla questione che per l'impegno nel far rispettare le migliori pratiche.
Alcune delle distinzioni sono molto semplici. Le linee guida dell'interfaccia umana di Apple includevano un set molto basilare di opzioni di menu e scorciatoie da tastiera che DOVEVANO essere disponibili in un'applicazione.
Per anni, e forse ancora oggi, qualcosa di semplice come uscire da un'applicazione era un'operazione incoerente e potenzialmente misteriosa nell'ambiente Microsoft Windows. Era File->Quit? File->Exit? File->Chiudi? Alt-F-X? Alt-F-C? Avete capito bene. Apple ha reso molto chiaro che File->Chiudi e l'accompagnamento di Cmd-Q erano il modo giusto per terminare una normale applicazione. Questo si è evoluto quando il nome dell'applicazione è diventato il secondo elemento della barra dei menu, ma visivamente, è ancora essenzialmente lo stesso posto. Seconda scelta della barra dei menu, tirata giù, elemento inferiore.
C'erano alcune altre classi di codice che potevano operare in modo diverso, ma l'utente aveva generalmente una sequenza di tasti che otteneva il lavoro fatto. Descriverò di più sul perché gli sviluppatori hanno effettivamente aderito a questo (per la maggior parte) un po' più in basso.
Quando lavoravo in quello spazio, nei giorni precedenti all'OS X, le linee guida dell'interfaccia umana erano pubblicate come un libro molto ben illustrato, con discussioni molto accessibili di cose come le implicazioni grafiche delle considerazioni sull'internazionalizzazione.
Una pagina che discuteva l'internazionalizzazione aveva 5 o 6 immagini di icone per le caselle di posta in diversi paesi. Ce n'erano almeno 3 che non assomigliavano a nessuna cassetta postale che avessi mai visto. Come dicono i praticanti dello Zen, "con questo, fu illuminato".
Apple si è anche preoccupata di far rispettare agli sviluppatori di software indipendenti l'importanza di aderire alle linee guida. Ho visto casi in cui partner di prodotti software che collaboravano molto strettamente avevano costruito applicazioni che infrangevano le regole della Human Interface e l'azienda è stata disinvitata ad esporre quel prodotto all'interno dello stand di Apple in varie fiere. Gli sviluppatori hanno ricevuto rapidamente il messaggio: Apple faceva sul serio, e c'erano conseguenze reali per il mancato rispetto delle regole.
In questi giorni (purtroppo), mentre i meccanismi sottostanti di OS X sono diventati abbastanza robusti e affidabili, la fervente insistenza nell'aderenza degli sviluppatori a uno standard per lo sviluppo dell'interfaccia umana sembra essersi un po' ammorbidita nel mondo Apple. Con la crescente "fonificazione" (il mio orribile tentativo di coniare una parola) delle applicazioni desktop e degli ambienti operativi per operare in modo sempre più simile agli ambienti dei dispositivi mobili, potremmo vedere il pendolo oscillare di nuovo verso una maggiore applicazione della coerenza nel design dell'interfaccia utente.