Skip to main content

Custom Loader (Activity Indicator) in Swift

Creating a custom activity indicator in Swift allows you to tailor the appearance and behavior of your loading spinner to fit the style of your app. Here's a step-by-step guide to creating a simple custom activity indicator using UIView Step 1: Create a New Swift File for the Custom Activity Indicator Create a new Swift file and name it  RotatingCirclesView.swift . Add the following code to define a custom UIView subclass for your activity indicator: // //   RotatingCirclesView.swift //   Welcome In // //   Created by Praveen Kumar on 05/09/24. // import UIKit class RotatingCirclesView : UIView {          let circle1 = UIView ( frame : CGRect ( x : 20 , y : 20 , width : 60 , height : 60 ))     let circle2 = UIView ( frame : CGRect ( x : 120 , y : 20 , width : 60 , height : 60 ))          let position : [ CGRect ] = [ CGRect ( x : 30 , y : 20 , width : 60 , height : 60 ), CGRect ( x : 60 , y : 15 ,...

Async await in Swift with code examples

Async await

Async await is a new structured concurrency change that arrived in swift 5.5 during WWDC 2021. Concurrency in swift allowing multiple pices of code run at the same time. With the new async methods and await statement, we can define methods performing work asynchronously. Async replaces closure completion callbacks

Async await


Completion callbacks were common in Swift to return from an asynchronous task,

Exp:-

func fetchImages(completion: (Result<[UIImage], Error>) -> Void) {
    // .. perform data request
}

What Is Async

Async stand for asynchronous 

func fetchImages() async throws -> [UIImage] {
 // .. perform data request 
}

This async method throw async which means that it’s performing a failable asynchronous task. 
The method would return a collection of images if everything went well otherwise throws an error if something went wrong.

What is await?

Await is the keyword to be used for calling Async method. You can say Async & Await both are best friends in swift as one will never go without the other. "Await is waiting a callback from his buddy async"  if call a fetchImages() method then 

do {
    let images = try await fetchImages()
    print("Fetched \(images.count) images.")
} catch {
    print("Fetching images failed with error \(error)")
}

Async- await called a structured concurrency, this method are linearly executed without going back.



Comments