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: iPhone, Objective-C, programación