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

Singleton vs Dependency Injection in iOS Swift With A Simple Example

 

Singleton

Singleton: - The Singleton is a Design Pattern. That only on single instance of a class. A Singleton can be accessed from anywhere in the program, but it cannot be modified from anywhere. It can only be modified from within the Singleton. It is, therefore, a means to protect globals.

A Singleton class supports inheritance, while a Static class is a sealed class, and therefore cannot be inherited. A Singleton class can inherit from other classes, while a Static class cannot (not even from other static classes).

  • The singleton pattern increases coupling.
Disadvantages of singleton in Swift
  • The global nature leads to dependency hiding.
  • It can be difficult to unit test the code.
  • It can lead to tightly coupled code.
  • If the single Instance of the object becomes corrupted, the entire system is compromised

A singleton class itself is not thread safe. Multiple threads can access the singleton same time and create multiple objects, violating the singleton concept. The singleton may also return a reference to a partially initialised object.

Example: - 

class MySingleton {

static let shared = MySingleton() // Singleton instance

private init() {
// Private initializer to prevent external instantiation
}

func doSomething() {
print("Singleton: Doing something")
}
}

// Usage:
MySingleton.shared.doSomething()

Dependency Injection


Dependency Injection:- Dependency injection reduces coupling  

  • Improves code reusability.
  • Eases the unit testing of applications through mocking/stubbing injected dependencies.
  • Reduces boilerplate code because dependencies are initialized by their injector component.
  • Decouples component logic.
  • Makes it easier to extend the application classes.

Example:- 

protocol MyDependency {
func performAction()
}

class MyDependencyImplementation: MyDependency {
func performAction() {
print("Dependency: Performing an action")
}
}

class MyClass {
let dependency: MyDependency

init(dependency: MyDependency) {
self.dependency = dependency
}

func useDependency() {
dependency.performAction()
}
}

// Usage:
let dependency = MyDependencyImplementation()
let myClass = MyClass(dependency: dependency)
myClass.useDependency()


Reference

Comments