sábado, março 05, 2011

Criando um aplicativo para iPhone no xCode - Parte 2 -

Continuando nossa série de posts sobre desenvolvimento para iOS, vamos dar continuidade no nosso projeto da calculadora.

Primeiro uma palavra sobre o quesito resolução, o iPhone 3 tem a tela de resolução de 320 x 480, já o iPhone 4 tem resolução de 640 x 960, e o iPad tem resolução de 768 x 1024,  considerando que as medidas referem-se sempre a Largura x Altura, pode-se notar que a diferença de resolução pode fazer com que um aplicativo feito para o iPhone 3, irá ficar com uma resolução no minimo horrível, no iPhone 4 e no iPad.
Como só tenho o iPhone 4 para testar, e o iPhone 3 o meu teste é no emulador, tenho dúvidas sobre como abordar esta questão, estou pesquisando isto e posto aqui tão logo tenha uma resposta correta, por enquanto a minha abordagem está sendo desenvolver para a resolução do iPhone 4, tendo em mente que, para o iPad a tela ficará menor, mas isto não é necessariamente um problema para uma calculadora, creio que para outros aplicativos que necessitem usar tela cheia, deveremos fazer uma versão específica para iPad.
     Já o caso do iPhone 3, a minha tentativa será ver se ele ajustará automaticamente o tamanho da tela, o que acho que não vai ocorrer, e nesse caso teríamos que ter uma versão específica para esta resolução de tela.
     Se algum de vocês, que estão acompanhando estes posts, tem acesso à um iPhone 3 (Qualquer versão, 3G, 3GS, a resolução de tela é a mesma), e puder testar, será uma preciosa contribuição.

     Vamos iniciar o xCode, e ao abri-lo veremos a tela inicial, como esta:


  
      Escolheremos "Create a new xCode Project", a seguir você deverá escolher o tipo de aplicativo que deseja desenvolver, note que você pode escolher desenvolver para o iOS (se você instalou o SDK, como mencionamos no primeiro post desta série, caso contrário você só terá a possibilidade de desenvolver para o MacOS), e vamos escolher em iOS a opção View-based application conforme você pode ver na tela a seguir:


    Uma view no iOS, é como se fosse um formulário no desenvolvimento para Windows (a grosso modo), na verdade um aplicativo pode ter várias views, ou seja, uma view é uma tela que o usuário vê e interage durante o uso do aplicativo, contém os controles que aceitam comandos do usuário e campos e figuras que mostram ao usuário as respostas aos seus comandos (feedback para o usuário).

     Como a nossa calculadora terá apenas uma tela, terá apenas uma view, pois na mesma view o usuário irá digitar os números, escolher as operações e verificar visualmente o resultado da operação realizada.
      Note que, escolher um modelo de aplicativo nesta fase do projeto, não quer dizer que o seu aplicativo esteja engessado, fadado a usar esse modelo sem alternativas, na realidade você pode mudar o formato inicial na medida que seus requisitos de projeto mudarem.

       Ao escolher para criar o aplicativo, será solicitado um nome para o aplicativo, e um local onde o mesmo deverá ser gravado, no nosso caso escolhi o nome Calculator_01, como você pode ver na tela abaixo.


     Se você pretende desenvolver aplicativos e vender na AppStore, o meu conselho é que você habitue-se a desenvolver o seu aplicativo todo em inglês, incluindo nome e mensagens, você pode depois criar uma opção multi idioma, mas como o mercado mais rentável é o mercado internacional, não pense que um consumidor americano, inglês ou australiano vai sequer olhar para um aplicativo que não esteja no idioma de Shakespeare. Também esteja preparado para dar suporte em inglês.
      Se o idioma do grande bardo é um problema para você, e sua intenção é realmente ganhar dinheiro com o mercado de aplicativos para o iOS, o melhor investimento nem será um hardware Mac, mas um curso de inglês urgente, ou você ficará limitado ao mercado de língua portuguesa, provavelmente mais especificamente ao Brasil, que é uma fração bem pequena no mercado potencial total.
       Nestes tópicos criaremos o aplicativo todo em inglês, como se fosse um aplicativo voltado para comercialização na AppStore internacional da Apple. Mais uma vez meu conselho: habitue-se à isto, ou você ficará frustrado com a baixa saída dos seus aplicativos.
           Quando terminar de criar o aplicativo, será mostrada a tela de projeto do xCode, com o projeto de Calculator_01 e seus arquivos, conforme abaixo:


      Veja que, se você está habituado com outras IDEs como Eclipse, Visual Studio, Delphi, o xCode não é assim tão estranho, basicamente você tem na parte esquerda da tela a visualização do projeto em esquema de árvore, onde você pode ver os arquivos que compõem o projeto, quando você selecionar um arquivo ou pasta nesta árvore, no painel a direita, na parte superior são mostrados os arquivos que estão sob esta pasta, e ao selecionar um arquivo neste painel superior à direita, você verá o arquivo no painel inferior, se for possível mostrar-lo.
         Ou seja, o esquema é relativamente simples.

          Já temos o nosso projeto iniciado, os arquivos básicos que devem fazer parte dele já foram gerados de forma automática pelo xCode, iremos adiante complementar os arquivos e recursos e começar a produzir código.

          Como o Objective C é uma linguagem orientada a objetos, iremos trabalhar dentro desta filosofia para produzir o nosso aplicativo. Iremos criar uma classe que irá fornecer as funções básicas de uma calculadora, ou seja armazenar os operadores, fazer as quatro operações básicas e armazenar o resultado. Nesta primeira aproximação não trabalharemos com agrupamento de operações, iremos utilizar as operações par a par a medida que forem sendo realizadas, ou seja, iremos armazenar um valor, aceitar um operador e outro valor, e fazer a operação entre estes dois operadores e guardar o resultado, que será o nosso valor armazenado para prosseguir as operações, à menos que o usuário clique em C (Clear) para zerar o acumulador e começar uma nova operação a partir do zero.


Posts anteriores desta série:
Criando um aplicativo para iPhone no xCode - Parte 1
Criando um aplicativo para iPhone no xCode - Parte 1 - Adendo.

terça-feira, março 01, 2011

Criando um aplicativo para iPhone no xCode - Parte 1 - adendo

Em complemento ao post anterior, segue aqui um mapa das teclas de atalho para o xCode, muitas vezes é mais produtivo ir direto na tecla de atalho do que usar o mouse. É uma boa idéia você baixar a imagem e imprimir para ter a mão quando estiver trabalhando no xCode.


Criando um aplicativo para iPhone no xCode - Parte 1

Muitos desenvolvedores gostariam de saber como desenvolver aplicativos para o mercado do iOS, o sistema operacional para o iPhone, iPad e iPod.

Na busca por isso, descobre-se que a linguagem nativa para isso é o Objective C, a parte boa é que a IDE para esta linguagem, e o SDK para o iOS é free e pode ser baixado direto do site da apple em http://developer.apple.com/devcenter/ios/index.action, você pode se inscrever no programa de desenvolvedores da apple sem custo inicial.
Você só irá pagar as taxas da apple quando (e se) decidir comercializar seus aplicativos na appStore, na época da postagem deste arquivo, a taxa estava em U$ 99,00 /ano.
A idéia desta série de postagens é demonstrar o que é necessário para se desenvolver para o iOS, como se faz isto, e os meandros da linguagem e da IDE para os gadgets da Apple.
      Sempre fui partidário que a melhor forma de aprendizado é: 
1 - Mão na massa - ou seja, se aprende melhor na prática mesmo.
2 - Na medida que aprender, você deve ensinar, disseminar conhecimento é a melhor forma de evoluir.

    Dito isto, o que pretendo fazer é um tutorial passo a passo, desde a instalação do ambiente, e desenvolver um programa básico, para fixar os conceitos da IDE e da linguagem. Nosso programa de exemplo não será nenhum prosaico Hello World, acho que isso funcionou muito bem para Dennis Ritchie quando mostrou ao mundo a linguagem C, mas hoje em dia apelar para isso é uma completa perda de tempo. Na minha opinião, isso é para quem não quer se comprometer com o que escreve. Com isto, vamos desenvolver um programinha um pouco mais pretensioso, mas igualmente simples: uma calculadora, que servirá para ilustrar uma série de conceitos da IDE e da linguagem. 
Depois de pronta, vamos aos poucos implementando outras funcionalidades nela, espero que com a colaboração de todos que acharem esta série de posts útil.

    No artigo anterior, mostramos como instalar o MacOS X em uma máquina virtual em Virtual Box, pretendo disponibilizar aqui também um link para uma máquina montada em VMWare. 
    Novamente destaco que, isto é bom para você conhecer o ambiente, aprender um pouco, mas quando for desenvolver a sério, considere adquirir um hardware Apple, a diferença na sua produtividade será fantástica, acredite em mim (todos estes posts estão sendo escritos direto do MacBook que estou usando para desenvolver, acredite seria muito penoso fazer isto de uma VM).

    Uma vez instalado o MacOS X (no momento você precisa, no mínimo, do Snow Leopard para usar o SKD 4 do iOS), acesse o site de desenvolvedores da Apple, no link postado no inicio deste artigo, baixe os pacotes (é grande, a imagem do DVD é aproximadamente 3,5 Gb), e instale no Mac.

     Primeira questão: Qual a linguagem que vamos utilizar?

     Vamos utilizar Objective C que, para quem acha que por saber bem C estará em casa, convém antes fazer uma pequena apresentação do ObjC.
      Primeiro, ObjC algumas vezes será igual a C, outras vezes será igual a Smalltalk, mas na maioria das vezes será apenas levemente parecida com uma ou outra destas linguagens, sendo diferente de ambas. Coisas da Apple (quem teve que ralar com o Apple Basic nos primórdios da programação vai entender de cara o que estou escrevendo)!
      A origem é lá nos idos dos anos 90, quando Steve Jobs fez um acordo com a Apple, onde ele entrou com o traseiro e os executivos da Apple na época entraram com os pés. Na rua, com alguma grana que ele e Wozniak haviam recebido (sim, Jobs não fundou a Apple sózinho, mas isso é outra história) realizou alguns investimentos em startups de TI, um destes investimentos foi a aquisição de parte de uma startup chamada Next, que vinha trabalhando duro em workstations para processamento gráfico pesado, e assim acabou incorporando uma linguagem dedicada para isto, que foi criada por Brad Cox e Tom Love para a empresa de ambos, a StepStone, que foi posteriormente licenciada pela Next. 
Exato, se você pensou que esta linguagem era Objective C, acertou.
Quando Jobs voltou para a Apple, para tirá-la da quase falência para o Olimpo que desfruta hoje, uma das condições foi a aquisição da Next, que era a sua "menina dos olhos".
Ao assumir a direção dos negócios, verificou a necessidade da reformulação de vários produtos, incluindo o próprio sistema operacional, que nessa época estava bem defasado e padecia de um certo atraso tecnológico. Para toda essa empreitada foi escolhido o Objective C, e o resto faz parte da história.

     A primeira barreira que o desenvolver novato na plataforma Apple vai se deparar, é com a própria IDE xCode. No inicio pode parecer meio estranho, é bem diferente das outras IDEs que você possa estar acostumado, estou comparando com NetBeans, Eclipse, Visual Studio, Delphi. Mas depois de 1 ou 2 horas de uso você pega o "jeitão" da coisa, e quando for ver, já estará dominando o xCode.
      O xCode vem por padrão junto com o sistema operacional MacOS, para desenvolver direto para o MacOS você não precisará de mais nada, mas para desenvolver para o sistema operacional iOS, dos gadgets da apple, você precisa baixar o SDK no link do inicio do artigo.
      Se você não estiver visualizando o xCode na sua barra de aplicativos, vá em /Developer/Applications e você deverá encontrar o xCode. Pode ocorrer também que o xCode não tenha sido instalado quando você instalou o sistema operacional na máquina, neste caso basta rodar novamente o DVD de instalação do MacOS X e instalar o aplicativo, depois disso, o xCode deverá estar no diretório mencionando anteriormente.
      
       Atenção, depois do xCode instalado você deverá instalar o SDK para o iOS, se você instalou o SDK e depois instalou o xCode, deverá refazer a instalação do SDK para que essa opção apareça no xCode, caso contrário você só terá a opção de desenvolvimento para o MacOS.

        IDE instalada, vamos definir o nosso projeto:
  • Será uma calculadora para fazer as 4 operações básicas.
  • Não terá, pelo menos nesta primeira versão, alguns recursos como: memória adicional, persistência dos resultados, modo alternativo além do decimal.
  • Sem grandes sofisticações visuais, porém vamos cuidar para que, embora simples, seja ao menos bonitinha. Leve em conta sempre que, o design é tão importante quanto a funcionalidade, você estará desenvolvendo para um público acostumado ao belo design dos equipamentos e aplicativos da Apple, um público bem mais exigente neste quesito. Se pretende desenvolver a sério e tentar ganhar algum dinheiro no mercado do iOS, cuide sempre do design, e no fim do projeto, cuide novamente do design, e antes da publicação final, reveja novamente o design.

       Bom, no próximo post vamos iniciar a mão na massa de verdade, definindo visualmente como será o nosso aplicativo e vamos começar a fazer um pouco de código de verdade. See you guys!

segunda-feira, fevereiro 21, 2011

MacOS X Snow Leopard no Virtual Box

apple-mac-os-x-snow-leopard-box-topOK, você está querendo conhecer ou experimentar o MacOS X Snow Leopard, quer ver o que tem de especial o gatinho das neves do tio Jobs, ou quer apenas matar a curiosidade.

Então, o que fazer? A opção legal é comprar um Mac, a opção para quem quer apenas travar conhecimentos com o SO da maçã é montar uma máquina virtual, e experimentar.

Existem muitos tutoriais na net sobre virtualizar o MacOS X no VMWare, mas encontrei poucos, e um tanto incompletos, em inglês, para Virtual Box.
Pessoalmente prefiro o Virtual Box, ele consome bem menos recursos da máquina do que o VMWare, todas as vezes que tentei o VMWare, ele consumiu memória e capacidade de processamento com o apetite de um tigre siberiano em jejum prolongado.

Obs.: Estarei disponibilizando este material em formato PDF no site da empresa (www.spectrus.com.br).

Antes de iniciar, um aviso legal:
A Apple não permite que o seu sistema operacional seja instalado em outro hardware que não seja Apple. Portanto, legalmente, se você deseja usar o MacOS deverá comprar um hardware Apple.
Se você pretende usar o MacOS para algo além de simplesmente matar a curiosidade, eu recomendo enfaticamente que você compre um hardware Apple, no meu caso, cuja finalidade é para desenvolvimento para o iOS (iPhone, iPad, iPod), eu iniciei virtualizando o MacOS para experimentar, e depois parti para comprar um MacBook, a diferença é bem grande em termos de desempenho, lembre-se de que você está rodando uma máquina Virtual, que usa apenas uma parcela dos recursos do hospedeiro.

Requisitos do sistema:
    O que você precisa para fazer a brincadeira funcionar:
1 – MacOS X Snow Leopard (lógico) – Você pode baixar de várias fontes na net, inclusive torrents. Porém recomendo que você adquira um DVD do MacOS X, esse é o caminho legal, até se você desejar usá-lo mais seriamente depois. R$ 79,00 na saraiva completinho.

2 – Computador com, pelo menos, 2 Gb de memória RAM, recomendo 3 ou mais, para não ficar lento.

3 – 20Gb de espaço no HD, no mínimo.

4 – CPU com suporte a tecnologias de virtualização (verifique isto na sua Bios), se não tiver, esqueça, não funciona.

5 – O Virtual Box, em sua última versão (www.virtualbox.org).

Montando a máquina virtual….

   O processo é exatamente o mesmo da montagem de qualquer máquina virtual no Virtual Box, vamos a ele.

1 – Acionar o Virtual Box, clicar em Máquina/Novo ou Ctrl + N ou no botão Novo na barra de ferramentas.
VBoxMacOS_01
2 – Irá abrir o assistente para criação de máquina virtual, clique em Próximo.

3 – Escolha como sistema operacional Mac OS X, em versão escolha MAC OS X Server, eu dei o nome de MacOSX_SL para a nova máquina virtual.

VBoxMacOS_02

4 – Defina a quantidade de memória RAM necessária para a nova máquina virtual. O valor mínimo é 1Gb para uma utilização apenas para testes, apenas para sentir o “cheiro” do SO, por assim dizer. Se você tiver mais memória, recomendo designar pelo menos 2Gb para o novo SO ou mais.

   Para ambientes Windows, como regra, deixe pelo menos 1Gb para o Windows.

Obs.: Lembre-se de que tio Jobs e seus garotos são exigentes, o Snow Leopard exige um hardware de boa qualidade, é normal placas de rede ou de video, de marcas menos “conceituadas” não funcionarem com o novo SO. No meu caso, quando montei a VM, eu fiz no meu notebook, é um HP Pavillion DV6000 com uma placa de vídeo GeForce Go 8400, processador Intel. Tenho relatos de amigos que tentaram o mesmo em máquinas com processador AMD e não obtiveram sucesso.

5 – Escolha um novo disco rígido virtual na tela que segue.

VBoxMacOS_04

6 – Clique em avançar, e escolha a forma do novo disco rígido, escolha Armazenamento dinâmicamente expansível, isto fará com que o Virtual Box crie um arquivo com o tamanho mínimo necessário e irá expandi-lo a medida que for surgindo a necessidade de mais espaço. Mas atenção, o tamanho só irá crescer até o limite que você determinar para o HD, no caso que recomendamos (20GB).
VBoxMacOS_05

7 – Mantenha o tamanho mínimo de 20Gb, não é recomendável diminuir este tamanho, ou você poderá ter erros durante a instalação e a VM não funcionará.
VBoxMacOS_06

8 – O Virtual Box irá lhe apresentar uma tela de resumo da instalação, com as opções que você determinou até aqui, confira e clique em Finalizar se as opções estiverem corretas, ou clique em Cancelar para rever as configurações.

9 – Uma nova máquina virtual será criada, e você poderá vê-la na lista de máquinas do Virtual Box, seu status estará como desligada.
VBoxMacOS_07

10 – Antes de instalar o MacOS, é necessário efetuar alguns ajustes, para que a instalação possa ocorrer normalmente e a máquina rodar sem maiores problemas.

11 – Com a nova máquina virtual selecionada, clique em CONFIGURAÇÕES, para abrir os ajustes desta máquina.
11.1 – Clique em Sistemas, desmarque a opção Habilitar EFI (sistemas especiais apenas).

VBoxMacOS_08
11.2 – Na aba MONITOR, você pode ajustar a quantidade de memória de vídeo que vai destinar ao novo SO e habilitar a aceleração de vídeo em 2D, convém destinar no mínimo 32Mb de memória para a placa de vídeo para uma instalação sem traumas.

11.3 – Na aba ARMAZENAMENTO, você deve indicar ou “montar” o CD de boot que irá inicializar o SO para que possamos instalá-lo. Se você seguiu o meu conselho e comprou o DVD do MacOS X Snow Leopard, ajuste o drive de CD/DVD para apontar para o drive do seu computador. Se você optou por baixar um ISO da internet, configure o drive de CD/DVD para apontar para este arquivo ISO que contém a imagem do DVD do MacOS X Snow Leopard.
Dica: Para escolher o arquivo ISO que você deseja, clique no ícone de um CD no campo ao lado do drive de CD/DVD (veja abaixo):

VBoxMacOS_09

Feito isso, Clique em OK, e já temos a nossa máquina virtual preparada e pronta para o primeiro boot e instalar o MacOS X Snow Leopard.

12 – Coloque o DVD do MacOS X no drive e na janela principal do Virtual Box, selecione a nova máquina virtual e clique em INICIAR.
     Após isto, basta seguir as instruções de instalação do MacOS X, se tudo ocorrer OK, você terá a tela de seleção de idiomas do MacOS X Snow Leopard.

    Os passos seguintes são bastante simples, limitando-se a escolher o idioma, escolher a imagem de fundo, e algumas informações sobre o usuário e o ambiente, e aceitação dos termos da licença de uso da Apple.

Quando chegar na tela de Seleção do destino, em que pergunta: “onde você deseja instalar o Mac OS X”, clique na barra de menus em Utilitários / utilitários de disco, selecione o disco de 20Gb do Virtual Box que criamos, certifique-se de que o formato do volume está marcado como MAC OS X EXPANDIDO, defina um nome para o novo disco, clique em Apagar e confirme a operação toda.

Com isso você criou a partição de disco, pode fechar o utilitário de disco, basta clicar no menu UTILITÁRIO DE DISCO / SAIR DO UTILITÁRIO DE DISCO, clique no disco récem criado e clique em continuar.

Atenção: Agora você deve configurar alguns aspectos específicos do MacOS X, que será necessário para prosseguir sem sobressaltos. O principal é marcar os pacotes mais atuais para atualizar, mas atenção, em KERNELS, para processadores INTEL marque a opção Legacy_Kernel, veja abaixo como ficaria para um computador com processador Intel:

mac_options_intel
   Se o seu processador for AMD, marque a caixa de seleção nomeada como AMD mais abaixo nas opções, geralmente após a opção System_Support.

Atenção, apenas estas opções deverão estar marcadas.

Hardware configurado, opções marcadas, clique em CONCLUÍDO, em seguida clique em INSTALAR.

O instalador irá efetuar uma checagem da integridade da mídia de instalação, passo que pode seguramente ser ignorado. Depois disso é aguardar a instalação, que dura aproximadamente 10 minutos.
Uma vez concluída a instalação, será mostrada a contagem regressiva para que a máquina reinicialize.

IMPORTANTE: Antes do reinicio, vá no Virtual Box, menu Dispositivos / CD / DVD devices, e desmarque a opção em que o drive de CD/DVD aponta para o arquivo ISO ou para a midia de instalação do MacOS X, para que o boot seja dado normalmente pelo HD montado.

Pronto, depois do boot, o MacOS X Snow Leopard irá lhe perguntar sobre os dados de usuário, localização, configuração de teclado, vídeo, etc.

Pronto, bem-vindo ao seu novo MacOS X Snow Leopard, ou um MacPobre.

Recomendo que, se você for usar de forma séria o MacOS X, compre um hardware da Apple, verá que a diferença de performance é grande, principalmente se você for usar para desenvolvimento.

No próximo post: Iniciar a desenvolver para iOS com o Objective C e xCode.