News & Events
Primeiros passos
Como já mencionei anteriormente, e em vídeo, a linguagem de desenvolvimento para iPhone, iPad e iPod Touch é o Objective-C,
também chamado por alguns de ObjC. Para trabalharmos com essa linguagem utilizamos o XCode, uma IDE de desenvolvimento da Apple. Na Figura 1 vemos uma foto do XCode com seu editor de código aberto.
Figura 1. Screenshot do XCode |
Note que a esquerda possuímos uma árvore com diversas pastas. Cada uma delas possui “n” arquivos que compoem nosso projeto. No meu caso abri o projeto 1stProject. Comentei em meu Canal de Tecnologia que cometi um erro básico de programação sem perceber: salvei o projeto contendo um número no início do nome. O XCode apagou automaticamente o no. 1 e inseriu um “_” no lugar. Vamos a algumas explicações:
Classes: O próprio nome já diz tudo. Nessa pasta todas as nossas classes ficarão armazenadas;
Other Resources: Contém outros arquivos que não são classes em Objective-C. Ao criar as apps, essa pasta é automaticamente atualizada com os arquivos necessários para o bom funcionamento do software;
Resources: Contém os demais arquivos do projeto que serão inclusos ao aplicativo final. Imagens, arquivos texto, ícones, som, etc;
Frameworks: É uma pasta especial que contém demais recursos que serão agregados a sua app;
Products: Contém o aplicativos compilado propriamente dito;
Interface Builder
No IB nós desenhamos a parte visual de nossos programas e conectamos as classes, métodos, e etc aos objetos em tela. Na Figura 2 vemos um printscreen do IB com todas as janelas abertas.
Figura 2. Interface Builder |
Da esquerda para a direita vemos a janela de gerenciamento dos arquivos (classes) do projeto, a janela Inspector (uma espécie de Object Inspector do XCode) e a Library onde encontramos os objetos (controles) necessários para as mais diversas tarefas, tais como botões, labels, etc.
Siga @tdevrocks no Twitter e fique por dentro de todas as atualizações do blog.
Figura 3. Criando a aplicação |
Adriano Santos é especialista em linguagens de desenvolvimento, autor de diversos artigos e membro do Embarcadero Community Evanglist Program. Siga-o no twitter @asrsantos e fique por dentro de tudo que acontece nos bastidores de TDevRocks.
Figura 4. Escolhendo o tipo de projeto |
- OlaMundoViewController.h: Arquivos com a extensão .h é onde declaramos nossas classes, métodos, propriedades, etc.
- OlaMundoViewController.m: Arquivos com a extensão .m são usados para codificamos nossas apps, ou seja, fazemos uso de nossas classes;
- OlaMundoViewController.xib: Um dos arquivos mais interessantes na minha opinião. Ele guarda toda a parte visual do app, ou seja, todas as configurações de interface do aplicativo. Clicando nele duas vezes, o Interface Builder é aberto nos possibilitando incluir controles na tela bem como lincá-los aos seus respectivos métodos.
Vamos criar algo bem simples. Vamos colocar apenas um Label, um TextBox e um Button. Ao clicar no Button vamos pegar o conteúdo do TextBox e exibí-lo em um Alerta com a frase: Olá mundo! Olá [FULANO (Texto do TextBox)].
Quando abrimos a primeira vez o arquivo OlaMundoViewController.hvemos o seguinte código:
//
// OlaMundoViewController.h
// OlaMundo
//
// Created by Adriano Santos on 14/12/10.
// Copyright 2010 Adriano Santos. All rights reserved.
//
#import
@interface OlaMundoViewController : UIViewController {
}
@end
Entre os símbolos “{” e “}” declaramos os objetos que conterão em nosso app. Veja:
@interface OlaMundoViewController : UIViewController {
UILabel *lblNome;
UITextField *edtNome;
IBOutlet UIButton *btnOk;
}
Abaixo do fechamento das chaves, declaramos os métodos e propriedades necessários para criação dos objetos. Vejamos:
@interface OlaMundoViewController : UIViewController {
UILabel *lblNome;
UITextField *edtNome;
IBOutlet UIButton *btnOk;
}
@property(nonatomic, retain) IBOutlet UILabel *lblNome;
@property(nonatomic, retain) IBOutlet UITextField *edtNome;
@property(nonatomic, retain) IBOutlet UIButton *btnOk;
-(IBAction) OnClick:(id)sender;
// OlaMundoViewController.m
// OlaMundo
//
// Created by Adriano Santos on 14/12/10.
// Copyright 2010 Adriano Santos. All rights reserved.
//#import “OlaMundoViewController.h”@implementation OlaMundoViewController/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
– (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
*//*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
– (void)loadView {
}
*/
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
– (void)viewDidLoad {
[super viewDidLoad];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
– (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
– (void)didReceiveMemoryWarning {
// Releases the view if it doesn’t have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren’t in use.
}
– (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
– (void)dealloc {
[super dealloc];
}
@end
@synthesize edtNome;
@synthesize btnOk;-(IBAction) OnClick:(id)sender;{
NSString *Mensagem = [[NSString alloc] initWithFormat:@”Olá Sr(a) %@”, edtNome.text];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@”Alerta” message:Mensagem delegate:nil cancelButtonTitle:@”Ok” otherButtonTitles:nil];
[alert show];
[alert release];}