Skip to main content

Swift API Manager -Alamofire-Refresh Token-With TestCases

  import Foundation import KeychainAccess enum APIError : Error { case accessTokenExpired case networkError // Add more error cases as needed } class APIManager { private let keychain = Keychain (service: "com.example.app.refreshToken" ) private let refreshTokenKey = "refreshToken" private var accessToken: String ? func callAPI < T : Codable >( urlString : String , method : String , parameters : [ String : Any ] ? , completion : @escaping ( Result < T , APIError >) -> Void ) { guard let url = URL (string: urlString) else { completion(.failure(.networkError)) return } var request = URLRequest (url: url) request.httpMethod = method // Add access token to the request headers if available if let token = accessToken { request.setValue( "Bearer \(token) " , forHTTPHeaderField: "Aut...

Design Patterns on iOS using Swift

Design Patterns on iOS using Swift - Singleton Design Pattern Example


iOS Design Patterns Tutorial - Design patterns are evolved as reusable solution to the problem that we encounter every day of programming

Types of Design Patterns - iOS Developer Live

Creational: This type design deals with the object creation and initialization.
   Eg: Singleton, Factory, Abstract Factory.

Structural: This type design pattern deals with class and object composition
Eg: MVC, Decorator, Adapter, Bridge, Facade.

Behavioral: Deals with the communication between classes and object
   Eg: Observer, and, Memento

Singleton Design Pattern


Creational Pattern - Singleton Design Patterns

Creational Pattern - Only one Instance of a particular classes, singleton pattern belongs to Ceational type pattern, This pattern is used when we need to ensure that only one object of a particular class need to be created. Only one object available across the application in a controlled 
  1. Declaring all constructor of the class to be private
  2. Provide static method that return a reference to the instance.
  3. The instance to be stored as a private static variable   

Example:-

class singaltonDemo
{
    static let instance = singaltonDemo()
    var data: Int = 0
    private init(){
        
    }
    
     func setData(value: Int){
         data = value
         
     }
    func getData() ->Int {
        return data
    }
}

singaltonDemo.instance.setData(10)
print("Data = \(singaltonDemo.instance.getData())")



Comments

Post a Comment