sexta-feira, 22 de março de 2013

iOS: Dicas 3

Olá povo,

Quem está começando com o desenvolvimento iOS pode ficar um pouco perdido com a quantidade de novos recursos que aparecem a cada versão, principalmente se estiver usando livros e/ou cursos "antigos" (1 ano atrás é antigo sim :). Tendo em vista esse cenário, Stuart Hall deu as seguintes dicas pra quem estiver começando agora com programação para os dispositivos da Apple.

Esse post foi enviado para mim por Eric Cavalcanti e é praticamente uma tradução desse post aqui.

Use ARC!
ARC é incrível, ele remove muito da complexidade de gerenciamento de memória que tínhamos de lidar anteriormente. Apesar de ser importante entender o gerenciamento de memória, o ARC torna sua vida muito mais fácil.
Desenvolvedores mais experientes relutam em usá-lo, pois querem ter esse controle da alocação e liberação de memória. Mas como muitas bibliotecas populares passaram a usar ARC, não "bata o pé" e aproveite os benefícios do ARC.

Use Blocks
Blocos são impressionantes, o código fica menor e mais claro. Várias partes da API da própria Apple já usam esse recurso. Se você não conhece blocks, dê uma olhada nesse post aqui.
Há momentos em que os delegates/protocols ou NSNotifications fazem sentido, mas os blocks devem ser sua primeira opção.

Esqueça as Threads! Use GDC.
Não sei quem disse essa frase, mas ela é a mais pura verdade:
"A programmer had a problem, so he used threads, then he had two"

O GCD (Grand Central Dispatch) tornou a vida muito mais fácil, podemos fazer uma requisição em segundo plano para não travar a UI e depois podemos atualizá-la:
dispatch_async(
  dispatch_get_global_queue(
    DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), 
      ^(void) {
        // Código em background
        dispatch_async(dispatch_get_main_queue(), 
          ^(void) {
             // Atualize a UI
           }
        );
      }
);

Singletons com GDC
Como o Objective-C não tem o conceito de construtores, podemos usar o GDC para criar singletons.
+ (MinhaClasse *)sharedInstance {
  static MinhaClasse *_shared = nil;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    _shared = [[MinhaClasse alloc] init];
  });   
  return _shared;
}

StoryBoards são para protótipos
Na minha opinião os benefícios dos Storyboards não compensam, principalmente se você estiver fazendo mais que um projeto básico. Essa é a minha opinião, algumas pessoas amam Storyboards.
Para trabalhar em projetos com uma equipe de desenvolvimento, imagine você precise fazer merge de código de um StoryBoard usando SVN (ou até mesmo GIT). Pode ser traumático!

Internacionalize sua aplicação
Tenha em mente que sua aplicação poderá rodar em todos os países do mundo. Então prepare-a para rodar em vários idiomas. Eu fiz um vídeo que mostra como fazer internacionalização no iOS aqui.

Analise!
O menu Product > Analize exibe possíveis problemas no seu código. Achei ele muito bacana, principalmente em projetos médio/grandes.

Ame o StackOverflow
Há um monte de ótimos desenvolvedores iOS no Stack Overflow, e as chances de que eles tenham resolvido o seu problema são bem grandes. Por favor, procure antes de fazer uma pergunta, a maioria já foi respondida.

4br4ç05,
nglauber


sexta-feira, 1 de março de 2013

Artigo "Push Notifications no Android"

Olá povo,

A revista Java Magazine traz em sua edição 113 mais um artigo de minha autoria para a publicação da DevMedia. A matéria entitulada "Push Notifications no Android" mostra como utilizar o serviço de envio de mensagens da nuvem para dispositivos Android através da  Google Cloud Messaging ou simplesmente GCM.

Neste artigo mostro como enviar informações de uma aplicação web para dispositivos Android usando a API do GCM. Uma ótima opção para desenvolvedores que querem promover a integração de aplicações web com dispositivos móveis.

O texto vem para complementar o artigo de C2DM que foi publicado na edição 107.

Espero que gostem.

4br4ç05,
nglauber