This document holds interesting reading material regarding:
- iOS development
- The Swift programming language
- Software development in general
- UI/UX best practices
- Anything related to product development
| // | |
| // DebugDevice.swift | |
| // | |
| // Copyright 2022 • Sidetrack Tech Limited | |
| // | |
| import Foundation | |
| // This must be called on the main-thread. | |
| var isDebugProfileInstalled: Bool { |
| // | |
| // InfiniteScrollChart.swift | |
| // ChartsGallery | |
| // | |
| // Created by beader on 2022/11/3. | |
| // | |
| import SwiftUI | |
| import Charts |
| struct ToggledExampleView_Previews: PreviewProvider { | |
| static var previews: some View { | |
| DebuggingToggledExampleView() | |
| } | |
| } | |
| // MARK: - Toggled Source | |
| protocol ToggleInterface { | |
| associatedtype ValueType |
| # MacOS smartcard | |
| List tokens available in the system | |
| pluginkit -m -p com.apple.ctk-tokens | |
| ex: com.apple.CryptoTokenKit.setoken(1.0) | |
| com.apple.CryptoTokenKit.pivtoken(1.0) |
| import Foundation | |
| import Combine | |
| /// Run a block in the background with a delay and make it cancellable. | |
| /// - Parameters: | |
| /// - delay: Delay in milliseconds before the background work starts | |
| /// - queue: Background queue to use | |
| /// - worker: Worker block to execute on queue | |
| /// - completion: Completion handler executed on main thread. | |
| /// - Returns: AnyCancellable token |
| // | |
| // XCUIElement+Wait.swift | |
| // | |
| // Created by Ryan Paterson on 12/12/2020. | |
| // | |
| import XCTest | |
| extension XCUIElement { | |
| /// The period of time in seconds to wait explicitly for expectations. |
| import Foundation | |
| public struct MockFunc<Input, Output> { | |
| public var parameters: [Input] = [] | |
| public var result: (Input) -> Output = { _ in fatalError() } | |
| public init() {} | |
| public init(result: @escaping (Input) -> Output) { | |
| self.result = result |
| import Combine | |
| import ObjectiveC | |
| import UIKit | |
| private var eventSubjectKey = "viewcontroller_lifecycle_subject" | |
| private var swizzlingPerformed = false | |
| private final class LifecycleSubjectBag: NSObject { | |
| let viewDidLoadSubject = PassthroughSubject<Void, Never>() | |
| let viewWillAppearSubject = PassthroughSubject<Bool, Never>() |