Escrito por Iván Alonso el Jueves 2 de Octubre de 2008

Trasteando en mi primer día con el entorno Xcode (extraño, muy extraño), he aprendido a hacer el típico Hola Mundo para el iPhone (o al menos para su emulador).

Es necesario descargar el entorno de desarrollo Xcode con el iPhone SDK (disponibles aquí), juntos en una única descarga de 1.39GB. Hay que darse de alta como desarrollador en la página de Apple, aunque vale cualquier cuenta que ya utilicéis, como por ejemplo la de iTunes y el AppStore.

Una vez instalado abrimos /Developer/Applications/Xcode. Ignoramos la típica ventana de primera ejecución y tendremos que abrir un nuevo proyecto de tipo iPhone OS, Application, Window-Based Application. Llamaremos a nuestro proyecto HelloWorld (originalidad 100%).

Si el entorno es nuevo (como lo era para mí), navegad un poco por él hasta que os sintáis cómodos, y una vez listos abriremos los archivos HelloWorldAppDelegate.h (cabeceras) y .m (código). Bienvenidos al lenguaje Objective-C, que en estos momentos me parece lo más cercano al infierno, pero poco a poco voy haciéndome con él.

Los archivos quedarán tal que así (explico lo necesario en sus comentarios:

HelloWorldAppDelegate.h

#import 
 
@interface HelloWorldAppDelegate : NSObject  {
 
    // Ventana
    UIWindow *window;
 
    // Vista (contenido) de la ventana
    UIView *contentView;
 
    // Objetos de interfaz
    // Entrada de texto
    UITextView *myTextView;
    // Etiqueta
    UILabel *myLabel;
}
 
// Las declaramos como propiedades
@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) UIView *contentView;
@property (nonatomic, retain) UITextView *myTextView;
@property (nonatomic, retain) UILabel *myLabel;
 
@end

HelloWorldAppDelegate.m:

#import "HelloWorldAppDelegate.h"
 
@implementation HelloWorldAppDelegate
 
// Tell the compiler to synthesize relevant accessors
@synthesize window;
@synthesize contentView;
@synthesize myTextView;
@synthesize myLabel;
 
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    // Creamos la ventana
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
 
    // Creamos el ContentView
    self.contentView = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
    [window addSubview:contentView];
 
    // Creamos el objeto TextView
    self.myTextView = [[[UITextView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 100.0f)] autorelease];
    [myTextView setEditable:YES];
    [myTextView setText:@"Hello World"];
    [contentView addSubview:myTextView];
 
    // Creamos un rectangulo para usarlo como tamaño y posicion de nuestro objeto UILabel
    // ancho_de_pantalla / 2 - ancho_de_etiqueta / 2
    CGFloat x = 320.0f/2.0f - 120.0f/2.0f;
    // altura_de_pantalla / 2 - altura_de_etiqueta / 2
    CGFloat y = 480.0f/2.0f - 45.0f/2.0f;
    CGRect rect = CGRectMake(x , y, 120.0f, 45.0f);
 
    // Creamos la etiqueta
    self.myLabel = [[[UILabel alloc] initWithFrame: rect] autorelease];
    [myLabel setText:@"Lalala"];
    [myLabel setTextAlignment:UITextAlignmentCenter];
    [contentView addSubview:myLabel];
 
    // Mostramos la ventana
    [window makeKeyAndVisible];
}
 
- (void)dealloc
{
    [myLabel release];
    [myTextView release];
    [contentView release];
    [window release];
    [super dealloc];
}
 
@end

Etiquetas: , ,

Esta entrada fue escrita el Jueves 2 de Octubre de 2008 a las 1:54 pm y está archivada en la categoría Blog. Puedes seguir las respuestas y comentarios en el feed RSS 2.0. Puedes dejar un comentario, o dejar un trackback desde tu propia página.

Deja tu comentario