Skip to main content

Around2Me – Instantly Discover Nearby Essentials

In today’s fast-paced world, finding what you need — exactly when you need it — should be effortless. That’s where Around2Me comes in. Whether you're navigating a new city, running errands, or just looking for a bite nearby, Around2Me helps you instantly find nearby essentials like ATMs, restaurants, hospitals, gas stations , and much more. Around2Me 🚀 What Makes Around2Me Different? Unlike many location-based apps that are bloated with unnecessary features or force users to sign up, Around2Me is lightweight, private, and instant . Here's how: 📍 Location-Based Discovery The app instantly detects your current location and shows you relevant nearby places — from pharmacies to petrol pumps, cafes to banks. 🗺️ Map Integration Tap any place to view it on the map and get turn-by-turn directions in seconds. 🧩 Clean Categories Looking for something specific? Use quick-access filters like Hospitals , ATMs , Coffee Shops , or Parking . 🔐 No Signups, No Data Collection ...

Dependency Injection swift with constructor injection or property injection

Dependency Injection 

Depandency Injection

Dependency injection in swift is a design pattern achieved by designing your code in a way that your objects or functions receive objects that they depend on, instead of creating their own and avoid loosely coupled 

We are going to explore Example such as 

1. Constructor injection 

2. Property injection 

These two are the types of dependency injection that are used most of the time in swift programming language and if you use them during ios development your code program will have no hidden dependency. This swift Example has easy to understand dependency injection concept. 

This Example Class Event has Hidden Dependency of HttpClient Create in function object internal. Only getEventRecord function have know Dependency HttpClient. let client: HttpClient  = HttpClient() is a hidden Dependency

        

        import Foundation

        import UIKit

        import PlaygroundSupport


        PlaygroundPage.current.needsIndefiniteExecution = true


        //MARK: - Depandency Injection


        struct ApiUrl {

            static let getUrl = "https://reqres.in/api/users?page=2"

        }


        class HttpClient {

            func getDataResponse(urlURLcompletionHandler@escaping(_ dataData?) -> Void){

                URLSession.shared.dataTask(with: url) { dataResponse, urlResponse, error in

                    completionHandler(dataResponse)

                }.resume()

            }

        }


        class Event {

            func getEventRecord(){


                let client: HttpClient  = HttpClient() //Loose coupling


                client.getDataResponse(url: URL(string: ApiUrl.getUrl)!) { responseData in

                    if responseData?.count != 0{

                        print("Response Data ===>  \(responseData?.count ?? 0)")

                    }

                }

            }

        }

            

        let event = Event()

        event.getEventRecord()


        //MARK: -  Output With out Depandency Injection with //Loose coupling

        //Response Data ===>  1030




1 Dependency Injection Property injection 

Now Change With class property of HttpClient is option

        

            class Event {

            var client: HttpClient? = nil

            func getEventRecord(){

                client?.getDataResponse(url: URL(string: ApiUrl.getUrl)!) { responseData in

                    if responseData?.count != 0{

                        print("Response Data ===>  \(responseData?.count ?? 0)")

                    }

                }

            }

        }

            

        let event = Event()

        event.client = HttpClient()

        event.getEventRecord()



1 Dependency Injection Constructor injection 

Now Change With Class Event Constructor init of HttpClient 

        

class Event {

            var client: HttpClient? = nil

            init(_ client: HttpClient){

                self.client = client

            }

            func getEventRecord(){

                client?.getDataResponse(url: URL(string: ApiUrl.getUrl)!) { responseData in

                    if responseData?.count != 0{

                        print("Response Data ===>  \(responseData?.count ?? 0)")

                    }

                }

            }

        }

            

       let event = Event(HttpClient())

       event.getEventRecord()











Comments