Skip to main content

Posts

Showing posts from May, 2023

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

SOLID Principles in Swift - ( Single Responsibility Principle(SRP), Open/Closed Principle, Liskov Substitution Principle, Interface Segregation, Dependency Inversion)

  SOLID Principles in Swift Single Responsibility Principle  Open/Closed Principle  Liskov Substitution Principle  Interface Segregation  Dependency Inversion S - Single Responsibility Principle(SRP)  Single Responsibility Principle (SRP) is that every class, module, or function in a program should have one responsibility(Task) in a program. Example:-  A Simple Class For multiple Responsibility  class SimpleHandler {           func simpleHandle() {                 let data = requestToDataAPI()                 let array = parseToResponse(data: data)                 saveToDatabase(array: array)         }           private func requestToDataAPI() -> Data {                 // Networ...

UIView Auto Layout life cycle

1.  UIView Life Cycle UIView ==> View, TableView, StackView, UITextView more  SubView ==> UILabel, UIButton, UITextField more UIView Auto Layout life cycle Steps overview    ==>       Init ---> 1. Update ----> 2. Layout -----> 3. Render

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

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