Middle+
Fale sobre antipadrões no desenvolvimento Android.
sobes.tech IA
Resposta da IA
- Uso de
AsyncTaskpara operações longas (melhor usar Kotlin Coroutines ou RxJava). - Passar View/Context para ViewModel (causa fugas de memória).
- Herança direta de
ActivityouFragmentpara lógica básica (melhor usar composição). - Codificação rígida de strings, números, cores em vez de usar recursos.
- Bloqueio do thread principal (
MainThread) com operações síncronas longas. - Uso de variáveis estáticas para armazenar dados que requerem ciclo de vida.
- Uso excessivo de layouts aninhados, o que causa problemas de desempenho (
ConstraintLayoutouLinearLayoutcom peso é melhor). - Falta de manejo de mudanças de configuração (rotações de tela, mudança de idioma).
- Acesso direto a bases de dados ou operações de rede a partir do thread de UI.
- Uso incorreto de
SharedPreferencespara armazenar objetos grandes ou dados confidenciais. - Falta de manejo de exceções ou implementação incorreta (por exemplo, blocos
catchvazios). - Uso de intenções implícitas sem verificar a existência de atividades adequadas (
resolveActivity). - Gestão incorreta de assinaturas (por exemplo, em RxJava), levando a fugas.
Exemplo de excesso de aninhamento de layouts:
<!-- Mau -->
<LinearLayout>
<LinearLayout>
<TextView/>
</LinearLayout>
</LinearLayout>
<!-- Bom -->
<LinearLayout>
<TextView/>
</LinearLayout>