Aprendiendo Cocoa

Instanciar clases en Interface Builder 3.0

Marzo 15th, 2008 por admin

Uno de los cambios que todos me comentais es como instanciaís una clase en Xcode 3, ya que desde Leopard el modo de realizar esta acción ha cambiado.
Antes si queriaís realizar un proyecto, teniamos que crear una Subclase de NSObject desde el Interface Builder, ¿recordaís?. Pues para enfatizar el uso del patrón MVC (modelo-vista-controlador) y mejorar la integración entre Xcode e Interface Builder, ahora debemos realizarlo tal y como sigue:
Pulsa aqui para continuar leyendo »

Publicado en Cocoa | 5 Comentarios»

Buenas a todos

Marzo 12th, 2008 por admin

En primer lugar pedirnos perdón. Perdón por seguir siendo un desastre, y dejar este blog que tanto me gusta de lado. Espero no tener que pedirlo de nuevo. Muchos de vosotros me mandáis email y comentarios (entre tanto spam,jeje) animándome y dándome las gracias, y siento que tengo que seguir publicando aquí, no puedo dejarlo solo.
En segundo lugar, deciros que algunos me pedisteis que pusiera un foro para comentar cosas entre vosotros, pues aquí lo tenéis
Foro
Y por ultimo, citaros a un nuevo post en el que explicaremos las diferencias entre Xcode 2.0 y 3.0 y hablaremos del nuevo boom de Apple, el iPhone SDK
Muchas gracias a todos, y de nuevo, lo siento.

Publicado en Informacion | 2 Comentarios»

Novedades en Objetive C 2.0

Noviembre 5th, 2007 por admin

Todavía estamos tratando de acostumbrarnos a todas las novedades que traen las Developer Tools con nuestro flamante nuevo sistema operativo Leopard. Ademas de Xcode 3.0 con nuevo Interface Builder, mejora en Xray y SVN, XCode 3.0 trae soporte para la sixtaxis de ObjC 2.0, la nueva versión del lenguaje que utilizamos, con Garbage Collection, properties, Fast Enumeration…

Scott Stevenson ha publicado un tutorial rapido en dos partes (la segunda) donde podemos ver las novedades. Os recordamos que si utilizáis Objective C 2.0, la aplicación solo estará disponible para Leopard.
Espero que le echéis un vistazo y nos digáis que os parece las nuevas Developer Tools

Publicado en Cocoa | 3 Comentarios»

Construir aplicaciones Universales

Octubre 22nd, 2007 por admin

Cuando empecé con esto de Cocoa, creaba alguna aplicación tras mucho trabajo, orgulloso de mi mismo intentaba mostrarle a mi amigo klian mis progresos. Pero casualmente nunca le funcionaban, siempre me decía que se le quedaban botando en el dock infinitamente sin mucho éxito.
Buscando por foros extranjeros me informé que la aplicación que yo le enviaba (la que estaba en la carpeta build de nuestro proyecto) contiene referencias a archivos de nuestro proyecto, luego no funcionan. Luego tenia que compilar un ejecutable Universal. Para ello debía realizar lo siguiente, primero cambiar el estado de la aplicación a Release ( y no en debug tal y como esta por defecto) en la parte superior de Xcode donde anuncia Active Build Configuration, y cambiar algunos parámetros de esta configuración para que fuese Universal.
Pinchad en el nombre del proyecto, botón derecho y Get Info para tener a la vista la información del proyecto. Nos vamos a la pestaña Build y nos fijamos que en Configuration esté seleccionada la actual, Release y que en la opción Architectures se muestre ppc i386 ( si pincháis sobre Architectures podéis activarlas). Y por ultimo id pinchando en el signo + para añadir estas opciones
MACOSX_DEPLOYMENT_TARGET_ppc = 10.3
MACOSX_DEPLOYMENT_TARGET_i386 = 10.4
SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk
SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk

Y en la carpeta /Build/Release tendreís el archivo .app que podeis enseñar a vuestros gente completamente funcional.

Publicado en Cocoa | 5 Comentarios»

Aplicacion Calculadora, parte 2

Octubre 21st, 2007 por admin

Tutorial creado con Xcode 2
Con esta segunda parte tratamos de dar fin a nuestra aplicación calculadora. Suponemos que todos habréis concluido con la parte 1 y os encontráis en esta situación.

Y para concluir, cread los archivos de nuestra clase Controlador, ya sabéis, pinchad en la pestaña Classes, botón derecho en nuestra clase y Create Files for Controlador, guardando los archivos junto al proyecto. Salvamos y cerramos Interface Builder, y nos vamos a por la segunda parte.
Pulsa aqui para continuar leyendo »

Publicado en Cocoa | 1 Comentario »

Aplicacion Calculadora, parte 1

Octubre 14th, 2007 por admin

Tutorial creado con Xcode 2
Tal y como hicimos con nuestra aplicación CuentaCaracteres, vamos a dividir la programación en dos partes, la perteneciente a la parte gráfica con Interface Builder y la de código o funcionamiento interno con Xcode para hacer mucho mas sencilla su entendimiento.

calc001.jpg

Pulsa aqui para continuar leyendo »

Publicado en Cocoa | 1 Comentario »

Image Viewer

Octubre 9th, 2007 por admin

Tutorial creado con Xcode 2
Mientras preparamos nuestro próximo tutorial, os recomiendo encarecidamente que hagáis este aunque no pertenezca a nuestra pagina. Es un visor de imágenes llamado Image Viewer, bastante currado y bien explicado, el que admite muchísimos formatos, y puede perfectamente servinos como un nuevo paso en nuestro tutorial.
Xphere, el creador, tiene varios tutoriales en ingles también, y es un usuario activo de ForoMac.

Espero que os guste, y le agradezcais el esfuerzo que supone explicar Image Viewer.
Enlace
Mientras tanto seguimos preparando la calculadora, que ya le queda poco.

Publicado en Cocoa | Sin comentarios »

Aplicacion CuentaCaracteres, parte 2

Octubre 2nd, 2007 por admin

Tutorial creado con Xcode 2
Perdón por el retraso, pero un descanso post-examenes me ha dejado bastante desconectado de internet. Espero ser un poco mas constante desde este momento. De vuelta al tajo, continuamos con CuentaCaracteres y para los que no sepáis de lo que estamos hablando, leed este anterior post. Si recordáis por donde nos quedamos, seguro que terminasteis de hacer esto

Y como respuesta a esta acción, Interface Builder nos ofrece guardar los archivos creados para la clase Controlador en el mismo directorio del proyecto. Elegimos guardar, para que el sistema cree dos archivos Controlador.h y Controlador.m, cuyo contenido explicaremos en la segunda parte de este tutorial.

Pulsa aqui para continuar leyendo »

Publicado en Cocoa | 6 Comentarios»

Aplicacion CuentaCaracteres, parte 1

Septiembre 24th, 2007 por admin

Tutorial creado con Xcode 2
Hoy os presentamos nuestra nueva aplicacion Cocoa, CuentaCaracteres. Dividido en dos partes, ya que explicamos muchismas cosas al ser nuestra primera aplicación, despues del Hello World. Es una aplicación sencilla de un solo documento (ahora explicamos eso) que dado un texto de entrada, nos dice cuantos caracteres posee. No creo que esta aplicación la utilicemos en nuestro dia a dia, pero para aprender nos viene de lujo.

Pulsa aqui para continuar leyendo »

Publicado en Cocoa | 9 Comentarios»

Metodos y Atributos en Objetive-C

Septiembre 18th, 2007 por admin

En primer lugar, daros las gracias a los que nos escribís dándonos apoyo y ánimos para seguir escribiendo, mil gracias, me llena de orgullo y satisfacción (como al rey, jaja).
Aunque en otro post ya os hablamos de Objetive-C, hoy vamos a repasar algunas cosas distintas de Objetive-C que puede chocar al verlas. La razón de hace este post es debido a que realizando otro post con un programa (CuentaCaracteres) nos hemos dado cuenta, que hay pequeñas diferencias que os resultarán un poco extrañas al verlas, y lo que queremos es aprender y no seguir haciendo Copy&Paste. También volver a recomendaros el libro de Fernando López de Macprogramadores (descarga).

Sabemos que Objetive-C obtiene muchas cosas de C, pero en los métodos cambia muchísimo, la razón fue la introducción de una notación infija heredada de Smalltalk para los parámetros. Muchos diréis, ¿pero que es esto de notación infija? Pues es una manera de que un método esté autodocumentado, y no cometamos el típico error de introducir un parámetro que no corresponde o no es su posición.

Imaginaros que tenéis una clase llamada Coche, y un método declarado en esa clase llamado CrearCoche con cuatro parámetros la id,marca,modelo y matricula. Pero ¿siempre te vas a acordar de que es ese orden?¿y si tienes un método como muchísimos mas parámetros?
En C++ lo llamaríamos así
coche->CrearCoche("Renault","Clio","6489-DHM");
Pero en Objetive-C sería
[coche CrearCoche:1 Marca:"Renault" Modelo:"Clio" Matricula:"6489-DHM"]
Y esto se consigue ya que en la cabecera de la declaración del método, especificamos como se llama cada parámetro
-(void) CrearCoche:(int)id Marca:(String *) Modelo:(String *) Matricula:(String*);

No penséis que con esta solución escribimos mas, todo lo contrario, el autocompletado de Xcode nos ayuda a darnos el prototipo del método listo para escribir los parámetros pulsando ESC, pero no os preocupéis que ya aprenderemos como.

La llamada a método la acabais de ver, suponiendo que coche es una instancia de la clase Coche.
[coche CrearCoche:1 Marca:"Renault" Modelo:"Clio" Matricula:"6489-DHM"]
Con un simple golpe de vista, sabéis perfectamente lo que le estáis pidiendo al método.

En Java, una clase posee métodos y atributos, pues en Objetive-C lo mismo, con la salvedad que estos atributos se denominan conexiones Outlet, y realmente son punteros a Objetos. Pero como consejo personal a la hora de diseñar, resulta mucho mas fácil pensar que son simples atributos.

También cuando un método se encarga de establecer o devolver un atributo se le llama setter o getter (getMarca,setMarca…) pues es Objetive-C por convenio, es aconsejable al setter exactamente igual (setMarca) pero al getter, únicamente con el nombre del parámetro que devuelve, por ejemplo, Marca existiría como método y como atributo.

Por ultimo, comentaros la diferencia con los strings. Podemos utilizar incluso las string de C, pero os aconsejo utilizar la clase NSString ( aquí todas las clases llevan NS, de NextStep), ya que resulta mas cómodo trabajar con ellas.
Se crean e inicializan de esta forma
NSString* mensaje=@"esto es una pedazo de cadena";
Siempre con el @ delante, para distinguirlas de las cadenas de C.

El próximo post, se llamará CuentaCaracteres, un programa sencillo, con una interfaz completa y muy curioso de programa, con el que seguiremos nuestra andadura en Cocoa.

Publicado en Cocoa | Sin comentarios »

« Entradas Previas