Skip to content

Instantly share code, notes, and snippets.

View codeactual's full-sized avatar

David Smith codeactual

  • Found Apparatus
  • Portland, OR
View GitHub Profile
@codeactual
codeactual / HasRootNavigationController.swift
Created November 20, 2021 16:13 — forked from michaelhenry/HasRootNavigationController.swift
UINavigationController in swiftUI.
import SwiftUI
import UIKit
protocol HasRootNavigationController {
var rootVC:UINavigationController? { get }
func push<Content:View>(view: Content, animated:Bool)
func setRootNavigation<Content:View>(views:[Content], animated:Bool)
func pop(animated: Bool)
func popToRoot(animated: Bool)
@codeactual
codeactual / PreviewDevice+Devices.swift
Created November 28, 2021 13:07 — forked from BrentMifsud/PreviewDevice+Devices.swift
Extension on PreviewDevice that includes all available devices
import SwiftUI
/// Static properties for all preview devices.
///
/// Usage:
///
/// ```swift
/// struct TestView_Previews: PreviewProvider {
/// static var previews: some View {
/// Group {
import SwiftUI
struct ContentView: View {
@State var horizontal: Bool = true
@Namespace var namespace
var body: some View {
VStack(spacing: 40) {
if horizontal {
HStack { items }
@codeactual
codeactual / CoreDataViewModelArchitecture.swift
Created December 19, 2021 18:40 — forked from ramzesenok/CoreDataViewModelArchitecture.swift
My attempt to build a reusable ViewModel that uses CoreData as its persistence store
import Combine
import SwiftUI
import CoreData
class CoreDataViewModel: NSObject, ObservableObject, NSFetchedResultsControllerDelegate {
let context: NSManagedObjectContext
private var controllerUpdates = [NSObject: CurrentValueSubject<[NSFetchRequestResult], Never>]()
init(context: NSManagedObjectContext) {
self.context = context
@codeactual
codeactual / StreamReader.swift
Created January 4, 2022 19:11 — forked from klgraham/StreamReader.swift
A Swift class to read a text file line by line, without loading the entire file into memory
// Usage:
/*
if let aStreamReader = StreamReader(path: "/path/to/file") {
defer {
aStreamReader.close()
}
while let line = aStreamReader.nextLine() {
print(line)
}
}
@codeactual
codeactual / PomodoroPicker.swift
Created January 11, 2022 14:11 — forked from dmr121/PomodoroPicker.swift
SwiftUI - Snapping horizontal scrolling pomodoro picker
//
// PomodoroPicker.swift
// pomodoro
//
// Created by David Rozmajzl on 1/1/22.
//
import SwiftUI
struct PomodoroPicker<Content, Item: Hashable>: View where Content: View {
//
// RemindersAppIcon.swift
// RemindersAppIcon
//
// Created by David on 1/5/22.
//
import SwiftUI
struct RemindersAppIcon: View {
@codeactual
codeactual / testColorScheme.swift
Created January 17, 2022 18:06 — forked from gavinjerman/testColorScheme.swift
Example code showing how to set color scheme in SwiftUI app using code from https://github.com/writefreely/writefreely-swiftui-multiplatform
import SwiftUI
@main
struct testColorSchemeApp: App {
@StateObject private var appearanceManager = AppearanceManager()
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(appearanceManager)
extension Error {
var code: Int { return (self as NSError).code }
var domain: String { return (self as NSError).domain }
var userInfo: [String:Any] { return (self as NSError).userInfo }
func timeAfterWhichToRetry(retryCount: Int) -> TimeInterval? {
// CloudKit suggests us retry too often, so slow us down as we retry a lot, up to 5 minutes
if let suggestedTimeout = suggestedTimeAfterWhichToRetry {
if suggestedTimeAfterWhichToRetry == 0 {
return 0
@codeactual
codeactual / IceCream.swift
Created February 7, 2022 14:37 — forked from christianselig/IceCream.swift
Example code, simply throw this into a view controller from a sample project.
import UIKit
struct IceCream {
let title: String
let icon: UIImage
}
struct AppSettings {
static var fontSize = 17.0
}