• Català
  • Galego
  • Castellano
  • English


Llenguatge de Programació Objective-C


Aquest document és una traducció al català dels documents que Apple subministra en anglès a la seva pàgina web sobre el llenguatge de programació per defecte utilitzat a Apple. Encara que el document fa referència a frameworks pròpies d'Apple i esmenta alguns exemples molt lligats als ordinadors Macintosh, la base del llenguatge està suficientment explicada com per ser aplicada sobre qualsevol plataforma.

El motiu d'aquesta traducció és pel fet d'introduir-me en el desenvolupament d'aplicacions per Macintosh, i per tenir una documentació que no hagi de llegir constantment de l'anglès. La meva primera impressió és que l'Objective-C és un llenguatge de programació orientada a objectes amb sintaxi semblant al C, però més ben estructurat (està basat en smalltalk). En una primera valoració el compararia amb el Java, tant per estructura com per funcionalitat, doncs com el Java es treball amb interfícies, encara que en Objective-C se'n diuen protocols.

Introducció

El llenguatge Objective-C és un llenguatge de programació simple dissenyat per permetre la programació orientada a objectes sofisticada.

La programació orientada a objectes, com la majoria de novetats interessants, es basa en algunes velles idees, les amplia, i les posa de nou en l'actualitat. El resultat és un avenç de l'art de la programació molt important i lliure obstacles. L'orientació a objectes planteja que els programes siguin més intuïtius al disseny, siguin més ràpids de desenvolupar, més flexibles a l'hora de modificar-los i més fàcils d'entendre. Això no només és un avantatge respecte les formes alternatives de construcció de programes, sinó també a formes alternatives de la tasca de programació.

Tanmateix, per aquells qui mai han utilitzat la programació orientada a objectes a l'hora de crear aplicacions, la programació orientada a objectes pot presentar algunes dificultats serioses. La programació orientada a objectes presenta una nova forma de fer les coses que a primera vista pot semblar estranya, i que ve amb una extensa terminologia que pot costar una mica a acostumar-s'hi. La terminologia t'ajudarà en l'objectiu, però no sempre serà fàcil d'aprendre. Pot ser difícil al començar.

Aquí és on aquest llibre hi intervé. Aquest llibre documenta el llenguatge Objective-C completament, un llenguatge de programació orientat a objectes basat en l'estàndard C, i ofereix un fonament per aprendre el marc de treball de desenvolupament d'aplicacions Objective-C per a Mac OS X -- Cocoa.

Aquest llibre també està dissenyat per ajudar-te a familiaritzar-te en la programació orientada a objectes i evitar les dificultats que presenta la terminologia. Explica algunes de les implicacions del disseny orientat a objectes i intenta donar-te la idea que escriure un programa orientat a objectes és realment senzill.

El llibre també intenta que els lectors puguin interessar-se en:

  • Aprendre programació orientada a objectes.
  • Descobrir les bases del marc de treball Cocoa.
  • Programar en Objective-C.

En aquesta secció:

 

L'entorn de desenvolupament
Per què Objective-C
Com s'organitza aquest document
Convencions


L'entorn de desenvolupament

La majoria d'entorns de desenvolupament orientats a objectes consten d'almenys tres parts:

  • Una biblioteca d'objectes.
  • Un conjunt d'eines de desenvolupament.
  • Un llenguatge de programació orientat a objectes i una llibreria de suport.

Cocoa és una biblioteca extensa. Inclou molts marcs de treball (frameworks) de programari que contenen definicions dels objectes que pots utilitzar o adaptar a les necessitats del teu programa. Aquesta inclou un marc de treball Elemental, un marc de treball de Kit d'Aplicacions (per construir la interfície gràfica d'usuari), entre d'altres.

Mac OS X també inclou eines de desenvolupament per ensamblar aplicacions. Aquests són l'Interface Builder, un programa que permet que dissenyis una aplicació gràficament i ensamblar-la interactivament amb la interfície de l'usuari, i l'Xcode, un programa de gestió de projectes que proporciona accés gràfic sobre compilador, el depurador, la documentació, un editor de programes, i altres eines.

Aquest document parla del tercer component de l'entorn de desenvolupament--el llenguatge de programació i el seu entorn d'execució. Totes les frameworks Cocoa estan escrites en Objective-C. Per beneficiar-se de les frameworks, les aplicacions han d'utilitzar l'Objective-C o un llenguatge pont a Objective-C, com pot ser el Java.

L'Objective-C està format per un conjunt d'extensions del llenguatge C. Aquest està dissenyat per proporcionar completes capacitats per a la programació orientada a objectes, i per fer-ho d'una forma simple i senzilla. Aquests afegits a C són pocs i majoritariament basats en Smalltalk, un de dels primers llenguatges de programació orientats a objectes.

Aquest document també descriu el model orientat a objectes sobre el que es basa l'Objective-C i documenta completament el llenguatge. Aquest es centra en les extensions de l'Objective-C, no en el propi llenguatge Objective-C. Hi han molts bons llibres disponibles sobre C; aquest llibre no els vol replicar.

Com que aquest no és un document sobre C, assumeix algunes relacions amb aquest llenguatge. Encara que no ha de ser un equivalència massa gram. La programació orientada a objectes en Objective-C es suficientment diferent a la forma de programació en C estandard, que et pot difícil si no ets un programador de C amb experiència.


Per què Objective-C

El llenguatge Objective-C ha escollit el marc de treball Cocoa per varies raons. La primera i més important, que és un llenguatge orientat a objectes. El tipus de funcionalitat que està empaquetada en el marc de treball Cocoa només pot obtindre's mitjançant tècniques orientades a objectes. Aquest document explica les operacions dels marcs de treball i com pots aprofitar-les.

Segon, perquè l'Objective-C és una extensió de l'estandard ANSI C, els programes C existents poder adaptar-se per utilitzar-los en els marcs de treball sense perdre gens de feina feta en els desenvolupaments originals. Com que Objective-C incorpora C, obtens tots els beneficis de C quan treballes amb d'Objective-C. Pots escollir quan fer quelcom mitjançant l'orientació a objectes (definint una nova classe, per exemple) i quan utilitzes tècniques de programació procedimental (defineixes una estructura i algunes funcions incloses d'una classe).

Perquè Objective-C és un llenguatge simple. La seva sintaxi és molt minsa, sense ambigüitats, i fàcil d'aprendre. La programació orientada a objectes, amb la seva pròpia terminologia i èmfasi concisa en el disseny abstracte, ofereix una corba d'aprenentatge en etapes per als nous reclutes. Un llenguatge tant ben organitzat com Objective-C pot oferir una rebuda més fàcil a programadors experts en orientació a objectes. La mida d'aquest llibre és un testimoni de la simplicitat de l'Objective-C. No és un llibre extens.

Comparat amb altres llenguatges orientats a objectes basats en C, l'Objective-C és més dinàmic. El compilador conserva una gran part de la informació dels propis objectes pel seu ús en temps d'execució. Les decisions que podrien fer-se en temps de compilació poden posposar-se fins que el programa s'està executant. Això proporcioa als programes fets amb Objective-C una flexibilitat i potència inusual. Per exemple, el dinamisme de l'Objective-C recull dos grans beneficis que són difícils d'obtindre en altres llenguatges que es diuen orientats a objectes:

  • L'Objective-C suporta un estil obert d'enllaç dinàmic, un estil que pot ajustar una arquitectura simple a interfícies d'usuari interactives. Els missatges no estan necessariament limitats per una classe de receptor o de selector de mètode, així un marc de treball de programari pot permetre a l'usuari escollir a l'hora de l'execució i oferir als desenvolupadors llibertat d'expressió en el seu disseny. (Terminologia com "enllaçament dinàmic", "missatge", "classe", "receptor", i "selector" s'explicaran en el decurs d'aquest document).
  • El dinamisme de l'Objective-C permet la construcció d'eines de desenvolupament sofisticades. Una interfície al sistema d'execució proporciona un accés a la informació sobre les aplicacions en execució, per tant, és possible desenvolupar eines que monitoritzin, intervinguin, i revelin l'estructura amagada i l'activitat d'aplicacions fetes en Objective-C.


Com s'organitza aquest document

Aquest document està dividit en quatre capítols i dos apèndixs. Els capítols són:

  • La "Programació Orientada a Objectes" parla de la racionalitat dels llenguatges de programació orientats a objectes i introdueix molta de la terminologia. Desenvolupa les idees introduïdes per les tècniques de la programació orientada a objectes. Si estàs realment familiaritzat amb la programació orientada a objectes i només estàs interessat en l'Objective-C, pots voler saltar-te aquest capítol i anar directament a "El Llenguatge Objective-C".
  • "El Llenguatge Objective-C" descriu els conceptes bàsics i la sintàxi de l'Objective-C. Aquest inclou alguns dels tòpics pròpis de la "Programació Orientada a Objectes", però se'ls mira des de un punt de vista del llenguatge Objective-C. Aquest reintrodueix la terminologia de la programació orientada a objectes, però en el context de l'Objective-C.
  • "El Sistema d'execució de l'Objective-C" cobreix la classe NSObject i com els programes Objective-C interactuen amb el sistema d'execució. En particular, examina el paradigma de la gestió de l'assignació d'objectes, la càrrega dinàmica de noves classes en temps d'execució, i la retransmissió de missatges a altres objectes.
  • Les "Funcions d'execució i estructura de dades d'Objective-C" descriu l'estructura de dades i funcions de la llibreria de suport d'execució de l'Objective-C. Els teus programes poden utilitzar aquestes interfícies per interactuar amb el sistema d'execució de l'Objective-C. Per exemple, pots afegir classes o mètodes, o obtindre una llista de totes les definicions de classe per les classes carregades.

Els apèndixs contenen material de referència que pot utilitzar-se per entendre el llenguatge. Son:

  • El "Resum del Llenguatge Objective-C" llista i comenta breument totes les extensions de l'Objective-C al llenguatge C.
  • La "Gramàtica del llenguatge Objective-C" presenta, sense comentaris, una gramàtica formal de les extensions Objective-C al llenguatge C. Aquest és un manual de referència significatiu per llegir en companyia amb el manual de referència de C amb títol El Llenguatge de Programació C per Brian W. Kernighan i Dennis M. Ritchie, publicat per Prentice Hall.


Convencions

Quan aquest document parla sobre funcions, mètodes, i altres elements de programació, fa un ús especial de tipografia informàtica i de les fonts itàliques. Les tipografies informàtiques denoten les paraules o els caràcters que s'ha d'agafar literalment (s'escriuen com apareixen). Les itàliques representen paraules que representen alguna cosa que pot modificar-se. Per exemple, la sintaxi

@interface NomClasse ( NomCategoria )

significa que @interface i els dos parèntesis són necessaris, però que pots escollir el nom de la classe i el nom de la categoria.

Quan al codi d'exemple es mostren, les el·lipsis indiquen les parts, sovint parts substancials, que s'han omès:

- (void>encodeWithCoder:(NSCoder *)coder
{
[super encodeWithCoder:coder];
...
}

Les convencions utilitzades en l'apèndix de referència estan descrites en aquest apèndix.