Live Templates no Android Studio — Escrever uma vez e economizar um tempo precioso

Guilherme Rocha
Usemobile
Published in
4 min readAug 21, 2020
Aron Visuals — Unsplash

Há pouco tempo publiquei um artigo aqui falando sobre uma combinação de bibliotecas em uma aplicação Flutter e, desenvolvendo o app de exemplo, comecei a usar mais os Live Templates do Android Studio.

Você provavelmente já usou algum deles. Quando digitamos stful ou stless, a IDE completa automaticamente com o todo aquele código boilerplate dos respectivos Stateful e Stateless Widgets.

Stful e Stless template

Esse é um exemplo clássico de Live Template. O que podemos perceber é que se fossemos escrever esse código toda vez que precisássemos, seria um mar de Ctrl+C Ctrl+V e consequentemente algumas coisas acabariam ficando pra trás — sem contar que economiza um bom tempo.

Pensando nisso, resolvi criar um passo a passo de como eu criei o Live Template dos Models que são serializados usando o json_serializable. A motivação para criar um template dessas classes veio quando comecei a esquecer com frequência de colocar a anotação @JsonSerializable, que é obrigatória para que ocorra a geração de código.

Vamos ver na prática

A primeira coisa que devemos fazer é ir em File > Settings > Editor > Live Templates.

Aqui encontramos todos os boilerplates que já vêm definidos na IDE. Aproveite pra ver se tem algum que você não conhecia antes 😊.

Como mencionei anteriormente, vou mostrar a criação de um template que usei em um projeto Flutter. Por isso, a primeira coisa que vamos fazer é selecionar o Flutter entre as opções disponíveis.

Agora, no canto direito da tela vamos clicar no ícone de + para adicionar o template e depois clicar em “Live Template”.

No campo “Abreviation” vamos colocar o nome que será digitado para gerar nosso template. Nesse caso será jsonmodel.

Colocaremos também uma descrição. Como o nome já diz, ela deve dizer o que o seu Live Template vai gerar.

Precisamos definir em qual contexto esse código será inserido. Para fazer isso vamos selecionar a linguagem Dart clicando em Define abaixo da caixa de texto.

Agora temos o esqueleto do nosso Live Template definido. Dentro da caixa de “Template text” vamos colar o código de algum dos exemplo que já foi feito anteriormente.

É necessário informar que iremos definir algumas variáveis nesse trecho de código que será inserido aqui. Cada variável deve começar e terminar com o símbolo $. Neste exemplo temos $FILENAME$ e $CLASSNAME$.

No Flutter, quando trabalhamos com geração de código, também precisamos usar classes que começam com símbolo $. Para que não dê conflito, basta inserirmos um terceiro $ que o problema é resolvido.

O próximo passo é definir propriedades das nossas variáveis. Para isso vamos clicar no botão Edit Variables.

Temos agora uma tabela com as variáveis que definimos no trecho de código anterior e podemos adicionar atributos específicos para cada uma delas. Para fazer isso vamos usar funções pré definidas na coluna “Expression”.

No $FILENAME$ vamos especificar que ele será igual ao nome do arquivo que está inserido sem a extensão. Ou seja se o arquivo é login_result.dart, o $FILENAME$ login_result.

Nosso $CLASSNAME$, por ser o nome da classe, começará com letra maiúscula, será camelCase e terá o mesmo nome da variável $FILENAME$.

Existem outras expressões definidas que dão mais poder ainda aos templates, sugiro que você experimente usá-las.

Feito isso, vamos clicar em OK.

Pronto, nosso template está finalizado. Basta clicar em “Apply” e começar a usar.

Olha só como ficou:

Jsonmodel template

A gente nem precisa digitar a “Abreviation” inteira, o Android Studio já sugere o template e depois basta apertar Enter que o código que definimos vai aparecer.

Finalizamos, então, esse tutorial! Agradeço a você que ficou até aqui. Espero que a partir de agora, assim como eu, você comece a usar mais essa ferramenta de criação de templates que, além de economizar bastante tempo, diminui a chance de esquecermos algum trecho desses boilerplates codes.

Aproveite para deixar uma palminha e até mais ❤.

--

--