Directrices de desarrollo Android
Editar1. Aplica las directrices de Clean Code ✨
- 📖 Código legible: escribe código fácil de leer y entender. Usa nombres significativos y un formato coherente.
- 🔧 Funciones pequeñas: las funciones deben ser pequeñas y hacer una sola cosa.
- 🚨 Gestión de errores: gestiona las excepciones con elegancia usando bloques
try-catchy proporciona mensajes de error significativos. - ♻️ Evita la duplicación de código: extrae el código reutilizable a funciones o clases.
2. Estándares de codificación 📝
🔤 Convenciones de nombres
Sigue convenciones de nombres coherentes para clases, métodos, variables y recursos:
- 📦 Clases:
PascalCase - 🔧 Métodos y variables:
camelCase - 🔒 Constantes:
UPPER_SNAKE_CASE - 📁 Recursos: usa prefijos para mayor claridad (por ejemplo,
activity_main.xml,ic_launcher.png)
🎨 Formato de código y linter
Adhiérete a las convenciones de codificación de Kotlin. Usa detekt para la comprobación automática del estilo de código y el análisis estático. Esta es la configuración de detekt.yml que usamos en nuestros proyectos:
# Naming rules
naming:
ConstructorParameterNaming:
active: false
VariableNaming:
active: false
# Style rules
style:
ForbiddenComment:
active: false
MaxLineLength:
active: true
maxLineLength: 120
# Complexity rules
complexity:
TooManyFunctions:
ignorePrivate: true
🗒️ Documentación
Comentarios y documentación: escribe comentarios claros donde sea necesario, pero dale prioridad al código autoexplicativo. Usa KDoc para documentar funciones y clases complejas.
3. Aplica los principios SOLID 🛠️
- Principio de responsabilidad única: cada clase o función debe tener una sola responsabilidad.
- Principio de abierto/cerrado: el código debe estar abierto para su extensión pero cerrado para su modificación. Usa interfaces y clases abstractas para añadir funcionalidad sin alterar el código existente.
- Principio de sustitución de Liskov: los subtipos deben ser sustituibles por sus tipos base sin afectar a la corrección.
- Principio de segregación de interfaces: usa interfaces pequeñas y específicas en lugar de interfaces grandes y generales.
- Principio de inversión de dependencias: depende de abstracciones, no de implementaciones concretas.