This file contains hidden or 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
// | |
// ImageLoader.swift | |
// | |
// Created by Iurii Iaremenko on 05.02.2021. | |
// | |
import Foundation | |
import Combine | |
import class UIKit.UIImage |
This file contains hidden or 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
// | |
// ConcurrentSafe.swift | |
// | |
// Created by Iurii Iaremenko on 01.02.2021. | |
// | |
import Foundation | |
/// Property wrapper for safe access and modification of the value across multiple thread/queues. | |
@propertyWrapper |
This file contains hidden or 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
// | |
// Logger.swift | |
// | |
// Created by Iurii Iaremenko on 7/1/19. | |
// | |
import Foundation | |
import os | |
import FirebaseCrashlytics |
This file contains hidden or 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
// | |
// UserDefault.swift | |
// | |
// Created by Iurii Iaremenko on 24.10.2019. | |
// | |
import Foundation | |
@propertyWrapper | |
struct UserDefault<T> { | |
let key: String |
This file contains hidden or 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
#if canImport(UIKit) | |
extension View { | |
func dismissKeyboard() { | |
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) | |
} | |
} | |
#endif | |
extension View { |
This file contains hidden or 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
// | |
// Inject.swift | |
// | |
// Created by Iurii Iaremenko on 11.01.2020. | |
// | |
import Foundation | |
@propertyWrapper | |
public class Inject<Value> { |
This file contains hidden or 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
1. Очень крутая книжка по сетям (стек OSI) – Charles Severance “Introduction to Network: How the Internet works” | |
2. URLCache – https://nshipster.com/nsurlcache/ | |
3. Ресёрч HTTP-кеширования с использованием URLCache https://qnoid.com/2016/04/10/A-primer-in-HTTP-caching-and-its-native-support-by-iOS.html | |
4. Анализ доступности сети: | |
* SimplePing – https://developer.apple.com/library/archive/samplecode/SimplePing/Introduction/Intro.html | |
* https://github.com/dustturtle/RealReachability | |
* https://github.com/ankitthakur/SwiftPing | |
* https://github.com/lmirosevic/GBPing | |
* https://github.com/rwbutler/Connectivity | |
* Баг с 2009 года – https://lists.apple.com/archives/macnetworkprog/2009/May/msg00056.html |