Skip to content

Instantly share code, notes, and snippets.

View mrugeshtank's full-sized avatar
🎯
Focusing

Mrugesh Tank mrugeshtank

🎯
Focusing
View GitHub Profile
@mrugeshtank
mrugeshtank / ModelManager.swift
Created December 31, 2022 05:36
associatedtype in swift explanation with example
protocol ModelManager {
associatedtype NewModel
associatedtype Collection: Swift.Collection where Collection.Element == NewModel
associatedtype Query
func models(matching query: Query) -> Collection
}
import Foundation
struct Feed: Decodable {
}
class FeedViewModel {
let service: FeedProviding
var feed: Feed?
var onFeedUpdate: () -> Void = {}
@mrugeshtank
mrugeshtank / webcrypto-examples.md
Created July 22, 2022 05:54 — forked from pedrouid/webcrypto-examples.md
Web Cryptography API Examples
@mrugeshtank
mrugeshtank / Makefile
Created July 15, 2022 12:29 — forked from uhooi/Makefile
Makefile for iOS App development
PRODUCT_NAME := Foo
SCHEME_NAME := ${PRODUCT_NAME}
WORKSPACE_NAME := ${PRODUCT_NAME}.xcworkspace
UI_TESTS_TARGET_NAME := ${PRODUCT_NAME}UITests
TEST_SDK := iphonesimulator
TEST_CONFIGURATION := Debug
TEST_PLATFORM := iOS Simulator
TEST_DEVICE ?= iPhone 11 Pro Max
TEST_OS ?= 13.3
@mrugeshtank
mrugeshtank / addObservers.swift
Created July 8, 2022 07:52 — forked from netgfx/addObservers.swift
Add observers to AVPlayer
// listening for current item change
self.audioQueueObserver = self.playerQueue?.observe(\.currentItem, options: [.new]) {
[weak self] (player, _) in
print("media item changed...")
}
// listening for current item status change
self.audioQueueStatusObserver = self.playerQueue?.currentItem?.observe(\.status, options: [.new, .old], changeHandler: {
(playerItem, change) in
if playerItem.status == .readyToPlay {
@mrugeshtank
mrugeshtank / Font+Autoregistering.swift
Last active May 22, 2022 20:35 — forked from mackoj/Font+Autoregistering.swift
This will allow you to load font that are resources in a SPM module
import Foundation
import UIKit
public struct Resource {
var name: String
var fileExtension: String
var url: URL? {
Bundle.module.url(forResource: name, withExtension: fileExtension)
}
}
extension UserDefaults {
subscript<T>(key: String) -> T? {
get {
return value(forKey: key) as? T
}
set {
set(newValue, forKey: key)
}
}
@mrugeshtank
mrugeshtank / ConstraintsExtesnions.swift
Created February 12, 2020 10:43
extension for constraints for applying programmatically in swift 5.1
extension UIView {
func addSubviewsUsingAutoLayout(_ views: UIView ...) {
subviews.forEach {
self.addSubview($0)
$0.translatesAutoresizingMaskIntoConstraints = false
}
}
}
@objc extension NSLayoutAnchor {
import Foundation
class KeyboardAppearListener {
private var showKeyboard: NotificationToken?
private var hideKeyboard: NotificationToken?
private weak var viewController: UIViewController?
private var windowSafeArea: CGFloat = 0
private var windowsSafeAreaWereAdded = false