APIs Públicas Repositorio 100% nativo en Swift en UIKIt en el que se realizan conexiones a diferentes API Rest. Para cada API he utilizado 3 diferentes patrones para manejar la asincronía:
- Patrón
callback - Librería
Combine - Modelo de concurrencia
Async-await.
Proporciona en formato json un número generado de manera aleatoria y su detalle como su equivalente en Binario, su version en Romano, Chino, si es primo, perfecto, triangular, etc.
Para la gestión de la asincronía se utiliza el patrón callback y URLSession
Proporciona en formato json un chiste aleatorio relacionado el legendario Chuck Norris.
Implementación
Patron CallbackyURLSessionpara la conexión a la API ChuckNorrisNetworkNotificationCenterpara la notificación del cambio en de los valores en las propiedades.- Persistencia de datos con un archivo
JSONque se guarda en carpeta de documentos de la app. TableViewpara los items persistidos- Unit Tests del
ModelLogicy un Mock deURLSessiongracias aURLPRotocolChuckURLSessionMock
Proporciona información sobre la división administrativa de regiones, departamentos y municipios en Francia. Datos por municipio como código postal, población.
Implementación
CombineyURLSessionpara la conexión a la API CommunesNetworkNotificationCenterpara la notificación del cambio en de los valores en las propiedades.TableViewpara los listados- Unit Tests del
ModelLogiccon un Mock en la petición a red CommunesUnitTests
API que genera un avatar personalizable en formato SVG, PNG o JPG, con opciones como color de fondo, ojos, boca, tamaño, rotación, etc.
Implementación
- Hecho con el modelo de concurrencia
Async-awaitStatics NotificationCenterpara la notificación del cambio en de los valores en las propiedades.- Permite la persistencia de datos través de
CoreData.APIRestDemoDataBase CollectionViewpara mostrar los elementos persistidos
Diferentes APIs de las que se obtiene un listado de países ( 250 ) y a partir de esa información se consulta en otras APIs para la descarga de la bandera del icono de la tabla, la bandera en tamaño 128x96, y una cuarta API con APIKey que permite la consulta de la regiones y ciudades del país seleccionado.
Implementación
- Hecho con la funcionalidad
Continuationsque permite crear un puente entre la función de red concallbackpara convertirlo a un código asíncrono (async-await). Countries Network - Interfaz de red que implementa un ApiKey para el acceso a las regiones y ciudades.
NotificationCenterpara la notificación del cambio en de los valores en las propiedades.MapKitpara mostrar la localización de la ciudad elegida y calcular la distancia hasta la localización del usuario CountryDetailViewController
API que obtiene de la API Developer Marvel un listado de imágenes de los personajes, a los que se les puede marcar como favorito.
Implementación
- Hecho con el modelo de concurrencia
Async-await NotificationCenterpara la notificación del cambio en de los valores en las propiedades.- Las
CollectionViewsestán implementadas con la claseDiffableDataSourcepara la gestión de los elementos. MarvelCharactersModelLogic - Grupos de tareas permiten la concurrencia de
Async-awaiten la devolución de las imágenes de los personajes MarvelCharactersNetwork - El diseño de las celdas de las
CollectionViewsestá implementado en SwiftUI gracias elUIHostingConfigurationMarvelCharactersCollectionViewController - Interfaz de red que implementa un timestamp, ApiKey y hash para el acceso a la API



