Contenido del curso
Tu primera app en iOS
- 4

Creación de la primera app iOS con Xcode: Login de Facebook
09:02 min - 5

Navegación entre pantallas en iOS con UI Navigation Controller
05:49 min - 6

Creación y conexión de múltiples storyboards en iOS
06:14 min - 7

Conexiones IBOutlets y IBActions en iOS con Storyboards
11:00 min - 8

Comparativa: Auto Layout vs SwiftUI en Desarrollo iOS
02:48 min - 9

Auto Layout en iOS: Diseño Responsivo con Constraints y StackViews
11:10 min - 10

Creación y configuración de tablas en iOS con Swift
12:49 min - 11

Creación de celdas personalizadas en TableView de iOS
14:00 min - 12

Persistencia de Datos en iOS con UserDefaults
11:08 min
Manejo de dependencias
Servicios Web
Proyecto: PlatziTweets
- 19

Desarrollo de "Platzi Tweets": Red Social iOS Realista
02:24 min - 20

Configuración Inicial de Proyecto iOS con CocoaPods
06:18 min - 21

Diseño de Pantallas de Bienvenida, Inicio de Sesión y Registro en iOS
13:06 min - 22

Controladores y validaciones en pantallas de registro y login
12:22 min - 23

Validación y Conexiones en Login y Registro iOS
10:01 min - 24

Modelado de Endpoints y JSON para API de PlatziTweets
01:44 min - 25

Integración de Autenticación con API de Platzi Tweets
09:37 min - 26

Desarrollo de Registro y Autenticación en Aplicaciones iOS
06:47 min - 27

Diseño de Interfaces para Aplicaciones iOS: Creación de Celdas Personalizadas
12:37 min - 28

Consumo de API para mostrar tweets en iOS
12:43 min - 29

Diseño de Pantalla para Crear y Publicar Tweets en iOS
11:06 min - 30

Conexión de Pantalla de Publicación con Servicios de Platzi Tweets
09:11 min - 31

Borrado de Tweets Propios en iOS usando Swipe en UITableView
12:20 min - 32

Uso de la Cámara del iPhone para Adjuntar Fotos en Posts
Viendo ahora - 33

Conexión de Aplicaciones iOS con Firebase paso a paso
02:26 min - 34

Configuración de iPhone y X-Code para ejecución de apps
04:45 min - 35

Subida de Fotos a Firebase y Publicación en Twitter
13:38 min - 36

Configuración de Post con Imagen en Firebase
03:13 min - 37

Captura y Publicación de Videos en iOS con Firebase
09:17 min - 38

Subida de Videos a Firebase e Integración en Posts de iOS
14:41 min - 39

Configuración de Celdas para Reproducción de Videos en iOS
07:58 min - 40

Acceso al GPS y almacenamiento de coordenadas en iOS
09:43 min - 41

Integración de Mapas en iOS con Coordenadas de Usuario
11:28 min - 42

Marcadores y Configuración de Mapas en iOS con Swift
14:11 min - 43

Mejoras avanzadas en UI y UX para iOS Developer
01:28 min
En producción
iOS Avanzado
Hola, iOS Developer
Uso de la Cámara del iPhone para Adjuntar Fotos en Posts
Resumen
Integrar la cámara del iPhone en una aplicación iOS es un paso fundamental para enriquecer la experiencia del usuario. Poder tomar fotos y adjuntarlas a publicaciones requiere configurar permisos, manejar el estado de las imágenes y controlar la calidad para que el contenido no resulte demasiado pesado. A continuación se explican los pasos esenciales para lograrlo directamente desde el código.
¿Cómo solicitar permisos de cámara en iOS?
Antes de acceder al hardware del dispositivo, es obligatorio declarar el permiso correspondiente. Para ello se trabaja con el archivo info.plist, que almacena las configuraciones generales de la aplicación. Se abre como código fuente y se agrega la llave NSCameraUsageDescription [01:10]. Esta llave debe acompañarse de un string que describa al usuario por qué la app necesita acceso a la cámara, por ejemplo: "Usaremos la cámara para publicar tu tweet".
Este paso no es opcional. Apple puede rechazar una aplicación que utilice la cámara sin incluir el texto del permiso. Es una política estricta de privacidad que protege al usuario y que todo desarrollador debe respetar.
¿Cómo configurar el UIImagePickerController para abrir la cámara?
El componente central es UIImagePickerController, un controlador nativo de iOS que permite capturar fotos o videos. Se declara como una propiedad privada y opcional dentro del ViewController [03:22]:
swift private var imagePicker: UIImagePickerController?
Dentro de un método llamado openCamera, se crea la instancia y se configuran varias propiedades importantes:
- sourceType: define la fuente de información. Puede ser la cámara, la librería de fotos o las fotos guardadas. En este caso se selecciona
.camera[04:30]. - cameraFlashMode: controla si el flash está activo o no al abrir la cámara. Se puede alternar entre
.ony.off[04:50]. - cameraCaptureMode: establece el modo de captura, que puede ser
.photoo.video[05:07]. - allowsEditing: cuando está en
true, permite al usuario recortar la imagen después de tomarla [05:22]. - delegate: se asigna
selfpara controlar cuándo se toma o se cancela la foto [05:35].
Para presentar la cámara al usuario se utiliza un guard let que verifica que el imagePicker se haya instanciado correctamente. Si todo sale bien, se presenta con el método present [06:10]:
swift guard let imagePicker = imagePicker else { return } present(imagePicker, animated: true, completion: nil)
¿Qué es el preview de la foto y cómo mostrarlo?
Antes de configurar la cámara, se agrega un UIImageView llamado previewImageView al stack de la interfaz [02:05]. Este componente muestra una vista previa de la foto tomada. Se le asigna una altura mínima de doscientos puntos y se marca como hidden para que no aparezca vacío antes de capturar una imagen [02:55].
¿Cómo conectar el botón para abrir la cámara?
Se añade un botón con el texto "Abrir Cámara" y se crea un IBAction llamado openCameraAction [03:40]. Dentro de esa acción simplemente se llama al método openCamera, separando la lógica de la interfaz de la lógica de negocio.
¿Cómo implementar el delegate para obtener la foto capturada?
El protocolo UIImagePickerControllerDelegate se implementa en una extensión del ViewController, junto con UINavigationControllerDelegate, que también es requerido [06:38]. El método clave es didFinishPickingMediaWithInfo [07:05], que se dispara cuando el usuario termina de seleccionar o tomar una foto.
El parámetro info es un diccionario con llaves y valores. Para verificar que se recibió una imagen, se consulta si existe la llave .originalImage [07:30]:
swift if let image = info[.originalImage] as? UIImage { previewImageView.isHidden = false previewImageView.image = image }
Con esto se hace visible el preview y se asigna la imagen capturada. Finalmente, es necesario cerrar la cámara llamando a dismiss sobre el imagePicker [08:25]:
swift imagePicker?.dismiss(animated: true, completion: nil)
Dominar el uso de UIImagePickerController, la gestión de permisos con NSCameraUsageDescription y la implementación de delegates mediante extensiones son habilidades esenciales para cualquier desarrollador iOS. Si alguno de estos conceptos te resulta nuevo, experimenta modificando las propiedades del picker y observa cómo cambia el comportamiento de la cámara. ¿Qué configuración te funcionó mejor? Comparte tu experiencia en los comentarios.