Lazy Properties

A lazy property is a property whose initial value is not calculated until the first time it is accessed.

TypeAlias

A typealias is used to provide an alternative name for an existing type. It helps improve code readability, especially when working with complex or verbose types. It does not create a new type; it only creates a new name for an existing type.

Defer

defer is a statement used to execute a block of code just before the current scope e.g a function or loop exits.

Higher Order Functions

Higher-order functions are widely used for functional programming. Swift provides many built-in higher-order functions such as map, filter, reduce, and compactMap 1. map The map function transforms each element in a collection by applying a closure. 2. filter The filter function filters elements of a collection based on a condition. …

Associated Type(Generics in Protocol)

Associated types are placeholders that a protocol defines for the type it expects. The actual type is specified when a protocol is adopted. This allows the protocol to work generically with any type. Advantages of Associatedtype Realtime Example Using in API call

Generics

Generics in Swift allow you to write flexible, reusable, and type-safe code by enabling you to define functions, classes, structures, and enumerations that work with any type. Example of Generics Generic Function Example Explaination Generic Typealias Generics and Closures Generic Addition Function for Numeric Types Generic Function With Array Elements

Protocol Oriented Programming

Protocol-Oriented Programming (POP) is a programming paradigm in Swift that emphasizes the use of protocols to define shared behaviour and default implementations. It is an alternative to traditional Object-Oriented Programming (OOP) and promotes code reusability, flexibility, and type safety. Introduced by Apple in Swift 2.0, POP leverages Swift’s features like …

Extensions

Extensions in Swift are a powerful feature that allows you to add new functionality to an existing class, struct, enum, or protocol without modifying the original source code. Extensions can add methods, computed properties, initializers, and even conform types to protocols. Syntax Adding Computed Properties Extensions can add computed properties, …

Protocols

Protocols in Swift define a blueprint of methods, properties, and other requirements that a conforming type must implement. They are a cornerstone of protocol-oriented programming, which Swift emphasizes over traditional inheritance. Syntax Conforming to a Protocol A class, struct, or enum can conform to a protocol by implementing all its …

Object Oriented Programming(OOP)

Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects which can contain data (properties) and code (methods). Swift, as a modern programming language, fully supports OOP principles, including encapsulation, inheritance, polymorphism and abstraction. Core Principles of OOP Encapsulation Inheritance 1.Single Inheritance In Swift, a subclass can …