¿Qué hace swift-style?
Convenciones de estilo de código Swift para código limpio y legible. Úsalo al escribir código Swift para garantizar formato, nomenclatura, organización y patrones idiomáticos consistentes.
Convenciones Generales
- Indentación: 4 espacios. No uses tabuladores.
- Punto y coma: No uses punto y coma al final de las líneas.
- Longitud de línea: Máximo 120 caracteres por línea.
- Espacios: Deja un espacio antes y después de los operadores (ej.
let x = 5).
Nomenclatura
- Tipos (clases, structs, enums, protocolos): Usa PascalCase (
MyClass,UserData). - Variables y constantes: Usa camelCase (
myVariable,userName). - Acrónimos: En mayúsculas si tienen 2 letras (
URL,ID), como una palabra normal si tienen más (Html,Xml). - Funciones: Usa camelCase, comenzando con verbo (
fetchUser(),updateProfile()). - Enums: Casos en camelCase (Swift moderno) o kebab-case (Swift antiguo). Prefiere camelCase.
Organización del Código
- Estructura de archivos: Un tipo principal por archivo. Nombra el archivo como el tipo.
- Extensiones: Organiza lógica relacionada en extensiones. Marcarlas con
// MARK: -. - Orden de miembros: Primero propiedades (almacenadas, luego computadas), luego inicializadores, luego métodos.
- Importaciones: Agrupa las importaciones del sistema primero, luego las de terceros.
Patrones Idiomáticos
- Optionals: Usa
guard letpara salidas tempranas yif letpara contextos locales. - Manejo de errores: Prefiere
do-catchcon tipos de error conformes aError. - Inmutabilidad: Usa
letpor defecto; solo usavarcuando sea necesario mutar. - Structs vs Clases: Usa structs para datos simples y mutables; usa clases para referencias compartidas y herencia.
- Composición sobre herencia: Prefiere protocolos y composición en lugar de jerarquías profundas de clases.
- Enums como namespaces: Usa enums sin casos para agrupar constantes o funciones relacionadas.
Herramientas
- SwiftLint: Recomendado para verificar automáticamente el estilo.
- Xcode: Configura las reglas de formato en las preferencias del editor.
- Formato automático: Usa
swift-formatpara aplicar el formato automáticamente.