Desenvolvimento

20 mai, 2016

Não sejamos reféns de Storyboard

Publicidade

Esses dias estava codando, evoluindo meu projeto pessoal, quando precisei analisar mais profundamente um componente que eu estava utilizando.

Analisando o código, entendendo o fluxo, me deparei com uma linha que despertou minha atenção para algo curioso:

@”%@:|-%lu-[%@]-%lu-|”

Muitos devem saber do que se trata e, até então, eu tinha uma vaga noção. Mas calma! Vamos contextualizar tudo.

Quando “abandonei” o mundo Web e resolvi partir para mobile, fui com a intenção de ser um cara chato. Sim, chato. Daqueles que não se contentam em ser apenas um número na estatística, mas um cara que busca conhecimento em tudo; nos mínimos detalhes.

De forma prática, se eu precisasse arrastar um button object para a minha view, eu entrava no iOS Developer Library e buscava saber tudo sobre o tal UIButton e tentava seguir alguns passos de estudo:

O que é? Como vive? Do que se alimenta?

  • Como eu crio?
  • Como eu customizo?
  • Quais as variações de estado?

E passava por 3 formas de uso:

  • Storyboard  – mamão com açúcar
  • XIB  –  interessante
  • Código  –  desafiador

Bem, este era o meu roteiro básico para todo elemento novo que aparecia na minha frente.

O bacana é que conforme eu buscava o entendimento em pontos “triviais”, outros mais complexos apareciam no meio do caminho, tornando o processo evolutivo mais atrativo.

Voltando ao princípio…

Analisando o código, entendendo o fluxo, me deparei com uma linha que despertou minha atenção para algo curioso:

@”%@:|-%lu-[%@]-%lu-|”

Grande parte dos iOSers hoje, ou a maioria que está começando a trilhar o caminho, deve ter o “câmbio automático” do ~clica e arrasta~ e esta facilidade é muito utilizada, principalmente quando vamos implementar o auto layout em nossa tela, definindo constraints, dimensões e margens relativas com o objetivo de fazer nosso layout se adaptar a diversas variações de tela e modo de visualização.

NSString *stringLocalFormat = [NSString stringWithFormat: @"%@:|-%lu-[%@]-%lu-|",
                                       boolIsVertical?@"H":@"V",
                                       (unsigned long)(boolIsVertical?hMargin:vMargin),
                                       stringKey,
                                       (unsigned long)(boolIsVertical?hMargin:vMargin)];

Bem, o código acima configura uma constraint e ao me deparar com esta linha, notei que eu era um grande refém do meu storyboard e percebi o quanto eu corria da ideia de ter que definir constraints via código.

Mas o código acima não configura  uma simples constraint. Ele configura uma constraint de forma dinâmica, variável e genérica!

Fazia todo sentido e eu jamais conseguiria obter o resultado que esperava, se eu não largasse o tão saboroso osso chamado “Storyboard”.

Uma das grandes vantagens da IDE de desenvolvimento iOS é a facilidade com que você cria e organiza os elementos visuais do seu app.

Mas gostaria de chamar sua atenção para que você não seja um refém do Storyboard. Há muita vida lá fora e respirar novos ares vai te ajudar a fazer coisas maiores e melhores.

Eu possuo muitos vícios ainda que preciso largar e, aos poucos, vou conseguindo ficar menos dependente.

Claro, como em qualquer situação, não existe um certo e um errado. Mas como um desenvolvedor em evolução, percebo que quanto mais mantivermos mente aberta, mais fácil e divertido é nosso crescimento, principalmente quando temos que decidir se vamos clicar e arrastar, ou sentar o dedo no código.

É um mestre ao trabalhar com XIB, Storyboard? Seja um mestre também quando precisar trabalhar os elementos no código. É fera utilizando os elementos no código? Seja fera também quando o Storyboard for tornar sua feature mais simples.

Não seja um refém! Seja livre pra poder escolher o que melhor se encaixa em seu projeto em vez de escolher ou se limitar no que melhor você sabe.