• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

1. Cocoa e Cocoa Touch

By Costantino Pistagna | on 9 Marzo 2011 | 7 Comments
Guida rapida alla programmazione Cocoa Touch

Cosa e’ Cocoa?

Cocoa è un insieme di frameworks orientati agli oggetti che forniscono un ambiente di esecuzione per applicazioni Mac OS ed iPhone OS. Integrato con un ambiente di sviluppo altamente efficiente, Cocoa è l’ambiente principe per lo sviluppo su Macintosh e l’unico per lo sviluppo su iPhone.

Come tutti gli ambienti applicativi, Cocoa presenta due aspetti; un aspetto di esecuzione ed un aspetto di sviluppo. L’aspetto esecutivo si occupa di fornire e gestire l’interfaccia utente, correlata con altre porzioni del sistema operativo. Su MacOS, questo significa Finder, Dock ed altre applicazioni; su iPhone, significa SpringBoard, MobilePhone ed altre applicazioni. E’ l’aspetto di sviluppo quello piu’ interessante per noi programmatori.


banner-iphoneSmartApps-org

Cocoa e’ costituito da un insieme di componenti ad oggetti – classi – che ci forniscono la possibilita’ di creare rapidamente applicazioni dalle caratterstiche evolute per MacOS ed iPhone.
Queste classi sono riutilizzabili ed adattabili a tutti gli scopi; e’ possibile utilizzarle cosi’ come sono oppure estenderle per scopi specifici. Esistono classi Cocoa per tutte le necessita’ di programmazione, dagli oggetti per la user interface agli oggetti per la formattazione dei dati. In ogni caso e’ sempre possibile comporre ed estendere le classi base, per ottenere qualunque risultato voluto.

Sebbene Cocoa sia un ambiente estremamente flessibile con la possibilita’ di legare le proprie primitive a vari linguaggi di programmazione, per sviluppare applicazioni con Cocoa Touch per iPhone e’ necessario conoscere Objective-C.

Le librerie di Cocoa vengono fornite con due frameworks, uno per ciascuna piattaforma: Foundation ed Application Kit per Mac OS X e Foundation ed UIKit per iPhone OS. Come tutti i frameworks, questo significa non solo librerie esportabili dinamicamente, ma anche file di intestazione, documentazione e quant’altro serva per fornire un ambiente il piu’ familiare possibile.

Entrambe le piattaforme supportano il framework Core Data, che e’ importante tanto quanto i frameworks base.


Lezione-1-cocoa-touch-01

Questo semplice grafico ci aiuta a capire dove ci troviamo. In realta’, esso trascura importanti dettagli dell’architettura. Questa figura, invece:


Lezione-1-cocoa-touch-02

Mostra una rappresentazione piu’ accurata. Essa rappresenta una serie di strati che vanno da Darwin sino agli ambienti applicativi. Il diagramma suggerisce, inoltre, che un componente ad un determinato livello, generalmente, ha dipendenze con i layers sotto di esso.
Alla base di tutto c’e’ Darwin. Ogni cosa in Mac OS X, incluso Cocoa, dipende da esso per poter funzionare correttamente.

Cocoa ed iPhone OS

Anche se l’infrastruttura di iPhone OS, dalla quale Cocoa dipende, e’ molto simile a quella di Mac OS X, esistono significative differenze.


Lezione-1-cocoa-touch-03

La figura sopra, rappresenta l’architettura di iPhone OS. Confrontandola con quella di MacOS, ci accorgiamo di alcune importanti differenze. Il diagramma di iPhone OS, mostra il software che supporta la sua piattaforma come una serie di strati che vanno da Core OS ad una serie di frameworks applicativi, il piu’ critico dei quali e’ il framework UIKit. Come nel diagramma di Mac OS, il diagramma di iPhone OS ha degli strati intermedi che rappresentano i frameworks dei servizi base e le librerie grafiche ed audio. Anche qui, tipicamente, ogni strato dipende da quelli sottostanti.

Generalmente, le librerie di sistema ed i frameworks di iPhone OS che supportano UIKit sono un sott’insieme delle librerie e dei frameworks di Mac OS. Ad esempio, non esiste l’ambiente Carbon su iPhone OS. Non esiste accesso a command-line, non ci sono servizi e frameworks per la stampa. Quicktime, inoltre risulta assente dalla piattaforma. Inoltre, data la natura delle periferiche supportate da iPhone OS, ci sono alcuni frameworks, pubblici e privati, che sono specifici per questa architettura.

CoreOS: Questo livello contiene il kernel, il file system, le primitive di rete e di sicurezza, la gestione delle risorse energetiche ed una serie di device drivers. Esso contiene, inoltre, la libreria libSystem, che supporta le specifiche POSIX/BSD 4.4 ed include primitive di sistema per svariati servizi.

Media: I frameworks e servizi in questo strato dipendono dai servizi di base (Core Services) e forniscono servizi grafici e multimediali allo strato Cocoa Touch. Essi includono Core Graphics, Open GL ES, Core Animation, Core Audio e video playback.

Cocoa Touch: I Frameworks in questo strato supportano direttamente le applicazioni basate su iPhone OS. Esse includono due frameworks Objective-C che sono particolarmente importanti per lo sviluppo su iPhone OS:

  • Il framework UIKit fornisce gli oggetti che le applicazioni mostrano nella user interface e definisce la struttura per il comportamento della nostra applicazione, inclusa la gestione degli eventi.
  • Il framework foundation fornisce i comportamenti base degli oggetti, stabilisce i meccanismi per la loro gestione e fornisce gli oggetti per i tipi di dati primitivi, collezioni e servizi del sistema operativo. Foundation e’ essenzialmente un wrapper ad oggetti del framework Core Foundation.

Come per Cocoa su MacOS, le interfacce di programmazione di Cocoa su iPhone OS forniscono alle applicazioni l’accesso alle tecnologie sottostanti. Tipicamente, esiste sempre un metodo UIKit oppure una funzione Foundation corrispondente per una chiamata a basso livello. Anche qui, se la nostra applicazione richiede caratteristiche che non sono esposte attraverso le API oppure se abbiamo bisogno di un controllo piu’ dettagliato sulle nostre azioni, e’ sempre possibile scegliere di usare i frameworks sottostanti direttamente. Ad esempio, UIKit utilizza il WebKit per disegnare il testo; potremmo decidere di voler disegnare il nostro testo attraverso il framework Core Graphics, perche’ esso ci permette di ottenere un controllo piu’ capillare per il nostro obiettivo finale. Utilizzare questi frameworks a basso livello, non e’ un problema perche’ le interfacce di programmazione di quasi tutti i frameworks sono scritte in ANSI C, dal quale Objective-C deriva.

Il nostro primo esempio – MVC





Riferimenti:

  • iPhone Reference Library: What is Cocoa?
  • Programming in Objective-C 2.0 (2nd Edition) – Stephen Kochan (Capitolo 1, Capitolo 2)


banner-iphoneSmartApps-org

Share this story:
  • tweet

Tags: cocoacocoa touchCostantino PistagnaObjective-cprogrammazione cocoaXcode

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Con Xcode 6.3 arriva il Crash Log Organizer

    26 Febbraio 2015 - 0 Comment
  • Xcode-project-generator: uno script per creare velocemente progetti Xcode

    21 Ottobre 2014 - 1 Comment
  • Xcode Tips & Tricks: Gestione del filesystem, un progetto più versioni, plugin

    12 Novembre 2013 - 4 Comments

Author Description

7 Responses to “1. Cocoa e Cocoa Touch”

  1. 24 Marzo 2011

    Simona

    Ho deciso che inizierò a seguire i vostri corsi. In particolare quello su C.
    Grazie!

  2. 27 Marzo 2011

    EMjuri

    complimenti e grazie per gli sforzi che fate…ma la qualità di audio e immagini dei video non è molto buona, si può fare qualcosa per migliorare? In questo modo è difficile apprezzare il corso nella sua interezza.

  3. 21 Giugno 2011

    lucagre

    ottimo tutorial….ma in pratica cocoa cosa è?
    mi spiego meglio io ho xcode con all’interno un sacco di frameworks, cocoa è uno di questi??
    leggo:”Cocoa è un insieme di frameworks orientati agli oggetti che forniscono un ambiente di esecuzione per applicazioni Mac OS ed iPhone OS” quindi un insieme di frameworks?quindi xcode racchiude cocoa (i suoi frameworks) e tutti gli altri frameworks che non sono cocoa? o tutto è cocoa? e la UIKit e foundation.h sono classi di cocoa? e cocoa.h?????……confused

    Grazie in anticipo

  4. 11 Luglio 2011

    iManu

    inteeressanti tutorial spero di riuscire a creare un app seguendoli tutti!!

  5. 26 Luglio 2011

    Joas

    una segnalazione…..Il volume del primo video è veramente basso e si sente a malapena con le cuffie!

  6. 27 Ottobre 2011

    harle

    Salve ragazzi,

    ho appena cominciato a seguire questo corso e lo trovo veramente ottimo, specialmente confrontato con quello base fornito dalla Apple, in cui mi erano sorti dei dubbi subito chiariti dai due video!

    Volevo dirvi che adesso con XCode nuovo e con la nuova SDK non c’è più la View Based App ma bisogna selezionare Single-View e inoltre l’interface builder è integrato in XCode!

  7. 21 Giugno 2012

    Alessandro

    Ottima introduzione cosi come sono ottimi i tutorial che mi sono letto su android.

    Grazie del vostro lavoro.

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO