Introduccion a Swift
## Objetivos de Aprendizaje
- Comprender la historia y evolucion de Swift
- Configurar el entorno de desarrollo de Swift
- Escribir y ejecutar tu primer programa en Swift
- Comprender los conceptos basicos de la sintaxis de Swift
## Que es Swift?
Swift es un lenguaje de programacion potente e intuitivo desarrollado por Apple para construir aplicaciones para iOS, Mac, Apple TV y Apple Watch. Fue disenado para ser facil de aprender y usar, siendo expresivo y moderno.
```swift
print("Hola, Mundo!")
```
## Historia de Swift
| Anio | Version | Hito |
|------|---------|------|
| 2014 | Swift 1.0 | Lanzamiento inicial |
| 2015 | Swift 2.0 | Codigo abierto, extensiones de protocolo |
| 2016 | Swift 3.0 | Guías de diseno de API, soporte para Linux |
| 2017 | Swift 4.0 | Mejoras en genericos, manejo de cadenas |
| 2019 | Swift 5.0 | Estabilidad ABI, SwiftUI anunciado |
| 2023 | Swift 5.9 | Soporte para macros, expresiones if/switch |
## Caracteristicas Clave
- **Seguro**: Seguridad de memoria y tipos integrada
- **Rapido**: Lenguaje compilado optimizado para rendimiento
- **Moderno**: Sintaxis concisa, opcionales, closures
- **Interactivo**: Playgrounds para experimentacion
- **Codigo Abierto**: Disponible en GitHub
## Instalar Swift
### macOS
Swift viene preinstalado con Xcode. Para verificar:
```bash
swift --version
```
### Linux
Descarga desde :
```bash
# Ubuntu (ejemplo)
wget https://download.swift.org/swift-5.9.2-release/ubuntu2204/swift-5.9.2-RELEASE-swift-5.9.2-RELEASE-ubuntu22.4.tar.gz
tar xzf swift-5.9.2-RELEASE-*
export PATH=/path/to/swift-5.9.2-RELEASE-ubuntu22.4/usr/bin:"$PATH"
```
### Verificar Instalacion
```bash
swift --version
# Swift version 5.9.2
```
## Tu Primer Programa
### Hola Mundo
```swift
print("Hola, Mundo!")
```
### Usando Variables
```swift
let nombre = "Swift"
let version = 5.9
print("Bienvenido a \(nombre) \(version)")
```
## Swift Playgrounds
Los Playgrounds proporcionan un entorno interactivo para escribir y probar codigo Swift.
### Crear un Playground (Xcode)
1. Abre Xcode
2. Archivo > Nuevo > Playground
3. Selecciona iOS o macOS
4. Nombra tu playground
5. Comienza a programar!
### Beneficios del Playground
- Retroalimentacion instantanea
- Experimentar libremente
- Visualizar datos
- Probar algoritmos
## Estructura de un Programa Swift
### Estructura Basica
```swift
// Punto de entrada
import Foundation
let mensaje = "Hola"
print(mensaje)
```
### Multiples Declaraciones
```swift
let a = 10
let b = 20
let suma = a + b
print("Suma: \(suma)")
```
## Comentarios
```swift
// Comentario de una sola linea
/*
Comentario de
multiples lineas
*/
/**
Comentario de documentacion (usado por Xcode)
*/
```
## Vista Previa de Tipos de Datos
```swift
// Enteros
let edad: Int = 25
// Punto flotante
let precio: Double = 19.99
// Cadenas
let nombre: String = "Swift"
// Booleanos
let estaActivo: Bool = true
// Arreglos
let numeros: [Int] = [1, 2, 3]
// Diccionarios
let persona: [String: Any] = ["nombre": "Alicia", "edad": 30]
```
## Linea de Comandos
### Ejecutar Archivos Swift
```bash
swift MiArchivo.swift
```
### Compilar
```bash
swiftc -o MiPrograma MiArchivo.swift
./MiPrograma
```
## IDEs
### Xcode (Recomendado)
- IDE nativo de Apple
- Playgrounds integrados
- Interface Builder
- Depurador
### VS Code
- Instalar extension Swift
- Resaltado de sintaxis
- IntelliSense
### Swift Playgrounds App
- App para iPad
- Codificacion interactiva
- Ideal para aprender
## Swift vs Otros Lenguajes
| Caracteristica | Swift | Objective-C | Java |
|----------------|-------|-------------|------|
| Seguridad de Tipos | Fuerte | Debil | Fuerte |
| Seguridad de Memoria | Si | Manual | Si |
| Sintaxis | Moderna | Basada en C | Basada en C |
| Opcionales | Integrado | Objetos nil | No |
| Closures | Nativos | Blocks | Lambdas |
## Resumen
- Swift es el lenguaje de programacion moderno de Apple
- Disponible en macOS, Linux y Windows
- Swift Playgrounds permite el aprendizaje interactivo
- Seguro en tipos y memoria por defecto
- Ejecutar con `swift nombrearchivo.swift`
- Comentarios: `//`, `/* */`, `/** */`
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →