Skip to content

Instantly share code, notes, and snippets.

View batikansosun's full-sized avatar
🏠
Working from home

Batıkan Sosun batikansosun

🏠
Working from home
View GitHub Profile
import CoreModule
import BasketModule
import LoginModule
import PaymentModule
class AppNavigation: NavigationService, ExternalNavigationService {
var navigationController: UINavigationController
var container: DIContainerService
import CoreModule
public protocol LoginNavigationService {
var container: DIContainerService { get set }
var navigationController: UINavigationController? { get set }
func openLoginViewController()
func openPhoneUpdateViewController()
func openBasketViewController()
public protocol NavigationService: ExternalNavigationService {
var navigationController: UINavigationController { get set }
var container: DIContainerService { get set }
func popToRootViewController(animated: Bool)
}
public protocol PresentableView {
func toPresent() -> UIViewController
typealias Factory = (DIContainerService) -> Any
protocol ServiceEntryProtocol: AnyObject{
var factory: Factory { get }
var instance: Any? { get set }
}
final public class ServiceEntry: ServiceEntryProtocol {
var instance: Any?
@batikansosun
batikansosun / Dependency Injection Container in Swift
Created September 1, 2022 07:17
Dependency Injection Container in Swift
protocol UserServiceProtocol {
func fetchUsers()
}
protocol RewardServiceProtocol {
func fetchRewards()
}
final class UserService: UserServiceProtocol {
func fetchUsers() {
{
"aps": {
"timestamp": 1660435557,
"event": "update",
"content-state": {
"courierName": "Adam",
"deliveryTime": 1660435557
}
}
}
//
// DeliveryTrackWidget.swift
// DeliveryTrackWidget
//
// Created by Batikan Sosun on 13.08.2022.
//
import ActivityKit
import WidgetKit
import SwiftUI
await activity.end(dismissalPolicy: .immediate)
let updatedStatus = GroceryDeliveryAppAttributes.LiveDeliveryData(courierName: "Adam",
deliveryTime: .now + 150)
await activity.update(using: updatedStatus)
let attributes = GroceryDeliveryAppAttributes(numberOfGroceyItems: 12)
let contentState = GroceryDeliveryAppAttributes.LiveDeliveryData(courierName: "Mike", deliveryTime: .now + 120)
do {
let _ = try Activity<GroceryDeliveryAppAttributes>.request(
attributes: attributes,
contentState: contentState,
pushType: nil)
} catch (let error) {
print(error.localizedDescription)
}