Como construir um aplicativo para iPhone
NotíciaDesenvolver para a App Store do iOS é algo óbvio. Se eu dissesse que um investimento desprezível de £ 250 foi o suficiente para abrir um mercado de 150 milhões de consumidores, os ouvidos de qualquer desenvolvedor inteligente.
Se eu acrescentasse que muitos desses consumidores são fãs da Apple ansiosos para dividir seu dinheiro na tentativa de comprar software que justifica o custo de seu hardware, então você pode começar a entender por que agora existem 300.000 aplicativos para iPhone e 60.000 aplicativos para iPad. dois anos e meio após o lançamento da App Store.
O tamanho da App Store é impressionante, com mais do que o dobro de aplicativos disponíveis do que todas as lojas concorrentes combinadas.
Neste artigo, quero ajudar a dar início ao seu próprio desenvolvimento na App Store, e espero que seja encorajador para você que eu mesmo tenha passado de zero apps a ter 20 aprovados e à venda no espaço de pouco mais de um ano e meio. . Eu não ganhei dinheiro suficiente com eles para se aposentar, mas eles fornecem uma renda regular - e é uma renda que só vai crescer como a Apple vende mais hardware.
Tudo o que você precisa fazer é uma ideia, um Mac (para codificação) e este tutorial. Vamos lá!
Requisitos
Para fazer software para dispositivos iOS - isto é, iPads, iPhones e iPod Touches - você precisa de apenas um pacote de software: o iOS SDK da Apple.
Isso inclui quatro componentes principais: O ambiente de desenvolvimento do Xcode, no qual você estará escrevendo todo o seu código; Interface Builder, que é um sistema de design de interface de usuário de arrastar e soltar; bibliotecas e arquivos de cabeçalho para escrever seu código no Objective C (a linguagem nativa do iPhone); e o iOS Simulator, que permite executar um iPhone ou iPad virtual no seu Mac.
Devo salientar que isso só pode ser feito no seu Mac, porque o iOS SDK não está disponível para nenhuma outra plataforma. Na verdade, você está praticamente limitado ao uso de hardware, software e ferramentas de desenvolvimento da Apple. É por isso que muitas pessoas se referem ao desenvolvimento do iOS como sendo um 'jardim murado' - a Apple é muito protetora sobre quem faz aplicativos e o que entra na loja.
O requisito do Mac é um obstáculo que você não pode realmente ultrapassar, mas vou dizer o seguinte: mesmo que você esteja dedicado ao Windows ou ao Linux, um Mac é uma excelente aquisição. Nós raramente vemos PCs mais sólidos ou confiáveis.
SIMULADOR: Você pode testar seu aplicativo em sua área de trabalho com o uso de um simulador - você deve economizar um pouco de dinheiro em um dispositivo iOS para testar
De qualquer forma, se você planeja trabalhar somente dentro do simulador, não precisa pagar à Apple nenhum dinheiro para um dispositivo de teste ou uma conta de desenvolvedor - você pode ir direto para http://developer.apple.com/ios e obter acesso para as ferramentas gratuitas.
Se mais tarde você decidir que criou um aplicativo que deseja vender, deverá escolher um iPod Touch para fins de teste (£ 180) e depois inscrever-se em uma conta iOS comercial (£ 60). Se o seu app 59p vender apenas 500 cópias - se apenas 0,00033% dos proprietários do iOS o comprarem - você recuperou seu dinheiro e tudo o mais é lucrativo.
Depois de criar sua conta, você precisa fazer o download do SDK mais recente. No momento em que escrevo, este é o Xcode 3.2.5 com o iOS SDK 4.2. Este pacote inclui tudo que você precisa para fazer aplicativos para iPhone e iPad.
O instalador é muito simples: basta clicar em "Próximo" até que o processo de cópia seja iniciado e, em seguida, dar-lhe cerca de 30 minutos para realizar sua mágica e você está pronto para começar.
Construindo seu projeto
Eu não estou interessado em te ensinar teoria aqui - eu quero mostrar a você como fazer um projeto real para que, se você quiser, você possa estendê-lo com suas próprias personalizações e fazer sua própria adição valiosa para a App Store..
Vamos criar um gerenciador de listas de tarefas simples, com base em alguns dos elementos básicos da interface do usuário comuns aos aplicativos iOS.
Primeiro, inicie o Xcode - você deve encontrá-lo no 'Developer | Pasta de aplicativos em seu disco rígido. Uma tela de boas vindas deve aparecer, mas você pode fechar isso e escolher 'Novo | Novo projeto 'no menu.
A Apple inclui sete modelos de aplicativos prontos para uso, mas o que é mais útil para começar (principalmente porque vem com uma boa quantidade de código escrito para você) é o aplicativo baseado em navegação. Escolha isso, nomeie-o como 'TaDaList' e salve-o em sua área de trabalho.
Um aplicativo baseado na navegação oferece uma interface do usuário semelhante ao aplicativo Configurações. Você tem uma barra de título na parte superior e uma tabela de opções para escolher. Escolher qualquer opção fará com que uma nova tela entre na direita. Você pode voltar para a tela anterior tocando no botão "Voltar" - tudo é muito intuitivo e fácil de aprender.
Você pode ver o modelo de aplicativo básico que a Apple criou para você pressionando [Command] + [Y] para criar e executar seu aplicativo no simulador. Você pode ver a barra azul da Apple na parte superior (está em branco porque ainda não digitamos nada), além da tabela de informações (novamente vazia porque não informamos ao aplicativo o que deve acontecer).
Definir itens
X-CÓDIGO: O Xcode é o seu principal ambiente de desenvolvimento para o iPhone. Algumas pessoas gostam, a maioria não
Antes de digitar qualquer item da lista de tarefas na tabela, precisamos definir quais são esses itens e onde eles estão armazenados.
Primeiro, pense sobre o que precisamos de cada item da lista de tarefas a serem armazenadas e como elas podem ser armazenadas como um grupo. Você deve apresentar estes dois pontos-chave: Primeiro, um item de lista de tarefas, como "Alimente o gato" ou "Leve o mundo", é apenas uma string..
No Objective C, existem dois tipos de string: 'NSString' e 'NSMutableString'. A única diferença entre os dois é que o último pode ser alterado depois de ter sido criado.
Em segundo lugar, a coleção de itens é muito simples: à medida que são adicionados, precisamos colocá-los no início ou no final de nossa lista existente. Os usuários precisam lê-los na ordem que desejarem. Isso exige uma matriz bastante padrão, embora novamente haja dois em oferta - 'NSArray' e 'NSMutableArray'. Espero que você possa descobrir a diferença.
Neste projeto, usaremos as versões mutáveis de ambas as classes. Precisamos de strings mutáveis porque os usuários precisam poder editar entradas de tarefas, e a maneira mais fácil de fazer isso é permitir que elas editem as entradas no local. Também precisamos de um array mutável, caso contrário, os usuários não poderão adicionar e remover itens.
Então, vamos começar com o array: vamos usar uma técnica de programação muito básica no Objective C chamada 'properties'. A sintaxe para estes é um pouco detalhada, então eu recomendo que você se comprometa com a memória muscular o mais rápido possível.
Propriedades
Nossos itens da lista de tarefas pendentes precisam ser armazenados em um NSMutableArray, e a maneira correta de criar esse NSMutableArray é com uma propriedade. Este é um pouco de açúcar sintático do Objective C que significa 'Quando tento obter o valor, executo este método, mas quando tento definir o valor, execute este método.' É tudo sobre os métodos, ao contrário de definir valores diretamente.
Ter que escrever dois métodos para obter e definir cada valor é claramente um aborrecimento, então o Objective C tem uma sintaxe especial que pode gerar esses métodos quando o código é compilado. Se você optar por escrever o seu próprio, basta dizer para parar de gerar automaticamente os métodos que você deseja substituir - fácil.
Primeiramente, precisamos informar ao Objective C que queremos um NSMutableArray para nossos itens. Em 'RootViewController.h' - o arquivo de definição para nossa visualização de tabela principal - modifique a definição da classe como segue:
@interface RootViewController:
UITableViewController
Itens NSMutableArray *;
@property (nonatomic, reter)
Itens NSMutableArray *;
@fim
No começo, provavelmente parece que estamos declarando o array 'items' duas vezes, mas há uma diferença: a primeira declaração faz a variável para que ela possa ser usada em qualquer lugar dentro da classe, mas a segunda declaração a transforma em uma propriedade. que pode ser usado em qualquer lugar do nosso código.
Além do mais, a palavra-chave "reter" diz ao Objective C que, se ele gerar o código para nós, ele deve se certificar e manter o objeto ativo até que digamos o contrário..
Eu digo "se gerar o código", porque isso ainda está por vir - mude para o arquivo 'RootViewController.m' e coloque esta linha de código imediatamente abaixo de '@implementation RootViewController':
@sintetizar itens;
Esse é o bit que faz a geração do código acontecer - com essa linha única, o Objective C transformará o nosso '@property' em dois métodos, ambos fazendo o gerenciamento de memória para nós automaticamente.
Há uma última peça: usar 'manter' mantém o objeto 'itens' ativo até que digamos o contrário. Se você nunca disser o contrário, essa memória nunca é liberada - mesmo que você não consiga mais acessá-la. Como resultado, você deve sempre liberar memória que você reteve, então role até o final do arquivo 'RootViewController.m' e procure pelo método 'dealloc'. Altere para ler da seguinte forma:
- (vazio) dealloc
[lançamento de itens];
[super dealloc];
Enviar a mensagem 'release' para um objeto - que é o que este código faz - tem o efeito neste exemplo de liberar a memória. Na verdade, é um pouco mais complicado do que isso, mas funciona bem o suficiente por enquanto.
Preenchendo a mesa
Agora que temos uma matriz de itens declarada, podemos criar alguns itens e mostrá-los na tabela. Mas primeiro, precisamos criar a matriz de itens. E agora, graças ao incrível poder da telepatia das revistas, posso ler seus próprios pensamentos: "Espere um minuto ... nós não escrevemos apenas algum código para fazer tudo isso?"
Bem, não é bem assim. Nós escrevemos código para declarar a variável para que ela esteja disponível para uso - agora precisamos usar a coisa.
Perto do topo do 'RootView Controller.m' a mensagem 'viewDidLoad' foi comentada. Remova o '/ *' e '* /' para remover o comentário e adicione isto a ele:
self.items = [NSMutableArray
arrayWithCapacity: 10];
Com isso, nossa matriz está pronta para ser usada. Escaneie o arquivo um pouco e procure o método 'numberOfRowsInSection' - que determina quantas linhas aparecem na tabela em nossa interface do usuário.
Quantos? Fácil - tantos quantos temos itens na matriz 'itens'. No momento, a implementação do método padrão tem 'return 0', significando '0 rows'; altere isso para retornar o número de itens em 'itens':
return [contagem de itens];
Em seguida, precisamos alterar a maneira como as linhas da tabela são criadas para que elas mostrem o texto do item da lista de tarefas corretas. Como com os outros métodos, o modelo da Apple já inclui código para fazer a maior parte deste trabalho - na verdade, você só precisa adicionar uma linha que diz 'defina o rótulo de texto desta linha para ter o que estiver em nossa matriz de itens nessa posição'.
Cerca de metade do arquivo 'RootViewController.m' é o método 'cellForRowAtIndexPath', e você deve ser capaz de ver que ele recebe um parâmetro chamado 'indexPath' - que nos diz qual linha precisamos carregar. Então, diretamente abaixo do comentário que diz "configure a célula", adicione isto:
cell.textLabel.text = [self.items
objectAtIndex: indexPath.row];
Isso usa a posição da linha como passada em 'indexPath' para olhar dentro da matriz 'items' e atribuir o texto correto à linha da tabela. No entanto, se você executar o aplicativo, ele ainda não fará nada, mesmo depois de todo esse código.
Felizmente, é apenas uma questão de não termos itens no array, por isso precisamos adicionar um botão à barra de navegação no topo que permite aos usuários adicionar novos itens.