Skip to content

Instantly share code, notes, and snippets.

View perlguy99's full-sized avatar

Brent Michalski perlguy99

View GitHub Profile
@perlguy99
perlguy99 / CustomPropertyWrappers.md
Created December 9, 2019 16:13
Custom Property Wrappers

Custom Property Wrappers

Many thanks to Paul Hudson!

To demonstrate property wrappers, I want to start with a simple struct that wraps some kind of BinaryInteger value. We’re going to give this thing some custom code when it comes to setting its wrapped value, so that if the new value is below 0 we instead make it exactly 0 so that this struct can never be negative.

Our code would look like this:

struct NonNegative<Value: BinaryInteger> {
 var value: Value
@perlguy99
perlguy99 / .xcodesamplecode.plist
Created December 7, 2019 02:47
Maybe help Xcode render markdown
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array/>
</plist>
@perlguy99
perlguy99 / SwiftUI_Previews.md
Created December 2, 2019 19:37
Fix SwiftUI Previews
@perlguy99
perlguy99 / ImageSaver.swift
Created November 30, 2019 16:04
Image Saver
// ImageSaver.swift
//
// Created by Brent Michalski on 11/30/19.
// Copyright © 2019 Brent Michalski. All rights reserved.
//
import UIKit
class ImageSaver: NSObject {
var successHandler: (() -> Void)?
@perlguy99
perlguy99 / KeyboardAvoiding+ViewModifier.swift
Created November 27, 2019 16:27
KeyboardAvoiding View Modifier
//
// KeyboardAvoiding+ViewModifier.swift
//
// Created by Michalski (US), James B on 11/27/19.
// Copyright © 2019 Brent Michalski. All rights reserved.
//
import SwiftUI
import Combine
@perlguy99
perlguy99 / DismissingKeyboard+ViewModifier.swift
Created November 27, 2019 16:25
Dismissing Keyboard View Modifier
//
// DismissingKeyboard+ViewModifier.swift
//
// Created by Michalski (US), James B on 11/27/19.
// Copyright © 2019 Brent Michalski. All rights reserved.
//
import SwiftUI
struct DismissingKeyboard: ViewModifier {
@perlguy99
perlguy99 / ImagePicker.swift
Last active November 30, 2019 16:04
SwiftUI ImagePicker
//
// ImagePicker.swift
//
// Created by Brent Michalski on 11/25/19.
// Copyright © 2019 Perlguy, Inc. All rights reserved.
//
import SwiftUI
struct ImagePicker: UIViewControllerRepresentable {
@perlguy99
perlguy99 / SwiftUI_Coordinators.md
Created November 26, 2019 14:02
SwiftUI Coordinators
@perlguy99
perlguy99 / Swift_git_ignore.md
Created November 26, 2019 13:40
Swift gitignore
@perlguy99
perlguy99 / SwiftUI_Anyview.md
Last active December 22, 2020 21:36
SwiftUI AnyView vs Group: type erasure in practice

SwiftUI

AnyView vs Group: type erasure in practice

SwiftUI in 100 Days

Key Points

  • Type erasure is the process of hiding the underlying type of some data.
    • This is used often in Swift: we have type erasing wrappers such as AnyHashable and AnySequence, and all they do is act as shells that forward on their operations to whatever they contain, without revealing what the contents are to anything externally.