En esta clase vamos a ver la programación concurrente en iOS para ejecutar diferentes tareas a la vez, ya sea en background o en el hilo principal.
Realmente es uno de los principales dolores de cabeza para cualquier desarrollador, pero ya verás que Apple nos lo vuelve a poner muy sencillo una vez más.
Apple nos provee del Framework Grand Central Dispatch para trabajar con diferentes colas de ejecución, y de esta forma poder llevar tareas a colas en background, colas al hilo principal, y también de forma sincrona y asíncrona.
Una cola sincrona es la que se va a ejecutar después de que otros procesos y tareas se terminen, es decir, que si nuestra tarea está programada de forma sincrona, la tarea será llevada a cabo cuando otras tareas hayan finalizado.
Sin embargo cuando creamos una cola asíncrona esta será llevada a un hilo de ejecución en background, y será el sistema operativo el encargado de realizar la tarea mientras realiza otras tareas a la misma vez. Para eso es muy importante conocer el QoS, o “Quality of Service” que determinará la prioridad que quieres darle a tu tarea, para que el sistema operativo la ejecute con más o menos urgencia.
Vamos a ver el video, dónde veremos el Framework Grand Central Dispatch, un conjunto de objetos que nos permitirán crear “colas de ejecución” para nuestros procesos.
Ya lo has visto, ahora ya podemos enviar tareas a un segundo plano y así no dejar congelada nuestra interfaz.
El buen manejo de diferentes “colas de ejecución” harán que nuestras aplicaciones tengan un mejor rendimiento, de forma que diferentes procesos no colapsen el trabajo que se esté llevando a cabo en un determinado momento, además de no perjudicar al usuario/a congelando la interfaz.
Además, es imprescindible que sepas que UIKit, es decir el Framework que se encarga de todos los objetos que presentamos en nuestras Apps, no es seguro en entornos multitarea, por lo que es necesario que si queremos actualizar alguno de estos objetos de UIKit, lo hagamos dentro de una cola en el hilo principal o Main Thread.
En otros lenguajes de programación o entornos de desarrollo la programación concurrente es bastante tediosa y compleja, pero como has podido comprobar Apple nos vuelve a poner las cosas muy fáciles. Bien es cierto que nunca tenemos el 100% del control, pero generalmente no es necesario tener todo el control y Grand Central Dispatch funciona de maravilla. ¡Nos vemos en la siguiente lección!
Todos los capítulos de este curso:
- Curso de Frameworks para apps en iOS #1. Introducción
- Curso de Frameworks para apps en iOS #2. Framework MapKit – Crea tus propios mapas
- Curso de Frameworks para apps en iOS #3. Quicklook – Visualizar cualquier tipo de documento
- Curso de Frameworks para apps en iOS #4. Uikit Dinamycs – Crear animaciones
- Curso de Frameworks para apps en iOS #5. Core Image – Aplicar Filtros a las imágenes
- Curso de Frameworks para apps en iOS #6. Core Motion – Podómetro en Apple Watch
- Curso de Frameworks para apps en iOS #7. Alamofire – Consumir servicios web
- Curso de Frameworks para apps en iOS #8. Grand Central Dispatch
- Curso de Frameworks para apps en iOS #9. Message – Crear una app de stickers
- Curso de Frameworks para apps en iOS #10. Crea tu propio framework