22 jul 2016

Criando templates com Android Studio

Uma ótima forma de melhorar a produtividade na hora de criar uma aplicação é automatizar o trabalho repetitivo. Pense por exemplo que algo muito comum de ser utilizado em qualquer aplicação são as listas, e toda vez que for criar uma você precisará reescrever o mesmo código, ou para alguém como eu copiar uma classe pronta e adapta-la a minha necessidade.
Existe uma forma mais inteligente para casos como estes, você pode criar um arquivo template no Android Studio com o mínimo de código pronto para você trabalhar e adaptar para a necessidade da aplicação.

No exemplo deste post vou criar um template para um adapter de um recyclerview. Clique com o botão direito em cima de um pacote da sua aplicação vá em “New” e clique em “Edit File Templates…”, clique no botão “+” no canto superior esquerdo para criar um novo modelo, vou chama-lo de RecyclerViewAdapter, na área abaixo você poderá escrever o seu código.

Existem algumas variáveis que você poderá utilizar para ser substituído quando for criar o arquivo, como:

1
2
3
${NAME}
${PACKAGE_NAME}
${DATE}

Você pode definir variáveis para serem usadas no seu código, vamos usar uma variável para nomear nosso ViewHolder

1
${VIEWHOLDER_CLASS}

e uma para o tipo do List que nosso adapter vai utilizar

1
${ITEM_CLASS}

O código de exemplo que usarei é este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;

#parse("File Header.java")
public class ${NAME} extends RecyclerView.Adapter {
    private final Context context;
    private List items;
   
    public ${NAME}(List items, Context context) {
        this.items = items;
        this.context = context;
    }

    @Override
    public ${VIEWHOLDER_CLASS} onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.${LAYOUT_RES_ID}, parent, false);
        return new ${VIEWHOLDER_CLASS}(v);
    }

    @Override
    public void onBindViewHolder(${VIEWHOLDER_CLASS} holder, int position) {
        ${ITEM_CLASS} item = items.get(position);
        //TODO Fill in your logic for binding the view.
    }

    @Override
    public int getItemCount() {
        if (items == null){
            return 0;
        }
        return items.size();
    }

    public class ${VIEWHOLDER_CLASS} extends RecyclerView.ViewHolder {
        CircularProgressButton mButtonAction;

        public ${VIEWHOLDER_CLASS}(View itemView) {
            super(itemView);
        }
    }
}

Quando você for utilizar esse modelo será solicitado que seja preenchido os campos das variáveis que estamos usando no código de exemplo
Screen Shot 2016-07-22 at 18.22.23

Para usar o modelo criado é só clicar com o botão direito em cima do pacote que deseja, ir na opção “New” e clicar em “RecyclerViewAdapter”. Espero ter ajudado com esta dica, crie modelos e seja mais produtivo, se você já usa templates compartilhe-os conosco!

Leave a Comment