Sobes.tech
Middle+

Fale sobre antipadrões no desenvolvimento Android.

sobes.tech IA

Resposta da IA

  • Uso de AsyncTask para operações longas (melhor usar Kotlin Coroutines ou RxJava).
  • Passar View/Context para ViewModel (causa fugas de memória).
  • Herança direta de Activity ou Fragment para 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 (ConstraintLayout ou LinearLayout com 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 SharedPreferences para armazenar objetos grandes ou dados confidenciais.
  • Falta de manejo de exceções ou implementação incorreta (por exemplo, blocos catch vazios).
  • 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>