/Combine-Playground

It is a collection of sample projects designed to explore and demonstrate the use of the Combine framework in iOS application development with SwiftUI. Each sub-project within this repository focuses on a specific Combine use case, from fetching data from an API to implementing reactive functionality in user interfaces with SwiftUI.

Primary LanguageSwiftMIT LicenseMIT

Combine Playground

About It is a collection of sample projects designed to explore and demonstrate the use of the Combine framework in iOS application development with SwiftUI. Each sub-project within this repository focuses on a specific Combine use case, from fetching data from an API to implementing reactive functionality in user interfaces with SwiftUI.

Swift

Demos

Getting Data from an API

This app demonstrates how to easily make a request to an endpoint and parse the response into a local data model. For the View itself it is used a simple list and with a "CharacterRow" that uses AsyncImage to load image dynamically.

Real time validation form

This app demonstrates how to validate a form vie Combine. It uses @Publishers and the Combine operator CombineLatest. The view itself just updates when user taps a correct email and password

Combine Tip Calculator

This app demonstrates how to create create simple functional app by using only few @Publishers and how powerful Combine is. It is true that theres no "Combine impor" for this app because in Combine, @Published is a property attribute that automatically announces changes so that the SwiftUI UI can update views that depend on this data. When you mark an ObservableObject property with @Published, you are creating a publisher.

Getting Data from an API with Cache

The app itself is very simple. It makes a request, loads a list and you can navigate to see the detail of the selected item in the list. However the highlight here is that I have implemented a cache class based on Apple's NSCache.This class is the evolution of a previous project. There are still functionalities to implement like self-cleaning or self-checking in regarding to expiration times.

Inspiration from Apple
Previous project that create a need for change

Author

Check my LinkedIn profile to know more about me. Feel free to contact for any question.

Linkedin