Skip to content

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` .

Notifications You must be signed in to change notification settings

airaizos/APIRestDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APIRest Demo

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 Callback y URLSession para la conexión a la API ChuckNorrisNetwork
  • NotificationCenter para la notificación del cambio en de los valores en las propiedades.
  • Persistencia de datos con un archivo JSON que se guarda en carpeta de documentos de la app.
  • TableView para los items persistidos
  • Unit Tests del ModelLogic y un Mock de URLSession gracias a URLPRotocol ChuckURLSessionMock

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

  • Combine y URLSession para la conexión a la API CommunesNetwork
  • NotificationCenter para la notificación del cambio en de los valores en las propiedades.
  • TableView para los listados
  • Unit Tests del ModelLogic con 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-await Statics
  • NotificationCenter para la notificación del cambio en de los valores en las propiedades.
  • Permite la persistencia de datos través de CoreData.APIRestDemoDataBase
  • CollectionView para mostrar los elementos persistidos

Países

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 Continuations que permite crear un puente entre la función de red con callback para 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.
  • NotificationCenter para la notificación del cambio en de los valores en las propiedades.
  • MapKit para mostrar la localización de la ciudad elegida y calcular la distancia hasta la localización del usuario CountryDetailViewController

Marvel Characters

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
  • NotificationCenter para la notificación del cambio en de los valores en las propiedades.
  • Las CollectionViews están implementadas con la clase DiffableDataSource para la gestión de los elementos. MarvelCharactersModelLogic
  • Grupos de tareas permiten la concurrencia de Async-await en la devolución de las imágenes de los personajes MarvelCharactersNetwork
  • El diseño de las celdas de las CollectionViews está implementado en SwiftUI gracias el UIHostingConfiguration MarvelCharactersCollectionViewController
  • Interfaz de red que implementa un timestamp, ApiKey y hash para el acceso a la API

About

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` .

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages