O Beagle precisa conhecer todos os componentes (Widgets, Actions, Operations, Logger, …) que você define no seu projeto para funcionar corretamente.
Embora seja possível criar a sua própria implementaçao da interface BeagleSdk
e registrar os componentes, o processador de anotações do Beagle pode lhe poupar muito tempo. Ele utiliza as anotações do Beagle para gerar uma implementação da interface BeagleSdk
chamada BeagleSetup
, que reúne todos os componentes anotados dentro do seu projeto.
Para adicionar o processador de anotações do Beagle no seu projeto, você deve seguir os seguintes passos:
apply plugin: 'kotlin-kapt'
dependencies {
kapt "br.com.zup.beagle:android-processor:$beagle_version"
}
O processador de anotações do Beagle consegue encontrar componentes anotados no seu projeto e em suas dependências. Para funcionar corretamente, todos os módulos ou dependências que anotam componentes com anotações do Beagle precisam incluir o processador de anotações do Beagle em suas dependências.
O processador de anotações do Beagle aceita dois parâmetros:
Eles podem ser utilizados conforme exemplo abaixo:
kapt {
arguments {
arg("beagle.moduleName", "sample")
arg("beagle.generateSetupClasses", "false")
}
}
Esse parâmetro é utilizado para dar nomes significativos para algumas classes geradas. Não é obrigatório, porém recomendamos fortemente utilizá-lo.
Os nomes das classes geradas dinamicamente serão semelhantes à: RegisteredActionsRegistrar59c20e58331c4f11b84d377475593739
. Isso torna difícil identificar em qual módulo do seu projeto essas classes foram geradas.
Por padrão, todo módulo que usa o processador de anotações do Beagle gera a classe BeagleSetup
. Isso é um problema quando você deseja criar um módulo que, por exemplo, terá apenas widgets.
A classe BeagleSetup
declara uma propriedade do tipo BeagleConfig
que não pode receber valores nulos, e acabamos tendo que criar uma implementação de BeagleConfig
sem utilidade dentro desse módulo. Isso leva ao seguinte problema: Essa implementação de BeagleConfig
irá conflitar com a implementação oficial de BeagleConfig
do seu projeto, pois você pode ter uma, e apenas uma, implementação de BeagleConfig
dentro do seu projeto.
Para resolver essa situação, é possível desabilitar a geração da classe BeagleSetup
nos módulos em que ela não é necessária. Isso é feito adicionando o seguinte argumento ao kapt no arquivo gradle do módulo:
kapt {
arguments {
arg("beagle.generateSetupClasses", "false")
}
}
Algumas propriedades são únicas dentro de um projeto Beagle. Isso significa que apenas um componente daquele tipo pode ser registrado em toda estrutura do projeto (incluindo outros módulos e dependências que utilizam o processador de anotações do Beagle). Propriedades que são únicas incluem:
Se você registrar um componente que deveria ser único mais de uma vez na estrutura do seu projeto, o processador de anotações do Beagle irá criticar e o seu projeto não irá compilar. A mensagem de erro será semelhante a:
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.