Logo Blogo

Iniziare a programmare in Objective-C

Pubblicato: 16 gen 2009 da Marco Iannaccone

Learn Objective-CCon l’annuncio da parte di Apple di App Store, importantissima vetrina che ha permesso a tantissimi sviluppatori o aspiranti tale di farsi conoscere e guadagnare somme anche piuttosto elevante in brevissimo tempo, è venuta a molti la voglia di cimentarsi con la creazione di applicazioni per iPhone.

Le applicazioni per iPhone si basano sul framework Cocoa Touch (simile al framework Cocoa utilizzato per programmare applicazioni per Mac OS X) per gestire ogni interazione tra l’utente e il dispositivo e sono scritte, così come quelle per Mac OS X, in Objective-C, un’evoluzione del celebre linguaggio C orientata agli oggetti, con un sistema di messaggistica derivato da Smalltalk.

Esistono alternative, come JSCocoa, ma Objective-C rimane, a ragione, lo strumento principale.

Esistono diverse pubblicazioni sulla programmazione in Cocoa e Cocoa Touch, e ne sono apparse tantissime per iPhone dopo la nascita dell’App Store. Vediamone alcune su Objective-C (oltre alla guida in PDF scaricabile gratuitamente dal sito Apple).

Due libri interessanti sono Programming in Objective-C 2.0 e Learn Objective–C on the Mac (il secondo maggiormente orientato al Mac, ma utile anche per iPhone).
È disponibile inoltre una interessante serie di tutorial in video, dagli stessi autori della serie sulla programmazione per iPhone. Sono a pagamento, ma è possibile scaricarne un esempio gratuitamente.

Un ulteriore libro che parla più specificamente della creazione di applicazioni per iPhone, oltre a quelli citati e al noto libro di Jonathan Zdziarski, è infine Beginning iPhone Development: Exploring the iPhone SDK.

Sono ovviamente tutti in inglese. Delle buone risorse in italiano sono invece disponibili nel sito Xcode Italia.

[Via TUAW]

1 stelle2 stelle3 stelle4 stelle5 stelle (2 Voti | Media: 5 su 5)
condividi condividi
25 commenti

Commenti dei lettori

(Inserisci un commento - Nascondi commenti anonimi)
  • Profilo di Lucamegh

    Lucamegh

    16 gen 2009 - 18:48 - #1
    0 punti
    Up Down

    Utile

  • Profilo di Black Tiger

    Black Tiger

    16 gen 2009 - 18:53 - #2
    0 punti
    Up Down

    Chiedo: Ma esiste un IDE tipo Visual Studio con cui programmare per Mac??? Perchè la cosa mi interessa molto…

  • Profilo di GIOVE

    GIOVE

    16 gen 2009 - 19:03 - #3
    0 punti
    Up Down

    @2: si, c’è XCode

  • Profilo di rogerdodger

    rogerdodger

    16 gen 2009 - 19:09 - #4
    0 punti
    Up Down

    scusate ma ditemi una cosa, se uno parte da zero zero questi libri mica bastano vero? qualcuno potrebbe fare un elenco di TUTTO quello che serve da zero per scrivere una app? Intendo anche elementi basilari che magari per molti sono scontati. Grazie.

  • fra.makaveli

    16 gen 2009 - 19:15 - #5
    0 punti
    Up Down

    Xcode (ultima versione 3.1.2 per Leopard, altrimenti 2.5 per Tiger).
    E’ un buon IDE che sta continuando a crescere e migliorarsi.
    Sfrutta gcc e gdb come compilatore e debugger.
    Insieme ad Xcode viene installato Interface Builder per fare le interfacce grafiche tramite files xib (dovrebbero essere tipo xml), più tantissimi strumenti per monitorare le prestazioni delle applicazioni.

  • Profilo di rogerdodger

    rogerdodger

    16 gen 2009 - 19:16 - #6
    0 punti
    Up Down

    io intendo come linguaggi…conoscenza linguaggi.
    Basta objective C? io intendo da zero proprio non so se mi sono spiegato :)

  • fra.makaveli

    16 gen 2009 - 19:18 - #7
    0 punti
    Up Down

    @rogerdodger
    Per iPhone non so risponderti.
    Per quanto riguarda la programmazione con Obj-C.
    Alcuni libri (presumo anche “programming in Obj-C 2.0″) partono dalle basi.
    Considera che per imparare la “logica” ti va bene qualsiasi linguaggio.
    In questo caso il migliore è il C.
    Ci sono tanti siti che iniziano dal livello -10, ci vuole solo pazienza, voglia di imparare e tanti esercizi.
    Una volta presa la mano con il C è il momento di imparare la programmazione ad oggetti. E allora si passa ad obj-c.
    Poi… beh… con esperienza e qualche programma all’attivo si imparano tante cose nuove che difficilmente troverai sui libri.

  • Profilo di rogerdodger

    rogerdodger

    16 gen 2009 - 19:21 - #8
    0 punti
    Up Down

    ok grazie! se poi c’è qualcuno che sa qualcosa di più circa iPhone in particolare lo ringrazio anticipatamente che ora esco.

  • anonimo_22

    16 gen 2009 - 19:28 - #9
    0 punti
    Up Down

    ottima idea! :D
    nice book

  • fra.makaveli

    16 gen 2009 - 19:32 - #10
    0 punti
    Up Down

    Fai un giro su http://xcodeitalia.com/forum/

    Il motivo perchè non ho mai provato a fare app per iPhone è che non ho voglia di iscrivermi e pagare tot€ all’anno.. altrimenti se non ti iscrivi puoi testare le app su un simulatore.
    Io avrei preferito che un iPhone potesse essere usato come piattaforma di prova.. ma purtroppo non è così.

  • Profilo di clsbn

    clsbn

    16 gen 2009 - 19:37 - #11
    0 punti
    Up Down

    Scusate se può sembrare strano, ma per la mia programmazione saltuaria (fin’ora senza alcuno scopo di lucro, nè professionale) l’ambiente migliore che esiste è visual studio. Per ora nessun’altro IDE, compreso Xcode :( purtroppo ha le stesse capacità di visual studio. Mi riferisco all’intellisense praticamente onnipresente, alle diverse operazioni possibili con veloci drag&drop e alla possibilità comunque di scendere nei minimi dettagli se necessario o crearsi i propri oggetti. Senza dimenticare le recenti tecnologie quali linq e WPF.
    Ho fortemente desiderato scoprire Xcode migliore di VisualStudio, sull’onta della proverbiale semplicità ed efficienza del software Apple ma Xcode non mantiene le aspettative purtroppo. Spero davvero che lo migliorino, sempre sulla scia del succeso dell’AppStore, rendendo magari Mac la piattaforma privilegiata anche per la produzione di software oltre che della produzione multimediale… ma è solo un sogno ovviamente… per il momento mi godo la stabilità e la sicurezza (e la bellezza) di OSX e il divertimento di programmare VisualStudio sotto vmware.

  • Profilo di Diego

    Diego

    16 gen 2009 - 19:42 - #12
    0 punti
    Up Down

    @rogerdodger:
    per iniziare da zero zero, beh… vediamo… come ti è già stato consigliato io mi orienterei verso il C.
    Il C infatti è un linguaggio molto potente che volendo o non volendo ti fa sbattere il naso contro le problematiche tipiche della programmazione: consumo risorse, gestione della memoria, ottimizzazione del codice, prestazioni.
    Dal C si passerrà sucessivamente in un nuovo mondo che è quello della programmazione Orientata agli Oggetti. Bene tutto ciò che si è visto nel C andrà quasi dimenticato, nel senso che le logiche di programmazione OO sono totalmente differenti dal C. Personalmente ho imparato la programmazione OO in Java. Java è un linguaggio studiato assolutamente per programmatori pigri :-) . E’ un linguaggio con alto livello di astrazione. Per questo motivo è molto facile da imparare, in oltre le API on line sono un riferimento assolutamente facile,chiaro e molto, ma molto rapido per trovare risposta ad ogni esigenza.
    Un altro linguaggio di programmazione OO a cui fare riferimento è sicuramente il C++, meno astratto di java e quindi più potente.
    L’importatnte comunque non sono tanto i linguaggi che andrai ad imparare, ma le logiche di programmazione che cambiano di volta in volta, ed è proprio su queste che dovrai spendere la maggior parte del tuo tempo ! La sintassi dei linguaggi cambia, ma grazie agli IDE questa difficoltà puo’ essere presto superata.
    Pazienza, pazienza, pazienza e tanto tempo per esercitarsi, queste le due cose fondamentali probabilmente… personalmente un buon libro STAMPATO io lo consiglio sempre, avere dei riferimenti scritti ORDINATI o facilmente raggiungibili tramite indici è un valido appoggio per orientarsi nella giungla !

  • fra.makaveli

    16 gen 2009 - 19:49 - #13
    0 punti
    Up Down

    @diego
    Tra i linguaggi ad oggetti c’è anche obj-c. Essendo molto simile a smalltalk è molto più dinamico di Java e C#. Questo può essere anche uno svantaggio nell’apprendimento, ma molte guide e risorse ti permettono si superare le difficoltà.

    @clsbn
    Non sono del tutto d’accordo.
    VisualStudio è ormai alla versione 9. E’ molto più maturo del giovane Xcode.. Eppure non li vedo così tanto distanti.
    Tieni conto, però, che è anche questione di abitudine.
    Io ora faccio fatica a ritornare su VisualStudio quando devo fare qualcosa per l’univesità.

  • Bladedu

    16 gen 2009 - 20:33 - #14
    0 punti
    Up Down

    potrà sembrare cazzaro o cosa ma io uso Eclipse e mi trovo bene sia per applicativi java che per altri linguaggi… ovviamente non ho mai provato visual studio, ma c’è da dire che non sviluppo applicativi per desktop, ma lavoro soprattutto sui web services…

  • franco93

    16 gen 2009 - 20:42 - #15
    0 punti
    Up Down

    su iphoneitalia . com è iniziato un corso per programmare su iphone e ll’insegnante è uno sviluppatore italiano che ha gia pubblicato sull applestore

  • badger

    16 gen 2009 - 20:45 - #16
    0 punti
    Up Down

    @clsbn

    In XCode puoi avere una funzione equivalente all’Intellisense premendo Fn+Esc, che ti apre un popup con i siggerimenti per completare funzioni/metodi/variabili/ecc…

  • Profilo di diegoregina

    diegoregina

    16 gen 2009 - 21:00 - #17
    0 punti
    Up Down

    io vorrei sapere solo di qualche pubblicazione in italiano

  • carciopolodelpopolo

    16 gen 2009 - 22:02 - #18
    0 punti
    Up Down

    @rogerdodger
    Io sono uno sviluppatore di mestiere in particolare lavoro per BBC UK. Posso darti un consiglio basato sulla mia esperienza?
    Se vuoi programmare per diletto, qualsiasi guida trovi puo’ essere piu’ o meno utile. Se vuoi iniziare una carriera in questo mondo, allora non concentrarti immediatamente su un linguaggio specifico ma spendi tempo nello studiare programmazione orientata agli oggetti in generale perche’ questi concetti li applichi a tutti i linguaggi. Vedi i vari linguaggi di programmazione come il saper parlare in diverse lingue, ma di base devi conoscere la “grammatica” in ogni caso (OOP). Poi concentrati sull’analizzare un problema e “astrarlo” per poi implementarlo in una soluzione. Per questo scopo impara il linguaggio di modellazione UML. Quando avrai questi concetti fondamentali potrai scendere piu nel dettaglio studiando design pattern e poi applicando tutto quello appreso nello sviluppo di soluzioni reali. Per quanto riguarda il linguaggio, la scelta dipende dal settore/piattaforma su cui ti vuoi buttare. Scegli un linguaggio e una tecnologia spendibili. Per windows sicuramente c# (Vb.Net come alternativa) e .Net framework con visualtudio. Per multipiattaforma io ti consiglio java (molto ma molto usato nel settore enterprice). Un’altra tecnologia multipiattaforma molto diffusa (e molto pagata) e’ adobe flash in particolare lo sviluppo di applicazioni sia web che desktop con adobe flex (basato su eclipse). Un mio consiglio: lascia perdere c/c++ in quanto molto legati alla piattaforma su cui sviluppi. Su web (io preferisco .Net su c# ma molto validi anche php e ruby on rails.
    Per quanto riguarda Xcode. E’ un ambiente di sviluppo molto valido e potente (naturalmente da conoscere e imparare). Poi bisogna capire la filosofia dietro lo sviluppo di applicazioni per mac e in particolare basate su cocoa in objective-c (implementa il paradigma MVC) magari leggermente piu’ complessa da capire ma molto molto potente.
    Spero di esserti stato utile ;)

  • Profilo di rogerdodger

    rogerdodger

    17 gen 2009 - 05:36 - #19
    0 punti
    Up Down

    carciopolodelpopolo
    si grazie sei stato molto molto dettagliato :) Io mi sto interessando per il fatto che avevo qualche idea credo interessante per apps e anche per curiosità. C’è anche un mio amico che si sta interessando. Mica si può solo studiare per l’uni eh :D Grazie per la risposta!

  • silver_85

    17 gen 2009 - 12:19 - #20
    0 punti
    Up Down

    Scusate, io studio informatica, programmo in C, C++, PHP, Java, conosco l’UML ed anche il pattern MVC (grazie “carciopolodelpopolo” !)
    Ma non ho mai programmato per mac. Conoscendo il C++, l’Object-C presenta grosse differenze? E poi ancora, credo che per programmare per iPhone sia utile conoscere l’OpenGl… che è una libreria C…
    Ne hanno per caso fatto un wrapper in Object-C?

  • Profilo di Marco Iannaccone (MelaBlog)

    Marco Iannaccone (MelaBlog)

    17 gen 2009 - 12:43 - #21
    0 punti
    Up Down

    @silver_85:
    In Objective-C, come del resto anche in C++, puoi richiamare direttamente qualsiasi funzione di libreria C (oltre a poter utilizzare direttamente codice C nei programmi), e questo vale anche per OpenGL.

    Per quanto riguarda il resto delle domande fatte anche da altri, come altri hanno fatto notare, un linguaggio di programmazione è poco più di uno strumento, e in generale iniziare dal C e succesivamente studiare il pararigma orientato agli oggetti da una buona base per adattarsi in seguito a qualsiasi linguaggio.

    Una cosa molto importante da studiare sono le strutture dati e gli algoritmi, oltre ai paradigmi di programmazione come il già citato MVC (che in realtà viene spiegato in maniera piuttosto intuitiva in qualsiasi manuale di programmazione Cocoa/Objective-C).

  • carciopolodelpopolo

    17 gen 2009 - 13:36 - #22
    0 punti
    Up Down

    rogerdodger
    si studia per saper programmare e farci sopra una carriera non per l’uni :) che tra l’altro non e’ che dia tutta sta gran preparazione. Io ho studiato all’universita’ e quando c’e’ stato da “sviluppare” seriamente x il mondo reale ti posso assicure che quello appreso e’ poco piu’ che nozionismo. Quando vuoi fare il programmatore e lavori in un mercato competitivo come quello londinese dove lavoro io, o sei bravo sul serio (e quindi hai studiato) o meglio che cambi mestiere. In ogni caso io ho iniziato lo sviluppo per iPhone da veramente poco tempo (da quanto apple ha confermato la mia sottoscrizione) pur conoscendo da anni objctive-c e cocoa. Se c’e’ qualcuno “veramente’ interessato nello sviluppo per iphone, mi mandi una mail a ff140674@googlemail.com e saro’ ben lieto di condividere (senza impegno ;) il materiale che uso. In particolare vi mando un paio di e-book veramente ben fatti (materiale in inglese purtroppo) su come sviluppare applicazioni x iPhone da zero.
    P.S. Buon fine settimana

  • Vict

    27 apr 2009 - 23:55 - #23
    0 punti
    Up Down

    Ciao ragazzi mi servirebbe una mano fondamentale per il proseguimento dello studio sulla programmazione

    mi potreste aiutare a capire come si usa l’eclipse per programmare in c++?
    ho installato tutto come dicevano le guide trovato in internet
    il mingw, e altre cose, ed è andato tutto bene, però non riesco bene a capire cosa devo fare per poter scrivere un programma …..
    Faccio nuovo progetto c++, ci do il nome, selezione release e debug; creo poi un file source e ci do un nome che termina con .c o con .cpp anche se non ho capito che cambia…poi quando scrivo
    #include mi dice che non va bene , e che il comando cout non è dichiarato
    help perfavore

  • Corso Objective-C per iPhone

    13 giu 2010 - 20:32 - #24
    0 punti
    Up Down

    Salve
    Considerando l’argomento volevo segnalro dei corsi Objective-C per iPhone a Roma.

  • Ciccio Baciccio

    07 lug 2011 - 16:23 - #25
    0 punti
    Up Down

    Salve
    Si può programmare su Xcode conoscendo solo il linguaggio c?

L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per commentare e per entrare nella community di melablog. Potrai inserire immagini, video, partecipare alle discussioni nei vari gruppi o crearli e inviare messaggi privati agli altri utenti registrati. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No
I commenti sono sottoposti alle linee guida per la moderazione.

Anteprima del commento