
David Quinlan é um cara normal com o trabalho do dia e apenas um pouco de codificação da experiência. Mas ele e um amigo viveu o sonho e dobrado para fora um iPhone app simples em um fim de semana. Veja como eles fizeram isso:
"Salada tailandesa, ou ramen?" É hora do almoço em uma típica quinta-feira e parece-nos que milhões de pessoas em todo o mundo estão pensando a mesma pergunta. Esta questão é a nossa barra de lançamento, tornando-nos parte de milhares de pessoas que queriam construir uma app iPhone para "aquilo".
Eu sou um cara de marketing do produto e com algum desenho e técnicas de codificação.
Roy é um colaborador com alguma experiência em negócio. Combinada, fazemos uma grande equipa e se complementam as habilidades bem, mas só começou a trabalhar com Objective-C no ano passado, como muitos outros que estão tentando para fora do desenvolvimento do iPhone. Nós já construiu uma app ou dois, então nós estamos familiarizados com a linguagem e frameworks. Entretanto, como com todos os novos projetos, normalmente você tem que fazer uma pequena pesquisa para entender a forma de abordar os diferentes desafios ... especialmente em um mundo definido por 320 × 480 pixels.
Durante muito tempo, nós brincávamos com a idéia de criar um aplicativo para se divertir. Depois de descartar um par de boas ideias (porque eram demasiado complicado ou uma pesquisa rápida na App Store mostrou que alguém já faz isso bem), as terras do almoço nós em uma simples idéia divertida para ajudar as pessoas presas entre as decisões.
Mas enquanto a maioria das pessoas quer criar um iPhone app grande, meu amigo e vou um pouco mais longe, fazendo um pacto para terminar o projeto dentro de um fim de semana ou realista, nosso aplicativo nunca seria concluída.

Em um pedaço de papel, rabiscar a nós dois, três wireframes e desenvolveu um esboço de algumas telas de base. Nós decidimos em um aplicativo que oferece até três escolhas múltiplas. Você pode escrever suas próprias respostas, por exemplo, tailandês, salada ou ramen e você simplesmente pegar uma escolha ao acaso para ver a resposta à sua decisão. Decidimos usar cartas de jogar como o tema. Imediatamente, o círculo que "devem ter" características (prioridade), então o "gostaria de ter" características (última prioridade), e finalmente as características que precisava de mais investigação. Saímos do almoço na quinta-feira com um pouco de casa e um plano para se reunir no sábado.
Minha casa inclui a determinação do olhar, sentir e interação em cada tela. Roy precisa de investigação de algumas das características do Xcode não tivemos a chance de jogar com ainda no nosso "real" de empregos, principalmente animações e randomização.
Na manhã de sábado, nos encontramos em um café local, que tinha livre acesso Wi-Fi, a reivindicação de uma grande mesa para que possamos sentar-se lado a lado e pegue o primeiro de muitos grandes xícaras de café. Então vamos criar uma pasta compartilhada Dropbox para este projeto, uma conta básica é grátis e vem com 2 GB de armazenamento. O Dropbox é importante porque nos permite multitask no mesmo projeto com qualquer / sincronizar todas as alterações em tempo real. Para projetos maiores, você pode querer considerar GitHub.
Paramos em frente de um quadro mais detalhado do que queremos realizar para a nossa aplicação, bem como wireframes básicos. Dado que só temos uma semana para concluir este app, decidimos focar apenas o "devem ter" características. Um desenvolvedor pode sempre emitir atualizações de recursos em data posterior a incluir o "bom ter" características.
Going tela por tela, detalhe que os elementos da página, os tratamentos de estilo, layout, horários, etc Também discutimos o que Roy aprendi sobre animação movimento virar o cartão, uma vez que esta foi uma das principais funcionalidades do aplicativo. Nós revemos o Quartz 2D e bibliotecas Core Animation, uma vez que não haviam feito nenhum trabalho com aqueles. Chegámos mesmo a discutir com um UIWebView para tornar a animação dentro CSS WebKit. Finalmente, encontramos uma solução simples usando UIViews padrão e UIButtons. A classe UIView tem alguns métodos da classe de animação, e uma das transições é construído em um efeito flip. Quanto ao sorteio, sabíamos que a maioria dos idiomas fornecer uma função aleatória, e Objective-C não é excepção. Para os fins desta aplicação, tudo o que queríamos era um método simples para embaralhar um array. Roy encontrou um par de exemplos disso, mas uma que se destacou foi lá no site do Dr. Touch. Ele descreve uma abordagem com que a implementação de um método de extensão de classe para que você possa facilmente shuffle qualquer matriz.
Mergulhamos em nossos respectivos MacBook Pros com um Borg-como o foco em nossas áreas individuais de especialização. Eu abro o Photoshop e começou a construção de telas. A primeira tela é a imagem padrão. Esta é a primeira tela muito as pessoas vêem quando o aplicativo inicia e começa a carregar. Apps podem ser construídas em retrato ou paisagem. Se você optar por construir seu aplicativo no modo paisagem como a nossa, você ainda precisa criar uma imagem padrão que exibe no modo retrato. Basta criar a sua visão da paisagem e girar no sentido horário ou anti-horário (dependendo se você quer para a esquerda ou da paisagem à direita). Agora o padrão carrega a imagem no modo retrato, mas desde as suas imagens é rodado, o usuário vai torcer o iPhone a paisagem.
Eu, então, passar o próximo par de horas criando composições, imagens de fundo, botões, cartão (frente e verso) e da página de informações. Eu também gastar algum tempo incidindo sobre o ícone do aplicativo. Esta é, obviamente, a "cara" do seu aplicativo, uma medalha de honra, assim que você vai querer pôr o pensamento cuidadoso na imagem do ícone. Lembre-se, você terá o ícone tanto no 57 × 57 e 512 × 512 tamanhos. Depois de concluído, eu envio para Dropbox para que Roy pode começar a utilizar os elementos criativos.

Até o momento eu olhar para trás para laptop de Roy, ele criou um projeto Xcode novo e já está a brincar com o código para animar caixas verdes que virar em um clique. Enquanto ele está trabalhando no protótipo do simulador do iPhone, eu pegar o arquivo info.plist e editar algumas das configurações - remover barra de status, nome de exibição app, retire brilho de ícone, etc Em seguida, decide que é hora de acrescentar alguns imagens reais para o nosso protótipo. Colocamos na imagem de fundo, frente e verso dos cartões e os botões de navegação. O posicionamento está fora (por muitos), mas as placas com bom aspecto e é virar suavemente. Nós fazemos um pouco de matemática ruim, mas, eventualmente, obter o espaçamento de exatas e de posicionamento que queremos para cada cartão. Nós brincar com o calendário do flip, defina a on / off-Membros para o botão de navegação e agora está se sentindo muito bem.

Vendo as peças em conjunto com o aplicativo mostra-me que há um par de imagens que precisa de ajustes finos. Posso fazer alterações como Roy começa a trabalhar na tela de personalização e ecrã de informações. Personalizar a tela é o local que permite que pessoas com o tipo de tudo o que queremos mostrar na face do cartão. Nós limitar a 25 caracteres ... nada mais que isso e escreve sobre / fora do cartão. Estamos a falar através deste ecrã um pouco mais em pormenor. A interação em cada campo, como os atos de teclado, e como podemos salvar antes de voltar para os cartões. Passamos um pouco de tempo no Interface Builder fiação acima exatamente como queremos que esta página para olhar e agir. A página de informações é totalmente opcional, mas nós gostamos de tê-lo porque ele inclui outras formas de chegar até nós.
Wow, sete horas e quatro cafés grande tarde, temos feito muito, mas ainda há muito mais para onde ir. O que temos agora é um aplicativo que é acionado para cima; exibe uma tela de carregamento padrão; recebe as pessoas a uma tela que mostra três cartões (mostrando parte de trás do cartão), pois eles podem escolher qualquer / todos os cartões e os cartões vira para mostrar o frente do cartão, pois eles podem clicar em um botão chamado "Try Again" para repor os cartões, pois eles podem clicar em um botão "Personalizar" que abre uma nova tela, o "Personalizar" tela permite que você inserir texto em separado 3 domínios, com um máximo de 25 caracteres em cada campo, e você pode obter a tela de Info. Passamos a última hora do dia juntos limpeza de código e discutir o que nos resta para fazer amanhã.

No domingo, nos encontramos em uma outra loja de café com Wi-Fi gratuito. Café em primeiro lugar. Sentimos que estamos a cerca de 80 por cento feita antes de começar a trabalhar novamente. O principal trabalho deixou para o dia seguinte é salvar o texto personalizado, exibindo o texto personalizado na face do cartão, e randomizar o texto. Tivemos idéias funcionalidades adicionais, mas continuamos nos honesto, e manteve o rastejamento do espaço a um mínimo. Um exemplo disto foi o método para armazenar / guardar o texto personalizado a cada uma das três cartas. Roy poderia ter criado um banco de dados SQLite ou usado Core dados, mas a abordagem mais fácil era só usar o construída em standardUserDefaults objeto encontrado na classe NSUserDefaults. Usando este método armazena os valores para as configurações muito bem para as nossas necessidades do aplicativo e nos poupa muito tempo.

Enquanto Roy está trabalhando sobre esses itens, é uma oportunidade perfeita para me preparar para algumas das coisas que nós vamos precisar mais tarde naquele dia. Quando você enviar um aplicativo para a App Store, não é um simples upload de um arquivo. Apple requer as seguintes informações para cada apresentação app: Nome do Aplicativo, Descrição, requisitos de dispositivos, Primário e Secundário Categoria, Sub, direitos autorais, App Rating, Palavras, SKU Number, Application URL, capturas de tela, Marketing Descrição, Support URL, e-mail de suporte Endereço, End User License Agreement, e preços / disponibilidade.
Então, eu prep todas as informações de apresentação app enquanto Roy está ocupado codificação de distância, primeiro buscando a App Store para aplicações semelhantes e os seus nomes. Nós gostamos de "Stuck?" E felizmente ninguém mais está usando, assim que nós vamos com esse nome. Eu crio a descrição do app, adicionar algumas palavras-chave, defina o preço e determinar para onde queremos vender este app (apenas no E.U.A., determinados países ou mundial). Então eu registrar um nome de domínio (stuckapp.com) a ser usado para o URL pedido / support URL e é ligada a uma conta Tumblr recém-criado. Eu também criado o endereço de email de apoio necessários. Os outros itens que você deseja preparar antecipadamente são: screenshots (até cinco), um ícone grande (512 × 512) e, se esta for a primeira apresentação de um aplicativo, todos os certificados / provisionamento perfis.
As coisas tendem a demorar mais tempo do que o esperado, e mesmo que nós estamos basicamente terminado com a aplicação até a tarde de domingo cedo, ainda passar um par de horas, mais ajustes e preparar tudo para a apresentação App Store limpeza de código e como afinar que ir junto. Gastamos a maior parte do dia em um computador empurrando pixels, formatação e garantindo o sincronismo ea interação com o usuário foi exatamente como nós dois queríamos. Depois de quase cinco horas de trabalho no domingo, temos o app que tanto imaginou. Nós começamos testes no simulador do iPhone e, em seguida, em dispositivos (ambos iPhone e iPod touch) para a estabilidade e funcionalidade. Mais uma vez, sendo uma aplicação simples, era mais fácil e rápido para testar.
Depois de provar a sua estabilidade, decidimos publicar Stuck? à App Store. Minha primeira tentativa de publicação de outro aplicativo por mim levou dois dias de tentativa, falha, Google, tentativa falhar, o Google mais, etc, até que finalmente funcionou. Mas na segunda vez foi muito mais fácil e mais rápido. Nós copiar / colar todo o texto preparado anteriormente e, em seguida, acrescentou o screenshots e imagens. Tudo somado, temos a nossa app carregado em cerca de 15 minutos. Neste ponto, nós estamos animado, com fome e cansado, mas também muito orgulho que completamos um app sólida ao longo de um fim de semana em um café.

Tivemos nossos dedos cruzados que a App Store iria aprovar nossa app. E, como espantado como nós éramos que nós poderíamos terminar uma app no fim de semana, a verdadeira surpresa veio depois de submetidos à App Store. Submetemos o aplicativo na noite de domingo. Ela mudou de status de espera para a revisão, a In Review, na segunda-feira. Na terça-feira, recebemos um e-mail informando-nos que a nossa aplicação estava pronto para a venda. Aprovada em dois dias! Isso tem que ser um registro, especialmente antes dos feriados.
Especialmente depois de falar sobre a construção de uma app juntos por muito tempo, como tantas pessoas lendo este artigo, devo dizer, a satisfação é imensa. Nós finalmente o fez.

DICAS PARA COMPLETAR UM APP num fim de semana
1. Você não pode fazer isso sozinho. Pode, mas você não iria querer. Idealmente, você quer fazer parceria com alguém com um conjunto diferente de habilidades complementares. Parceiro com alguém que conhece e respeita a sua área de especialização, mas é ainda mais confiante e bem informados sobre as suas próprias competências. Boa comunicação está implícita em um esforço como esse para que você passa por períodos de perguntas fogo rápido saltando idéias fora de si e, em seguida, os períodos de silêncio como você trabalhar em tarefas distintas. Há muito de ter feito e multitarefa será fundamental.
2. Multitask. Conforme sugerido acima, trabalhar com alguém que complementa suas próprias habilidades permite multitask. O que quero dizer? Por exemplo, no início, uma vez que você riscar um wireframe de uma idéia, uma pessoa pode começar a codificação - espaço reservado para colocar botões e blocos no lugar. Ao mesmo tempo, a outra pessoa pode criar composições e, em seguida cortar cada elemento para usar quando chegar à fase de direito. Além disso, no fim da cauda do projeto, uma pessoa pode encerrar o projeto e limpar o código, enquanto a outra prepara todas as imagens e cópia do marketing para o processo de submissão App Store.
3. Faça pelo menos uma coisa assim. Diferente da maioria dos aplicativos de desktop ou um projeto web, você tem que lembrar que a maioria dos bons aplicativos móveis atender a uma necessidade que pode vir em qualquer lugar ea qualquer hora. Sua idéia app não tem que ser complicado, mas apps bons parecem fazer uma ou mais dessas coisas assim:
- Resolve um problema; - é divertido; - Serve um nicho específico; - contrata o usuário e / ou - Tira proveito dos recursos exclusivos do iPhone.
4. Estabeleça metas e prazos. Se seu objetivo é a velocidade do mercado, apenas para ganhar experiência, ou para construir o melhor app maldição que faz (em branco), indicar claramente seus objetivos. Inicialmente, ele irá ajudá-lo a concentrar-se nas áreas que são importantes / críticos para o sucesso. Ele também irá ajudá-lo mais tarde no caminho como você enfrenta decisões difíceis sobre o "must-have" características e "como-a-ter" características. Lembre-se, você pode sempre atualizar com recurso para focar o "must-have" itens e fazer o que for necessário para cumprir essa meta.
5. Obtenha uma conta Dropbox. Para as pequenas e médias projetos, você não pode bater Dropbox. Ele permite que você para armazenar, compartilhar e sincronizar arquivos com outras pessoas. Interromper compartilhamento arquivos trás e para diante do seu stick de memória USB. Obtenha uma conta Dropbox e compartilhar arquivos em tempo real. Nós abusado o inferno fora de nosso livre, compartilhada pasta Dropbox e ele funcionou perfeitamente. Para projetos maiores, você pode querer dar GitHub uma tentativa.
6. Teste. Teste. Test. Quando você vê a linha de chegada, é fácil fechar os olhos sobre o importante passo de testar seu aplicativo. Teste no seu simulador de iPhone, mas também tentar começar suas mãos em um iPod touch e do curso em um iPhone também. Dependendo da complexidade do seu aplicativo, você pode querer criar um plano de teste para se certificar de todos os casos de uso e tarefas funcionais são abrangidos. A última coisa que queremos é ter uma app na App Store que deixe de funcionar ou não funcionar como esperado. Você nunca pode se recuperar de todos os quebra-ego do feedback.
7. Compreender o processo de submissão App Store. Apple fornece um documento PDF que detalha a processo de submissão. Mas este documento só está disponível para desenvolvedores registrados. Se você já é cadastrado, leia este documento cuidadosamente antes de iniciar o processo de upload. Ele lhe dará uma boa idéia do que está envolvido, mas também o que você precisa para preparar com antecedência. A Apple também fornece algumas boas dicas para apresentação e aprovação App Store.
Fonte
gizmodo