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

Encodable and Decodable With (Codable = Decodable + Encodable) in Swift


Encodable and Decodable With (Codable = Decodable + Encodable)


Encodable : - "Encodable means convert Request Parameters(Model) to Data"

By using the Encodable protocol we can generate request parameters by Model Class / Struct

struct AddProduct: Encodable{

    var title: String = ""

    init(title: String){

        self.title = title

    }

}


Decodable: -  "Decodable means convert Data to Request Parameters(Model)"

By using the Decodable protocol we can convert API response in Model Class / Struct. When done with API call decoding the response in terms of UserResponse object

struct ProductResponse: Decodable {

    let id: Int

    let title: String

}

Codable = Decodable + Encodable

Codable :-  typealias of Encodable +  Decodable

Codable is a type alias for the 'Encodable' and 'Decodable' protocols. 

When you use 'Codable' as a type or a generic constraint, it matches 

Any type that conforms to both protocols. 

public typealias Codable = Decodable & Encodable

struct AddProduc: Codable{

    var id: Int = 0

    var title: String = ""

    

    init(title: String){

        self.title = title

    }

} 

Comments