Featured Post

Como criar macros no Xcode

Acho que não deve ter um usuário do Xcode que não seja fã do code completion dele. Funciona maravilhosamente bem e é surpreendente a produtividade que ele proporciona ao desenvolvedor. Já utilizei diversas IDEs com este tipo de recurso, mas o Xcode conseguiu inovar e trazer uma forma mais interessante...

Read More

Usando o Git com XCode

Posted by Marcelo Baltar | Posted in xcode | Posted on 22-03-2009

Tags:,

0

git-logoDe vez em quando aparece alguém reclamando que o XCode não tem suporte nativo para o Git. Eu realmente não vejo problema nenhum nisso. O git é poderoso e complexo o bastante para eu preferir controlá-lo utilizando as ferramentas da linha de comando. Ainda não vi nenhuma interface gráfica para ele que fosse interessante o suficiente para me fazer abandonar esta prática.

Se você ainda não conhece o Git (o que acho difícil), ou ainda tem bastante dúvida em como utilizá-lo da melhor maneira (se é que existe esta receita, dada a flexibilidade deste excelente SCM), sugiro uma lida nos artigos escritos pelo Akita em seu blog. Procure por “git” no search box do blog. Outra excelente fonte de informação é o site git ready.

Uma coisa importante quando for utilizar o git em seus projetos de aplicações para o iPhone é configurar adequadamente o arquivo .gitignore. Este arquivo especifica quais arquivos/diretórios deverão ser ignorados pelo controle de versão. Após algumas pesquisas na net, fiz um apanhado de algumas entradas úteis para este arquivo:

.gitignore

#ignora arquivos do xcode
build/*
*.pbxuser
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*~.nib/
 
# ignora arquivos do osx
.DS_Store
profile

 

Outra dica interessante é configurar também o arquivo .gitattributes.

.gitattributes

*.pbxproj -crlf -diff -merge

 

Isso irá fazer com que o git enxergue o arquivo de projeto como um arquivo binário. Assim o git:

  • não vai tentar consertar newlines (-crlf)
  • mostrá-lo nos diffs (-diff)
  • não incluir o arquivo nos merges (-merge).

Para mais informações sobre este arquivo veja o man file.

Atenção ao instalar o novo SDK 3.0

Posted by Marcelo Baltar | Posted in Sem categoria | Posted on 19-03-2009

Tags:

0

Depois de algumas discussões rolando na Internet sobre se é possível instalar o novo SDK 3.0 e continuar compilando aplicações na versão mais antiga (2.2.1), parece que chegaram a algumas conclusões:

  1. Sim, é possível instalar a nova versão e compilar para versões antigas. Claro, sempre foi assim, basta selecionar o SKD ativo no XCode.
  2. A novidade é: você não poderá enviar para a Apple (AppStore) aplicações compiladas na nova versão do XCode que vem com o SDK 3.0, mesmo compilando com um SDK mais antigo (como o 2.2.1).

Ou seja: se você já tem uma aplicação na AppStore (e que, provavelmente, terá upgrades), ou pretende estrear por lá antes da liberação oficial do novo SDK (no meio do ano), o melhor é instalá-lo em um local diferente do “oficial”, mantendo as duas versões. O arquivo “Readme” que acompanha o SDK mostra como instalar fora do caminho default.

Não entendi o porque dessa restrição, uma vez que, a meu ver, bastava selecionar a versão do SDK ativo no XCode. Mas fica aí a dica.

iPhone OS 3.0

Posted by Marcelo Baltar | Posted in Sem categoria | Posted on 17-03-2009

Tags:

0

iPhone OS 3.0Hoje foram anunciadas as novidades da versão 3.0 do iPhone OS. E tem bastante coisa! Pequeno resumo:

  • Compras na AppStore a partir dos aplicativos, o que significa que os desenvolvedores poderão vender novas fases de um jogo, por exemplo, mais um capítulo de um livro e coisas do tipo.
  • Conectividade peer-to-peer, via bluetooth ou wi-fi. Essa é uma feature que irá abrir um leque de novas possibilidades e idéias de aplicativos. A criatividade vai rolar solta aqui! :)
  • Os aplicativos poderão conversar com dispositivos conectados ao iPhone. Imagine alguma coisa para registrar sua pressão, controlar o nível de açúcar no sangue de diabéticos… Vai aparecer MUITA coisa por aqui também!
  • Notificação via push. Ótimo também! Agora vamos poder ficar conectados nos messengers o dia todo. :D Isso se o 3G da sua operadora permitir.
  • GPS Turn-by-turn (volta-a-volta)! Sem comentários! :D
  • Copy & Paste! Mais sem comentários ainda! :D
  • MMS, Voice Memos, e outras cositas

Enfim, muita coisa nova, muita coisa legal! Tem muito desenvolvedor coçando o dedo para começar a brincar com as novas APIs (1000, segundo a Apple). O que você está esperando:

iPhone OS 3.0 Preview

Está disponível também o vídeo da apresentação:

Casa nova!

Posted by Marcelo Baltar | Posted in Sem categoria | Posted on 13-03-2009

Tags:

0

Depois de algumas idas e vindas, fiz o que já deveria ter feito desde o início: registrei um domínio para hospedar o blog. (e outras cositas más futuramente :) )

Então a partir de agora, nos vemos por aqui, nessa bat-url que será eterna enquanto durar.

Fiquei uns dias sem postar justamente porque estava contratando e fazendo o setup de tudo, mas agora vai, galera!

E agora que reparei que essa estréia é no dia do meu aniversário! Juro que não foi a intenção. :)

CocoaHeads: grupo de discussão sobre o framework Cocoa

Posted by Marcelo Baltar | Posted in cocoa, cocoaheads | Posted on 01-03-2009

Tags:

0

Desenvolvedores adoram criar grupos de discussão, on-line ou off-line. On-line para criar uma flame war por semana, e off-line para arrumar motivo para tomar umas.

Descobri hoje o CocoaHeads. O objetivo principal deste grupo é reunir o pessoal que desenvolve para o MacOS X. Dada a extensão do hype iPhone, acredito que a maior parte das discussões deva envolver essa plataforma.
No site tem o famoso mapinha do Google Maps mostrando onde já existem capítulos ao redor do mundo. E na América do Sul não tem nenhum!! Estamos mal representados. Alguém aí anima a criar um capítulo BH do CocoaHeads?

Download assíncrono de imagens para uma UITable

Posted by Marcelo Baltar | Posted in Sem categoria | Posted on 01-03-2009

0

O Markj fez um excelente post explicando como fazer o download assíncrono de imagens para preencher uma UITable. E o que é melhor: sem precisar se preocupar com programação de threads. Ele usou alguns recursos do framework Cocoa para conseguir isso.

Otimizar, otimizar, otimizar…

Posted by Marcelo Baltar | Posted in otimização, performance | Posted on 27-02-2009

0

Se você, como eu, é um (quase) fiel seguidor de metodologias ágeis de desenvolvimento, certamente conhece o termo “otimização prematura“. Em poucas palavras, trata-se de evitar o zelo em excesso com otimizações no código e algoritmos num estágio inicial do desenvolvimento da sua aplicação. O melhor é gastar seu precioso tempo na construção das funcionalidades e fazer logo o deploy da sua aplicação do que tentar ganhar alguns milisegundos naquele método que uma vez por mês é utilizado…

Claro que, como dizia minha avó, “nem tanto ao céu, nem tanto à terra”. Um requisito do seu projeto pode ser “atender 1.000.000 de requisições por segundo”. Encontrar o ponto ótimo requer muita experiência, maturidade e habilidade do desenvolvedor. O problema é que, às vezes, quanto mais experiência, quanto mais ninja é desenvolvedor, mais ele se gaba de conhecer aquele macete, aquele truque, aquela técnica garimpada num fórum da internet ou num livro que só ele leu, para o código ficar melhor. E realmente fica, mas às custas de um esforço que, efetivamente, não produziu uma única funcionalidade nova. Não atendeu a um dos requisitos que o cliente do projeto especificou.

Ok, eu gosto dessa filosofia, você também concorda que é mais lógico (se você tem seu cliente em foco!) mas… Esqueça isso! Para não dizer que sou radical, pelo menos leve-a bem menos a sério quando estive desenvolvendo para o iPhone. Ou qualquer outra plataforma móvel.

Por mais avançados que sejam, os dispositivos móveis ainda estão longe de ter a capacidade dos computadores de mesa. Os recursos disponíveis são muito mais limitados. A memória disponível, o tamanho da tela, a bateria que se esgota… Tudo é mais escasso. “Mas”, você vai dizer, “um iPhone tem um processador melhor que o dos computadores de uma década atrás, tem muito mais memória também!” Só que os aplicativos que queremos executar nele também não se comparam ao dos anos 80. Internet, música, vídeo, jogos 3D, Google Maps ( :) )… Na verdade é quase espantoso como ele consegue fazer isso tudo. rs rs

Você não conseguiria fazer isso nos anos 80. E isso tudo gasta memória. Gasta processamento. E gasta bateria, muita bateria!

E cuidado para não ter conceitos equivocados. “Um iPhone mais básico tem 8GB de memória! Isso dá e sobra pra minha super-aplicação processadora de texto, planilha, browser da internet e cálculo da trajetória do ônibus espacial na versão paga”. Na verdade, a RAM disponível para os aplicativos tem “apenas” 128MB, e isto é compartilhado com o sistema e vídeo. Sobra uns 64MB para seu aplicativo. Não é pouco, mas talvez você tenha que colocar o cálculo da NASA em outra aplicação. (Lembre-se que, atualmente, o iPhone executa somente uma aplicação por vez, salvo algumas exceções)

Então, mude seu mindset quando estiver desenvolvendo para dispositivos móveis. Pense em otimização desde a primeira linha de código que escrever, num nível muito maior do que quando você escreve aplicações para desktop ou para a web. Novamente, bom senso e caldo de galinha nunca fizeram mal a ninguém.

Pretendo explorar mais esse assunto nos próximos posts. Existem várias dicas, técnicas e detalhes que precisamos lembrar e que, normalmente, não são nossa preocupação quando escrevemos aplicações tradicionais (ainda dá para chamar assim? :) ).

E não se preocupe! Desenvolver para o iPhone não vai ficar menos legal por causa disso. Ao contrário, para você que adora aprender, vai ser um prato cheio.

Fazendo seu aplicativo iPhone conversar com uma aplicação Rails: ObjectiveResource

Posted by Marcelo Baltar | Posted in activeresource, objectiveresource, rails | Posted on 26-02-2009

0

Se você tem uma aplicação Rails e deseja criar uma aplicação nativa do iPhone que comunique com ela, não deixe de dar uma olhada no ObjectiveResource.

Trata-se de um port do ActiveResource do Rails para o Objective-C, e vai facilitar MUITO a vida de quem precisa fazer uma aplicação iPhone conversar via RESTful com o Rails.

Començando a desenvolver para o iPhone

Posted by Marcelo Baltar | Posted in tutorial | Posted on 18-02-2009

Tags:

4

Existem algumas dezenas de sites que descrevem os passos iniciais para começarmos a desenvolver aplicações para o iPhone, desde a instalação do SDK até a criação do famoso “Hello, World!”.

Não pretendo chover no molhado e repetir estas instruções aqui. Mas é claro que não vou deixar os meus fiéis leitores (existem? rs) na mão. O Wei-Meng Lee publicou um ótimo tutorial em seu blog com estes passos. Como o original está em inglês eu pedi permissão ao autor para traduzir o documento e disponibilizá-lo para a comunidade brasileira, no que fui prontamente e gentilmente atendido pelo Wei.

O documento traduzido está no Google Docs.

Trata-se de um tutorial bem básico, mas bem escrito e detalhado. Para os não iniciados no desenvolvimento de aplicações para o iPhone, vale a leitura.

Post de estréia original

Posted by Marcelo Baltar | Posted in Sem categoria | Posted on 18-02-2009

0

Como falei no meu último post, o blog originou-se no WordPress.com. Para manter as coisas em seu lugar, aí vai o post de estréia publicado lá:

Finalmente estou começando um blog! Na verdade não comecei antes porque faltava um assunto principal, algo que guiasse o blog. Escrever por escrever não rolava. Já tem abobrinha demais sendo escrita, e eu não ia contribuir com o lixo digital. :)
Mas agora existe uma coisa suficientemente interessante para me animar a estrear um blog: o iPhone! Mais especificamente, desenvolvimento para o iPhone.
Criar aplicações para esse dispositivo sensacional pode não ser tão trivial assim, pois o ambiente todo é novidade para muita gente. A linguagem utilizada é Objective C (ok, você que tem menos de 30 anos está perdoado por não conhecer C). Além disso, o SDK só roda na plataforma Mac (OS X).
Quanto ao último “detalhe”, nada melhor! Se você ainda está no mundo Windows, agora tem motivo suficiente para sair do lado negro da força e juntar-se aos felizes proprietários de um Mac.
De qualquer maneira, ainda é uma barreira de entrada. Nem tanto pelo preço, mas para quem está acostumado com o mundo Windows, as coisas são um pouquinho diferentes (mas muito melhores!).
Então esse blog se propõe a guiar todos (os leitores sim, mas, principalmente, eu mesmo!) nesse mundo novo e, quem sabe, faturar uns trocados na App Store. :)