This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
enum Log { | |
enum LogLevel { | |
case info | |
case warning | |
case error | |
fileprivate var prefix: String { | |
switch self { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protocol AnalyticsProvider { | |
func sendAnalyticsEvent(named name: String, metadata: [String : Any]?) | |
} | |
import FirebaseAnalytics | |
struct FirebaseAnalyticsProvider: AnalyticsProvider { | |
func sendAnalyticsEvent(named name: String, metadata: [String : Any]?) { | |
Analytics.logEvent(name, parameters: metadata) | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public protocol Notificationable { | |
static var alarmsCache: [String: TimerSound] { get } | |
static var notificationCenter: UNUserNotificationCenter { get } | |
static func notificationRequest() | |
static func checkUsersSettings(completion: @escaping (Bool) -> ()) | |
static func scheduleNotification(alarm: Alarm, interval: TimeInterval) | |
static func removeNotification(id: String) | |
static func removeAllPendingNotifications() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************* | |
Исторически, как, наверное, и многие новички, приходящие в мир iOS (и не только), основным моим приоритетом | |
было выстраивание архитектуры партерном MVC. С появлением разного рода проектов и поиска решения разных задач, | |
приходилось искать более гибкие и развернутые решения. Таким образом были рассмотрены варианты: | |
MVC + Coordinator - подход разгружает часть логики «С» (контроллера), но, в целом, не упрощает пути реализации и не | |
добавляет читаемости коду. Сверх нагруженность модуля остается. Дополнительные ресурсы на построение класса координатора, | |
в большинстве случаев, не приносят ожидаемой выгоды. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Swizzling | |
extension NSObject { | |
class func swizzleMethods(origSelector: Selector, withSelector: Selector, | |
forClass: AnyClass) { | |
let originalMethod = class_getInstanceMethod(forClass, origSelector) | |
let swizzledMethod = class_getInstanceMethod(forClass, withSelector) | |
method_exchangeImplementations(originalMethod!, swizzledMethod!) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[{"uid":"CB15904A-3D73-4AA5-8F71-8A90B4972B05","autoRemoveDate":0,"color":{"B":0,"A":1,"G":0.14901960784313725,"R":1},"content":"222222","title":"11111"}] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let lock = NSLock() | |
var counter: Int = 0 { | |
didSet{ | |
print("Counter value is \(counter)") | |
} | |
} | |
let thrd1 = Thread { | |
for _ in 0..<1000 { | |
lock.lock() | |
let temp = counter + 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import PlaygroundSupport | |
PlaygroundPage.current.needsIndefiniteExecution = true | |
// text | |
let quote = "Haters gonna hate" | |
// font | |
let font = UIFont.systemFont(ofSize: 72) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
protocol Currency { | |
static var code: String { get } | |
static var factor: NSDecimalNumber { get } | |
} | |
enum USD: Currency { | |
static let code = "USD" | |
static let factor: NSDecimalNumber = 1.0 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
// Binary search using simple function | |
func binSearch (list: [Int], value: Int) -> Int?{ | |
if !list.isEmpty{ | |
var indexMin = list.startIndex | |
var indexMax = list.endIndex-1 | |
while indexMin <= indexMax{ |
NewerOlder