Objective C & iPhone Flávio Almada de França Como começar??? • Desde o começo tive um problema grande: ambiente • Para desenvolver para iPhone é importante ter um ambiente MAC OS X instalado. • Processadores sem Virtualização tentativa de VirtualBox fracassada • A solução encontrada: HACKINTOSH!!! Hackintosh – O que é? • É uma técnica para instalar o MAC OS X em um PC. • Isso pode ser feito com distribuições modificadas do MAC OS, ou seja, versões que trocam algumas coisas do Sistema Operacional para tornarem-se compatíveis a vários hardwares. • Também é possível utilizar o próprio MAC OS original, mas poucos hardwares tem suporte. • Os computadores da Apple geralmente utilizam arquitetura Intel, por isso, o Hackintosh geralmente funciona bem em processadores Intel. Hackintosh - Instalação • A configuração da minha máquina é a seguinte: Processador: Intel Core 2 Duo EA4500 2.2 GHz Placa-Mãe: Asus P5GC-MX Placa de Vídeo: Geeforce XFX HDs: IDE 80 Gb com Windows e SATA 250 Gb para o MAC OS • Com essa configuração funcionou direitinho! Não precisei fazer nenhuma alteração de hardware! • Tudo o que precisamos é de um DVD com a imagem do Hackintosh e o Chameleon Bootloader. Hackintosh - Instalação Dê o boot pelo DVD e aperte F8. Aparecerá a seguinte tela mostrando as opções de boot: o DVD e seus HDs. Selecione Hazard_10.6.6i. Hackintosh - Instalação Aparecerá uma tela de carregamento com a logo da Apple, como esta. Espere. Hackintosh - Instalação Ao aparecer a tela inicial de instalação, selecione o idioma no qual deseja instalar o MAC OS X e clique na seta para avançar. Hackintosh - Instalação Aparecerá uma tela de boas vindas da instalação do MAC OS X. Clique em Continuar . Hackintosh - Instalação ATENÇÃO!!! Agora temos que formatar o HD para que ele fique no formato aceito pelo MAC OS X. Essa parte é muito importante!!! 1.Clique em Utilities Disk Utility ou em Utilitários Utilitário de Disco, se estiver escolhido português. 2.Clique na aba “erase” ou “apagar” e selecione a opção Mac OS Extended (Journaled) ou Mac OS Expandido (Reg. Cronológico), se estiver em português 3.Digite um nome para a partição e clique em “erase” ou “apagar”. 4.Espere a formatação terminar. 5.Agora feche o aplicativo no X, voltando para a tela de instalação 6.Agora o disco aparecerá nas opções de instalação. Selecione-o e clique em Install. Hackintosh - Instalação PARABÉNS!!! Você instalou o MAC OS X no seu PC!!! A aplicação escolhida • O problema: • Visualizar as câmeras do Fundão no meio do engarrafamento para tomar a melhor decisão de como sair do Fundão. • Já existe um site que faz isso (CET Fundão), mas a maioria das pessoas não pode acessar internet do computador antes de sair da faculdade. • A solução encontrada: CET Fundão for iPhone!!! O site O que foi necessário aprender? • Como trabalhar com frames e page control (para passar as câmeras). • Como pegar a imagem de uma URL. • Como colocar uma imagem em cada frame. Arquivos necessários • main.m: Arquivo com a função inicial, que instancia o AutoreleasePool. • cetfundaoAppDelegate.h: Declara a window e o viewController. • cetfundaoAppDelegate.m: Seta alguns métodos para trabalhar com eventos. • cetfundaoViewController.h: Declara title, scrView e pageControl • cetfundaoViewController.m: O principal arquivo do sistema, ele que controla toda a view, controlando as páginas e colocando as imagens nos frames. Arquivo main.m #import <UIKit/UIKit.h> int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; } return retVal; cetfundaoViewController.h #import <UIKit/UIKit.h> @interface cetfundaoViewController : UIViewController { IBOutlet UILabel *title; IBOutlet UIScrollView *scrView; IBOutlet UIPageControl *pageControl; } Inicialização do controle de páginas self.title.text = @"CET Fundao on iPhone!"; scrView.contentSize = CGSizeMake( scrView.frame.size.width * 4, scrView.frame.size.height); pageControl.numberOfPages = 4; Pegar uma imagem de uma URL NSURL *url = [NSURL URLWithString: @"http://diseg.pu.ufrj.br/img/CAMERA_PREFEITURA.jpg"]; NSData *imgData = [NSData dataWithContentsOfURL: url]; UIImage *imgCamera = [UIImage imageWithData: imgData]; UIImageView *imgView = [[ UIImageView alloc ] initWithImage: imgCamera]; Configurar o tamanho do frame CGRect frame = scrView.frame; frame.size.width = scrView.frame.size.width; imgView.frame = frame; Obs: É possível fazer isso de duas formas: 1) Definindo o Width ou Height do frame (como no exemplo) 2) Definindo uma coordenada da origem do frame (X ou Y) Exibindo as imagens nos frames Para exibir as imagens nos frames, você deve usar a propriedade addSubview, do objeto scrView, que é um objeto da classe UIScrollView, que declaramos no arquivo cetfundaoViewController.h. [scrView addSubview:imgView]; [scrView addSubview:imgView2]; [scrView addSubview:imgView3]; [scrView addSubview:imgView4]; Algumas telas Telas Vamos ver a aplicação rodando?