
Protocol Oriented Programming with Swift
Jon Hoffman
- Editorial
- Packt
- Año
- 2016
- Páginas
- ~212
- Nivel
- Intermedio
De qué trata
Monografía técnica de Jon Hoffman dedicada a explorar y aplicar el paradigma de la Programación Orientada a Protocolos (POP), eje conceptual introducido por Apple en Swift 2. Está orientada a programadores de nivel intermedio que ya conocen las bases del lenguaje o provienen de la programación orientada a objetos (OOP) tradicional y buscan comprender la filosofía idiomática bajo la cual está diseñada la propia biblioteca estándar de Swift.
La obra desglosa en detalle la definición y adopción de protocolos, el uso de extensiones de protocolos para proporcionar implementaciones por defecto y la composición de comportamientos como alternativa preferente a la herencia jerárquica de clases. Profundiza en el sistema de tipos de Swift, comparando minuciosamente los tipos por valor (structs y enums) con los tipos por referencia (classes), y cubre el desarrollo con genéricos y tipos asociados. Asimismo, analiza la gestión de memoria bajo Automatic Reference Counting (ARC) para prevenir ciclos de retención con referencias weak y unowned, el patrón Copy-on-Write (COW) y la adaptación de patrones de diseño clásicos (como Factory, Command, Strategy y Observer) a la semántica protocolar.
A lo largo de sus páginas se trabaja sobre ejemplos modulares y se refactoriza paso a paso el diseño de entidades y habilidades de un videojuego ficticio, transformando un modelo rígido y frágil basado en herencia en una solución flexible basada en protocolos y estructuras. Su aporte fundamental radica en transformar la mentalidad del programador hacia arquitecturas más seguras, desacopladas y eficientes; no obstante, no aborda el desarrollo de interfaces gráficas con UIKit ni la construcción de una aplicación comercial completa, tratándose de un texto centrado estrictamente en arquitectura, modelado y diseño en Xcode Playgrounds.
- Swift 2
- Programación Orientada a Protocolos
- Protocol Extensions
- Structs y Clases
- Semántica de valor
- Genéricos
- Patrones de diseño
- Gestión de memoria
- ARC
- Arquitectura de software
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✗ Sin proyectos

