Reféns de Storyboard

Renato Sarro Matos
3 min readMar 7, 2016

--

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, 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 sim, 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 iOS’ers 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.

Bem, o código acima configura uma constraint.

Ao me deparar com esta linha, notei que eu era um grande refém do meu storyboard e percebi o quanto eu corria da idéia de ter que definir constraints via código.

Bem, o código acima configura uma constraint. Não 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 \o/

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 =D

É 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.

Carry on!

--

--

Renato Sarro Matos

iOS Lead na Cora, metido a músico e apreciador da arte do tricô