Middle+
Habla sobre los antipatróns en el desarrollo de Android.
sobes.tech AI
Respuesta de la IA
- Uso de
AsyncTaskpara operaciones prolongadas (mejor usar Kotlin Coroutines o RxJava). - Pasar View/Context a ViewModel (causa fugas de memoria).
- Heredar directamente de
ActivityoFragmentpara lógica básica (mejor usar composición). - Codificación rígida de cadenas, números, colores en lugar de usar recursos.
- Bloqueo del hilo principal (
MainThread) con operaciones síncronas largas. - Uso de variables estáticas para almacenar datos que requieren ciclo de vida.
- Uso excesivo de layouts anidados, lo que causa problemas de rendimiento (
ConstraintLayoutoLinearLayoutcon peso es mejor). - Falta de manejo de cambios de configuración (rotaciones de pantalla, cambio de idioma).
- Acceso directo a bases de datos o operaciones de red desde el hilo de UI.
- Uso incorrecto de
SharedPreferencespara almacenar objetos grandes o datos confidenciales. - Falta de manejo de excepciones o implementación incorrecta (por ejemplo, bloques
catchvacíos). - Uso de intenciones implícitas sin verificar la existencia de actividades adecuadas (
resolveActivity). - Gestión incorrecta de suscripciones (por ejemplo, en RxJava), lo que lleva a fugas.
Ejemplo de anidamiento excesivo de layouts:
<!-- Malo -->
<LinearLayout>
<LinearLayout>
<TextView/>
</LinearLayout>
</LinearLayout>
<!-- Bueno -->
<LinearLayout>
<TextView/>
</LinearLayout>