+ All Categories
Home > Documents > Programar en Mac - AppleNeXt

Programar en Mac - AppleNeXt

Date post: 03-Jun-2018
Category:
Upload: attackasito
View: 230 times
Download: 0 times
Share this document with a friend

of 42

Transcript
  • 8/12/2019 Programar en Mac - AppleNeXt

    1/42

    Un manual de

    Programar en MacC-Objective Cocoa iPhone/iPad SDK | el manual en espaol

  • 8/12/2019 Programar en Mac - AppleNeXt

    2/42

    2010!AppleNeXtcom

    Introduccin

    Vivimos tiempos de moda para los usuarios del Mac, los Macusers. Cuando Apple lanz por primera vez elMac OS X dio comienzo a una nueva era para la programacin en Mac y para el mundo de Apple. Al margende la slida estructura basada en UNIX, el Mac OS X abri el camino a nuevas funcionalidades y posibilidadesque para los Macusers eran tan slo un sueo hace pocos aos.

    Gracias a este nuevo sistema operativo, Apple fij su mirada en los developers (desarrolladores ocoloquialmente, programadores) y desde entonces, no ha hecho ms que profundizar en esa relacin.

    El elemento principal de esta fructfera relacin entre Apple y los programadores es Cocoa, el modo deprogramacin en Mac (un conjunto de APIs) basado en el lenguaje de programacin C-Objective, que a suvez es una potente evolucin del Lenguage C.

    Nuestro objetivo con este manual es aprender a utilizar Cocoa para programar en Mac. Pero antes de nada,sepamos que es Cocoa.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    3/42

    2010!AppleNeXtcom

    Mac OS X es un sueo para cualquier programador

    Programar en Mac nunca ha sido tan sencillo y accesible como tras la aparicin de Mac OS X. Para losprincipiantes, nuestros queridos y simpticos amigos de Apple tuvieron la acertada idea de poner a nuestradisposicin los Developer Tools, las herramientas para programacin. Apple nos ofrece de forma gratuita elXcode y las dems herramientas para programar en Mac que podemos descargar de la pgina web de la ADC(Apple Developer Connection), de la que hemos hablado ya en AppleNeXt.com.

    Descargando e instalando el Xcode tendrs acceso de forma inmediata a una amplia coleccin de utilidades,herramientas, vdeos, documentacin y ejemplos de cdigo para comenzar a programar tus aplicacionespara Mac, iPhone, iPod Touch o iPad. Como hemos dicho en tantas ocasiones, basta con que sepas programaren Mac, para que tambin sepas programar para iPhone, iPod Touch y el nuevo y revolucionario iPad. Todauna ventaja!

    Antiguamente, un kit de herramientas como las que podrs descargar en la ADC de Apple costaran muchosmiles de euros. Sin embargo, ahora Apple te las dar gratis.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    4/42

    2010!AppleNeXtcom

    En las versiones anteriores de Mac OS X, el kit de herramientas para desarrolladores vena en un CD separado.Pero las nuevas versiones no. Normalmente tendrs la opcin de instalarlos con el DVD de instalacin de tuMac, pero si no quieres andar buscando el DVD en el bal de los recuerdos, podrs descargarlo en internet.Cmo? Tan sencillo como dndote de alta como miembro gratuito de la Apple Developer Connection:developer.apple.com

    De hecho, aunque tengas un disco con las herramientas de programacin, te conviene echar un vistazo a la

    ADC para ver si tu versin est actualizada, puesto que Apple suele renovar esas herramientas y mejorarlascada poco tiempo. Conviene que hagas de la ADC tu pgina de referencia para programar porque ser lamejor manera de que ests al da.

    Aunque el Xcode y las dems herramientas para programar en Mac sean gratuitas no por ello significa quesean de peor calidad. Ms bien, todo lo contrario. Con el Xcode de Macintoshpodrs sacar mucho provecho alas siguientes posibilidades:

    Programar en Mac

    Escribir cdigos de programacin en una amplia variedad de lenguajes diferentes: C, Objective-C, Python,Ruby, Java, y como no, AppleScript.

    Crear atractivos interfaces siguiendo las lneas del Human Interface Guidelines de Apple. Para esoutilizars la herramienta llamada Interface Builder que viene incluido en el kit de herramientas.

    Programar interesantes aplicaciones

    , muchas de las cuales podrs utilizar en nuevos cdigos sin lanecesidad de volverlos a escribir.

  • 8/12/2019 Programar en Mac - AppleNeXt

    5/42

  • 8/12/2019 Programar en Mac - AppleNeXt

    6/42

    2010!AppleNeXtcom

    Programar en Mac

    3. Descargar el Kit de herramientas para Desarrollo de Software

    Te habrs dado cuenta que Kit para Desarrollo de Softwareen ingls es: Software Development Kit, es decir,el SDK, que te sonar de algo, no?

    El SDK del iPhone es el mismo para iPad e iPod Touch. Adems incluye el Xcode, que es la aplicacinnecesaria para programar en Mac OS X. Por lo tanto, descargando la ltima versin del iPhone SDK nonecesitars nada ms para empezar a programar para Mac.

  • 8/12/2019 Programar en Mac - AppleNeXt

    7/422010!AppleNeXtcom

    iPhone SDK

    Aunque ya lo hemos explicado en AppleNeXt.com, para los despistados vamos a recordar qu es el iPhoneSDK.

    Se trata de un kit de herramientas necesarias para la Programacin en Mac (en concreto para programarApps para el iPhone, pero las herramientas para el iPhone son las mismas que para Mac OS X). Descargandoel iPhone SDK podrs programar tanto para iPhone como para Mac OS X, iPad o iPod Touch. Durante estemanual nos referiremos a l como iPhone SDK o iPad SDK indistintamente.

    El iPhone SDK se puso a disposicin de los desarrolladores un ao despus del lanzamiento del primeriPhone, el 8 de marzo de 2008. Adems se anunci el lanzamiento de la AppStore, la principal tienda de Apps.

    Programar en Mac

    Una Appes el nombre coloquial con el que se denominan las aplicacionesde iPhone, iPad e iPod Touch.

    La AppStore no es slo la tienda de las Apps del iPhone y el iPad, sino lanica plataforma legal para introducirlas en el mercado y para descargarlas atu iPhone.

    Por lo tanto, a partir de ahora, cualquier App que programes para tu iPhoneo iPad debers lanzarla a travs de la AppStore, de la que ya hemos habladoen AppleNeXt.com.

  • 8/12/2019 Programar en Mac - AppleNeXt

    8/422010!AppleNeXtcom

    El iPhone SDK consta de 4 herramientas principales:

    Programar en Mac

    1. Xcode: Es la herramienta principal para el desarrollo de software enMac. Como ya hemos dicho, servir para programar tanto en iPhone,iPod Touch e iPad como para Mac OS X.

    2. iPhone Simulator: Una vez hayas terminado la programacin de tusaplicaciones podrs probarlas en un simulador del iPhone desde lapantalla de tu Mac.

    3. Instruments: Es un conjunto de herramientas tiles para sacar elmximo partido a tus nuevas Apps. Adems ofrece una lnea de tiempopara los datos programados.

    4. Interface Builder: Esta joya es la encargada del diseo de los atractivosinterfaces de usuario que tendrn tus Apps, basados en las HumanInterfaces Guidelines oficiales de Apple.

  • 8/12/2019 Programar en Mac - AppleNeXt

    9/42

    2010!AppleNeXtcom

    Cocoa

    Cocoa es el nombre que reciben las APIs o el conjunto de frameworks para Programar para Mac. Es, para quenos entendamos, un modo de programacin basado en el lenguaje Objective-C (como ya sabemos, unaevolucin que potencia las posibilidades del lenguaje C).

    Cacao Maravillao... Cocoa es la palabra inglesa para denominar el Cacao.

    Originariamente, Cocoa era el nombre de una aplicacin para nios con la que podan crear sus primerosproyectos multimedia. La marca fue adquirida por Steve Jobs y a partir de entonces se refiere en el mbitoinformtico para el mtodo de programacin en Mac.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    10/42

    2010!AppleNeXtcom

    Cocoa: un poco de historia

    rase una vez, un par de chicos llamados Steve fundaron una compaa en un garaje a la que llamaron Apple.La compaa tuvo mucho xito y creci rpidamente y se decidi poner en manos de un importanteejecutivo que provena de una de las compaas ms importantes del mundo. ste se llamaba John Sculley ylleg a Apple convencido por la famosa frase de Steve Jobs: Quieres dedicarte toda tu vida a vender aguaazucarada o prefieres venir a hacer historia?.

    Programar en Mac

    Tras algunos problemas sobre el control de la compaa, Steve Jobs el padre de lacriatura decidi ceder e irse. Pero lejos de quedarse con los brazos cruzados, funduna nueva compaa informtica NeXt Computer.

    NeXt junt a un pequeo equipo de ingenieros brillantes. Este pequeo equipo dio

    lugar a un nuevo ordenador... y a un nuevo Sistema Operativo... y a una nuevaempresa... y tambin a un conjunto de herramientas de programacin.

    Ese Sistema Operativo estaba a aos luz por encima de cualquier otro OS en el mundode la informtica, pero desafortunadamente la enorme expectacin que gener no setradujo en ventas y la fbrica tuvo que cerrar en 1993. NeXt Computer se convirti enNeXt Software, dedicada exclusivamente a ese nuevo Sistema Operativo.

  • 8/12/2019 Programar en Mac - AppleNeXt

    11/42

  • 8/12/2019 Programar en Mac - AppleNeXt

    12/42

    2010!AppleNeXtcom

    ...y NeXtSTEP se convirti en Mac OS X

    Apple haba estado trabajando muchos aos tratando de alcanzar un sistema operativo similar al logrado porNeXt Software. Estos esfuerzos fueron conocidos como el Proyecto Copland. El proyecto no cuajaba yfinalmente los directivos de Apple decidieron dejarlo de lado y optaron porque el siguiente sistemaoperativo de Apple sera encargado a una compaa externa.

    Y aqu entr en accin NeXt!!!Los directivos de Apple estudiaron todos los sistemas operativos y prefirieronNeXtSTEP, el sistema basado en Cocoa que haba creado la empresa NeXt, fundada por Steve Jobs, elfundador de Apple.

    Apple compr la totalidad de la compaa NeXt Software en diciembre de 1996. Y NeXtSTEP pas aconvertirse en Mac OS X.

    Programar en Mac

    Steve Jobs funda Apple. Le echan.

    Los nuevos directivos son incapaces de crear un Sistema Operativo basado en UNIX.

    Steve Jobs funda NeXT.

    NeXT crea el mejor Sistema Operativo del mundo.

    Apple compra NeXT y Steve Jobs vuelve a Apple.

  • 8/12/2019 Programar en Mac - AppleNeXt

    13/42

    2010!AppleNeXtcom

    Acabars adorando CocoaEs cierto: acabars adorando Cocoa y la programacin en Mac. Pero no inmediatamente. Primero debersaprender las bases y para comenzar debers conocer las herramientas que vamos a utilizar.

    Ya hemos hablado del iPhone SDK que contiene las herramientas para programar cualquier aplicacin paracualquier dispositivo de Apple. Adems de las 4 herramientas bsicas, y slo para tu informacin, tecomentamos que existe tambin el GCC(GNU C Compiler, es decir, el compilador) y el GDB (GNU Debugger)

    para localizar cualquier error (recordemos que se llaman bugs y el proceso de correccin se conoce comoDebug).

    Quiz ahora te suene a chino, pero es impresionante que una herramienta como Xcode sea capaz deincorporar todos los recursos en una misma App: las imgenes, sonidos... T nicamente debers escribir tucdigo en Xcode, y el propio Xcode lo compilar junto a todos los recursos y lanzar la nueva aplicacinparaMac, iPhone, iPad...

    Otra de las maravillas de Cocoa es el Interface Builder, que no slo es un GUI builder (literalmente:Constructor de Interfaces grficos para usuario; en cristiano: un creador de interfaces). Es mucho ms: porquepermite la creacin de objetos y la asignacin de funciones a esos objetos, muchos de los cuales son UIElements como botones, campos para texto... y otros tantos sern partes de las Clases que crears.

    No te asustes, simplemente te cuento esto para que sepas que Xcode y Interface Builder son las mejoresherramientas de programacin que existen y ambas juntas dan lugar a Cocoa.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    14/42

    2010!AppleNeXtcom

    Ya te sabes la historia.Ya has descargado las herramientas.

    Ahora, comienza la accin.

    NOTA: Este es un manual creado por AppleNeXt.com. Como parte de los servicios que prestamos, el profesor Emilius B. Starkingestarencantado de resolver las dudas que te surjan mientras aprendes a Programar en Mac. Para ello, debers acceder a la web de AppleNeXt.com

    y consultar la seccin Resuelve tus Dudas, en la que el Prof. Starking publicar las respuestas.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    15/42

    2010!AppleNeXtcom

    Puesta a punto del Xcode

    Doy por hecho que te has decidido a comenzar a aprender cmo Programar en Mac con AppleNeXt.com.Bien, supongo que ya sers miembro (gratuito o no) de la Apple Developer Connection(developer.apple.com) y si no es as, ser que te has saltado alguno de los pasos anteriores. Tambin imaginoque ya habrs descargado e instalado el iPhone SDK, no?

    Una vez tengas descargado e instalado el iPhone SDK lo ms inmediato que debes hacer es localizar Xcode y

    abrirlo. En tu disco duro habr aparecido una nueva carpeta llamada developer y en ella podrs localizar elXcode dentro de la carpeta Applications.

    Macintosh HD > Developer > Applications > Xcode

    Ahora es el momento de descargar la documentacin (iPhone Reference Library). Esto durar un momento yte ahorrar tiempo mientras programas tus aplicaciones.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    16/42

    2010!AppleNeXtcom

    http://developer.apple.com/iphone/library/navigation/index.html

    Cocoa Touch

    En el iPhone, iPad e iPod Touch, Cocoa es conocido como Cocoa Touch porque estos dispositivos contieneneventos de tipo touch (tctiles). Sabes de sobra de lo que estoy hablando puesto que llevas mucho tiempotoqueteando tu iPhone o tu iPod Touch y habrs ampliado una foto, girado con tus dedos, abierto unaventana o ajustado el navegador del Safari...

    Tcnicamente, los Touch events te permitirn programar respuestas para cada vez que el ususario toque lapantalla del iPhone con sus dedos.

    Programar en Mac

    http://developer.apple.com/iphone/library/navigation/index.htmlhttp://developer.apple.com/iphone/library/navigation/index.htmlhttp://developer.apple.com/iphone/library/navigation/index.html
  • 8/12/2019 Programar en Mac - AppleNeXt

    17/42

    2010!AppleNeXtcom

    Cuando avancemos un poco sabrs lo que son las Clases. Hoy por hoy, simplemente te digo que CocoaTouch te proporcionar las libreras bsicas de Clases que necesitars para crear tus aplicaciones para eliPhone.

    Foundation Framework

    Otro de los conceptos que debes conocer para aprender a Programar en Mac son los Frameworks. LosFrameworks son colecciones de cdigo dedicados a una misma tarea. Se entiende, no? Pues bien, para

    Programar aplicaciones para el iPhone utilizaremos siempre dos tipo de Frameworks:

    Foundation framework: destinado a colecciones de temas estndar y tareas bsicas. UIKit framework: Destinado al interfaz de usuario.

    La comodidad del Foundation framework es que existe una amplia coleccin de tareas bsicas yaprogramadas que puedes utilizar sin necesidad de programarlas t mismo desde cero. No te preocupes,Apple tambin selecciona sus componentes, no los fabrica desde cero. Nosotros no queremos perder tiempo.

    Programar en Mac

    Cocoa Touch

    Media

    iPhone OS

    Core Service

    Objective-C

    C

    Tecnologa Lenguaje de Programacin

  • 8/12/2019 Programar en Mac - AppleNeXt

    18/42

    2010!AppleNeXtcom

    Tu primera Aplicacin para MacMuchos manuales comienzan proporcionndote mucha filosofa sobre la programacin. Nosotros hemosquerido darte las pinceladas maestras en las pginas anteriores pero no queremos perder ms tiempo coneso. Hemos preferido ensearte a programar tu primera aplicacin en Cocoa, y cuando termines teencontrars en condiciones para toda esa filosofa...

    Nuestra primera aplicacin ser un generador aleatorio de nmerosutilizando dos botones: calcular un nmero aleatorio durante un tiempo y mostrar dicho nmero.

    Realmente lo que nos interesa es que aprendas a utilizar un inputdel usuario para que obtenga un output. Astu cabeza comenzar a entender el lenguaje de la programacin.

    NOTA: Te recomendamos que coloques la aplicacin Xcode en el dockde tu Mac para que sea ms rpidollegar a l, puesto que a partir de ahora lo vamos a utilizar bastante.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    19/42

    2010!AppleNeXtcom

    Crear un nuevo proyecto

    Como ya hemos dicho antes, una de las ventajas de Xcode es que agrupa todo el trabajo y los recursos de tu

    aplicacin. Esto lo hace en un directorio llamado Project Directory. Pues bien, lo primero que haremos escrear un nuevo proyecto con el esqueleto que todas las aplicaciones deben tener por defecto.

    En la pgina de bienvenida de Xcode selecciona Create a new Xcode project.

    Cuando se abra el panel de proyectos, vers que existen multitud de posibilidades. Esta vez vamos a realizaruna aplicacin para Mac, por lo tanto seleccionaremos Cocoa Applicationdentro de la lista de Mac OS X.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    20/42

    2010!AppleNeXtcom

    Pon el nombre que quieras a tu nuevo proyecto. Yo he escogido NumerosAleatorios que es el tema denuestra primera aplicacin para Mac OS X. Pulsa Save.

    Xcode habr creado el directorio de tu nuevo proyecto con el esqueleto bsico de cualquier aplicacin. Loque nosotros deberemos hacer es desarrollar ese esqueleto bsico a nuestro gusto y despus compilarlotodo en una Aplicacin que funcione. Esto es programar.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    21/42

    2010!AppleNeXtcom

    Echando un vistazo al directorio de tu proyecto podrs ver que existe una visualizacin global del proyectoen la zona de la izquierda de tu ventana. Cada uno de los elementos de esa parte de la ventana representa untipo de informacin diferente que ser de utilidad para el programador.

    Algunos son archivos, otros son mensajes (como los errores del compilador). Por ahora nos centraremos enlos archivos, as que haz click en NumerosAleatorios para ver los archivos que sern compilados dentro deuna aplicacin.

    El esqueleto que vemos ser compilado al terminar de programar nuestra aplicacin y estar compuesto poral menos una ventana y un men, como todas las aplicaciones en Mac OS X.

    Haz click en el smbolo que tiene un martillo y un play verde para construir la aplicacin y hacerla funcionar(Build and Run, en ingls).

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    22/42

    2010!AppleNeXtcom

    Mientras la aplicacin se construye vers que el icono de Xcode en el dock se cambia para indicarte que esttrabajando. Una vez finalizado vers la ventana y el men que habamos dicho...

    El nombre de tu nueva aplicacin aparecer en el men; esto te indicar que tu aplicacin est activa.

    La ventana evidentemente estar vaca, puesto que no hemos desarrollado an el esqueleto de nuestraaplicacin, pero te dars cuenta que ya tenemos los elementos bsicos de cualquier aplicacin. Ahoratendremos que programar el nuevo cdigo. Vamos all!

    Cierra la aplicacin NumerosAleatorios (como cualquier aplicacin que existe cmd+Q) y regresemos a Xcode.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    23/42

    2010!AppleNeXtcom

    La funcin principal (main Function)

    Selecciona main.m haciendo click en l (ojo, si haces doble click en l lo abrirs en una nueva ventana).Cuando ests acostumbrado a hacer ms cdigos de programacin te dars cuenta del tiempo que se ahorrausando el estilo de nica-ventana.

    Antes de seguir, vamos a aadir una nueva herramienta a la barra de herramientas del Xcode. Quedaraadida para siempre. nicamente tendrs que hacer click con el botn derecho en la barra de herramientascomo te indico en la imagen y seleccionar Customize Toolbar (personalizar barra de herramientas). Ahaparecer un conjunto de herramientas y debers arrastrar la herramienta Editor sobre la barra deherramientas. Despus pulsa Done.

    NOTA: Podrs personalizar tu espacio de trabajo las veces que quieras. Aqu te ir recomendando algunascosas, pero siempre depender de lo que te sea ms cmodo a la hora de trabajar.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    24/42

  • 8/12/2019 Programar en Mac - AppleNeXt

    25/42

    2010!AppleNeXtcom

    Una vez que se ha cargado el archivo nib tu aplicacin simplemente esperar a que el usuario haga algo. Ycuando el usuario haga click o escriba, tu cdigo ser llamado automticamente. Aunque por ahora nosepamos nada ms, el funcionamiento es fcil de comprender, no? Vamos, que la funcin principal main()

    siempre te llevar a otra llamada NSApplicationMain() que ser la que dirija el cotarro cuando elusuario haga algo. Todo pasar por la funcin NSApplicationMain()pero slo reaccionar cuando elusuario haga algo.

    En las ltimas versiones de Xcode y iPhone SDK a los archivos NIB se les ha pasado a denominar archivos XIB,por lo que en tu Xcode probablemente tendrs algn archivo .xib Vamos a verlo!

    Busca en la carpeta Resources que aparece en la ventana de la izquierda:

    Programar en Mac

    Haz doble click en el archivo .xib yse abrir con la herramientaInterfaceBuilder

    Esto se pone ms interesante, eh!

  • 8/12/2019 Programar en Mac - AppleNeXt

    26/42

    2010!AppleNeXtcom

    Interface Builder

    Si has seguido los pasos anteriores correctamente se abrirn en tu escritorio muchsimas ventanas por lo que

    ser el momento de minimizar (u ocultar) el Xcode para no liarte con tantas cosas. En el men llamadoInterface Builder encontrars la opcin Hide Others (ocultar otras, en ingls).

    Esta fantstica herramienta te permitir crear y editar los objetos del Interfaz de Usuario (el interfaz deusuario es lo que se ve de una aplicacin): por ejemplo, botones o ventanas. Y adems grabar esos objetosen un archivo. No slo colocars objetos sino que los relacionars entre ellos mismos y entre cada objeto y lasfunciones de tu cdigo para que cuando el usuario haga algo con los objetos de la pantalla, tu cdigo seejecute.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    27/42

    2010!AppleNeXtcom

    Quiz no te has dado cuenta, pero ya has aprendido muchsimo para Programar en Mac. Sabes usar el Xcode,has creado tu primer proyecto y ests investigando el Interface Builder. Vas por buen camino...

    Library

    La ventana Library es el lugar donde podrs encontrar widgets que podrs arrastrar sobre el interfaz queests creando. Por ejemplo, si quieres un botn pues lo arrastras desde la ventana Library.

    Programar en Mac

    Ventana en blanco

    La ventana en blanco representa una ventana de la clase NSWindowque est dentro de tu archivo .xib y a medida que arrastres objetos sobretu ventana en blanco, stos se aadirn al archivo .xib

    Una vez que hayas hecho algo con los objetos y hayas editado suscaractersticas al grabar el archivo xib se quedarn todoshermticamente dentro de l. Si ya te decamos que Xcode y InterfaceBuilder son herramientas fantsticas. Cuando la aplicacin se ejecuta elarchivo xib ser ledo y los objetos que contiene aparecern tambin.

    Los objetos son empaquetados por el Interface Buildery sern desempaquetados cuando la aplicacin se ejecute.

  • 8/12/2019 Programar en Mac - AppleNeXt

    28/42

    2010!AppleNeXtcom

    Ahora vamos empezar a crear nuestro primer interfaz de usuario para nuestra aplicacin NumerosAleatorios.

    Arrastra un botndesde la Biblioteca de objetos (Library) sobre la Ventana en Blanco.

    Truco: para que sea ms fcil encontrarlo puedes usar el selector de la parte superior de la ventana yencontrars los botones en la categora Views & Cells. Ah selecciona el botn que quieras, por ejemplo

    Rounded Rect Button y arrstralo a tu Ventana en Blanco. Venga, que es fcil!

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    29/42

    2010!AppleNeXtcom

    Ahora haz doble click en el botn que acabas de arrastrar para cambiarle el nombre. Lo podemos llamarcalcular nmero aleatorio. Podrs ampliar el botn todo lo que quieras fcilmente y te quedar algo as:

    Ahora vamos a seleccionar el botn creado y hacemos CopyPaste para crear uno nuevo que colocaremosdebajo del primero. Al nuevo botn lo podemos llamar Mostrar nmero.

    Sencillo, verdad? Ahora seleccionaremos una etiqueta (Label) de campo para texto (Text Field) de laBiblioteca y la arrastramos sobre nuestra ventana una vez ms. Ojo, no hablo del campo de texto en s, sinode la etiqueta Label!!

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    30/42

    2010!AppleNeXtcom

    Para hacer la etiqueta de texto tan grande como los botones estrala hasta los lmites de la ventana. Vers queaparecen unas lneas azules para ayudarte con las dimensiones y los tamaos. Estas lneas son las guas queApple pone a tu disposicin para que tu interfaz se parezca a los parmetros de Apple GUI Guidelines (es

    decir, que se parezca a la imagen tpica de las aplicaciones del Mac OS X).

    Cambia tambin el tamao de tu ventana para ajustarla a la imagen que t desees y que no quededemasiado espacio en blanco.

    Ahora vamos a centrarnos en los contenidos del interfaz y el manual se complicar un poco. Pero no tepreocupes, como ves lo vamos a ir tratando poco a poco.

    Nos har falta utilizar el inspector, que es la ventana que tenemos a la derecha:

    Selecciona la Etiqueta que acabamos de incorporar a nuestra Aplicacin.

    En el Inspector seleccionamos el primer icono (Attributes)

    Seleccionamos justificacin al centro.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    31/42

    2010!AppleNeXtcom

    La ventana Doc (the Doc Window)

    Te habrs dado cuenta de que hay otra ventana ms en Interface Builder: se trata de la ventana Doc, para

    que nos entendamos es la ventana de documento, pero la llamar ventana Doc.

    Como en casi todo en el mundo de la informtica, no todos los elementos de programacin son visibles. Losdos botones que hemos arrastrado s lo son y tambin la etiqueta Label. Como ya sabes, los elementosvisibles aparecern en la ventana en blanco (que ya no est en blanco) mientras que los elementos invisibleslos controlaremos desde la ventana Doc.

    Por tanto, la ventana Doc es la ventana de los objetos invisibles. Los elementos de dicha ventana representana los objetos invisibles.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    32/42

    2010!AppleNeXtcom

    La ventana Doc es una de las ms atractivas en la Programacin en Mac (por lo menos a m siempre me lo haresultado).

    En ella podemos ver elementos que representan al men principal (main menu) y a la ventana de nuestraaplicacin.

    First Responder es un elemento ficticio pero que realiza una ficcin muy til. Ser explicada encaptulos posteriores.

    Files Owner en este archivo xib es el objeto NSApplicationpara nuestra aplicacin. Este objetodirige los eventos de la cola de eventos y los coloca en la ventana apropiada. Tambin trataremos este

    objeto ms adelante.

    Vamos a crear una clase (Class)

    En el lenguaje de programacin Objective-C cada clase se define a partir de dos archivos: un archivo decabecera (header) y un archivo de implementacin.

    Al archivo Header se le conoce tambin como el archivo de la Aplicacin (el archivo de programa). En l sedeclaran las variables y mtodos que contiene la clase que hayamos creado. Sin embargo, el archivo deimplementacin lo que hace es desarrollar qu es lo que esos mtodos harn.

    Importante: Como ves, llegados a este punto es importante que recuerdes lo que sabes del lenguaje de programacin C: clases,mtodosy variables. Si nunca has odo hablar de esto no te preocupes, porque en AppleNeXt.com tambin te los explicamos.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    33/42

    2010!AppleNeXtcom

    Para crear la Clase debers regresar a Xcode. En el men archivo selecciona New File y se abrir la siguienteventana:

    Debers seleccionar el archivo Objective-C class. Ponle de nombreFoo.m

    Los archivos Foo.hy Foo.maparecern en tu proyecto dentro de Classes:Si aparecen en otra parte puedes arrastrarlos a la carpeta Classes

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    34/42

    2010!AppleNeXtcom

    En Foo.hpodrs aadir variables y mtodos a la clase que has creado. A las variables que apuntan haciaotros objetos se les llama outletsy a los mtodos que se pueden accionar por parte del usuario se les llamaacciones(actions).

    Vamos a editar Foo.hpara que quede algo as:

    #import

    @interface Foo : NSObject {

    IBOutlet NSTextField *textField;

    }

    -(IBAction)seed:(id)sender;

    -(IBAction)generate:(id)sender;

    @end

    Leyendo esto, alguien que sepa de Objective-C podra decir tres cosas de estas lneas de cdigo:

    1. Fooes una subclase de NSObject. 2. Footiene una variable: textFieldes un puntero hacia una parte de NSTextField

    3. Footiene 2 mtodos: seed:y generate:(que son mtodos acciones).

    NOTA: No te preocupes si an no entiendes ni palabra de todo esto. Lo veremos dentro de muy poco. Recuerda que simplementeestamos creando una aplicacin desde cero y ms adelante entenders todo eso.

    Date cuenta que los nombres de los mtodos y las variables comienzan por minscula pero al juntar varias palabras las siguientes seponen en mayscula para diferenciarlas. Esto es as por un acuerdo no escrito global entre programadores. Sin embargo, tambin seha convenido que los nombres de las Clases comiencen en mayscula (Foo.h)

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    35/42

    2010!AppleNeXtcom

    Vamos a dar vida a esto:

    Lo siguiente que hars es crear un flujo de actividad para la Clase Fooen tu archivo xib (en Interface Builder).

    As que volvemos a Interface Builder.

    En la Biblioteca vamos a seleccionar un Object (el icono es un cubo azul) que encontrars en el selector en elmen Objects & Controllers:

    Lo arrastraremos a la ventana Doc (recuerda que es la ventana de los elementos invisibles)

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    36/42

    2010!AppleNeXtcom

    En el Inspector seleccionamos la opcin Identity (cuyo icono es una i azul) y le asignamos la Class quehemos creado, es decir, Foo.

    Nota: si no apareciese Foo en la lista de Classes debers revisar los pasos anteriores. Probablemente has olvidado grabar

    despus de modificar el cdigo de Foo.h

    Conexiones

    Gran parte de las programacin orientada a objetos (recuerda que de eso se trata Objective-C, y por tanto,Cocoa y la Programacin en Mac).

    Por eso, ahora lo que haremos es comenzar a conectar unos objetos con otros. Tcnicamente vamos aestablecer los outletsde nuestros objetos.

    ATENCIN: Para conectar unos objetos con otros, usaremos control+arrastrar desde un objeto sobre otro.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    37/42

    2010!AppleNeXtcom

    Como an no tenemos mucha idea, vamos a fiarnos del siguiente diagrama sobre qu objetos tenemos queconectar:

    S que esto puede asustarte un poco. Pero pronto lo entenders todo. Recuerda que es tu primera aplicaciny todo esto slo debe servirte para que cuando lo expliquemos ya lo hayas visto con anterioridad.

    Segn este diagrama lo que vamos a hacer es establecer que la variable textField apunte al objetoNSTextFielden el hueco donde ahora mismo pone Label.

    Vamos all: Haz control+arrastrar (o arrastrar con botn derecho) desde Foo (en la ventana Doc) hasta laetiqueta que hemos llamado Label.

    Programar en Mac

    NSButton

    accin = seed:

    Foo

    -seed:

    -generate:

    -awakeFromNib

    NSButton

    accin = generate:

    NSTextField

    -setIntValue:

    -setObjectValue:

  • 8/12/2019 Programar en Mac - AppleNeXt

    38/42

    2010!AppleNeXtcom

    Ahora vamos a hacer que el outlet del botn Calcular nmero aleatorio apunte a Foo. Y adems queremosque el botn siga el mtodo seed:

    Haremos lo mismo. Control+Arrastrar desde el botn Calcular... hasta la instancia Foo. Y cuando el panelaparezca deberemos seleccionar el mtodo seed: Haremos lo mismo con el botn Mostrar... peroseleccionando en el panel generate:

    Recuerda seleccionar cada botn antes de hacer la conexin. De lo contrario quiz no aparezca el panel conlas opciones seed:y generate:

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    39/42

    2010!AppleNeXtcom

    Muy bien! Ya lo has hecho!

    Como has trabajado con Interface Builder slo tendrs que grabar y quedar todo guardado en el archivo xib.

    Vuelta a Xcode

    Probablemente seas nuevo en esto de la Programacin as que cuando terminemos este ejemplo haremosuna breve explicacin sobre todos estos trminos (Clases, mtodos, variables, instancias...). Todo estolo conocer bien alguien que ya sepa algo del Lenguaje C y del Objective-C, pero no te preocupes: ttambin acabars sabindolo con mucha facilidad.

    Por el momento simplemente haremos Copy&Paste de este cdigo (que corresponde a los mtodos) justoantes de @end

    - (IBAction)generate:(id)sender

    {

    // Generar un nmero del 1 al 100 ambos incluidos

    int generated;

    generated = (random() % 100) + 1;

    NSLog(@"generated = %d", generated);

    // Le decimos al textField que cambie lo que se est mostrando [textField setIntValue:generated];

    }

    - (IBAction)seed:(id)sender

    {

    // Determinar el nmero aleatorio con la hora

    srandom(time(NULL));

    [textField setStringValue:@"Generator seeded"];

    }

    No te olvides de Guardar.

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    40/42

    2010!AppleNeXtcom

    Ya hemos terminado.

    CONSEJOS: Pero antes de pulsar Build & Run te voy a recomendar que hagas algunos cambios en tuspreferencias que te sern de utilidad:

    Entra en Preferences (Men Xcode > Preferences...):

    - En General, asegrate de que tienes marcado Open counterparts in same editor (para pasar de.ha.mcon agilidad en un mismo editor.

    - En Debugging, debers tener marcado Auto Clear Debug Console (para que se borre el registro deerrores tras cada proceso de debug). Debug, como ya dijimos antes, es eliminar errores de cdigo.

    - Mi ltimo consejo es que en Indentation tengas marcada la opcin Syntax-aware indenting:

    Programar en Mac

  • 8/12/2019 Programar en Mac - AppleNeXt

    41/42

  • 8/12/2019 Programar en Mac - AppleNeXt

    42/42

    Perfecto!! Ya funciona correctamente :)

    Enhorabuena, porque acabas de programar tu primera Aplicacin usando Cocoa.

    Programar en Mac


Recommended