Skip to content

Instantly share code, notes, and snippets.

Avatar

Zev Eisenberg ZevEisenberg

View GitHub Profile
View ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
NicerButton(action: {}, label: { isPressed in
Text("Rabbit Season")
.foregroundColor(Color.white)
.frame(width: 200)
.padding()
.background(Color.blue.brightness(isPressed ? -0.3 : 0))
@ZevEisenberg
ZevEisenberg / TypedMutableCopying.swift
Last active Aug 18, 2021
Adds typed mutable copying to NSMutableCopying conformers
View TypedMutableCopying.swift
import Foundation
protocol TypedMutableCopying {
associatedtype ConstantVersion
associatedtype MutableVersion
var typedCopy: ConstantVersion { get }
var typedMutableCopy: MutableVersion { get }
}
@ZevEisenberg
ZevEisenberg / XCTestCase+Extensions.swift
Last active Oct 4, 2019
Useful additions for common problems with XCTest
View XCTestCase+Extensions.swift
//
// XCTestCase+Unwrapping.swift
// Created by Zev Eisenberg on 6/2/19.
// Feel free to use, share, etc. No need to credit, but a link back to this page would be nice.
//
import XCTest
extension XCTestCase {
@ZevEisenberg
ZevEisenberg / File_1.json
Created Sep 5, 2019
JSON hosting example
View File_1.json
{
"some key": "some value"
}
@ZevEisenberg
ZevEisenberg / RxSignpost.swift
Last active Mar 16, 2022
Use os_signpost for performance logging of transformations in RxSwift
View RxSignpost.swift
// RxSwift signposts
import os.signpost
import RxSwift
func signpost<T>(log: OSLog, name: StaticString, value: String, _ thing: () throws -> T) rethrows -> T {
let signpostID = OSSignpostID(log: log)
os_signpost(
.begin,
@ZevEisenberg
ZevEisenberg / License
Last active Mar 31, 2021
Test lots of values without lots of boilerplate
View License
Copyright 2019 Zev Eisenberg
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
@ZevEisenberg
ZevEisenberg / .lldbinit
Created Sep 12, 2018 — forked from woolsweater/.lldbinit
Break on unsatisfiable constraints and send to wtfautolayout
View .lldbinit
command script import ~/.lldbscripts/break_unsatisfiable.py
@ZevEisenberg
ZevEisenberg / guard.swift
Created Jul 31, 2018
Example Guard indentation
View guard.swift
let foo: Int? = nil
let bar: Int? = nil
let baz: Int? = nil
func x() {
guard
let foo = foo,
let bar = bar,
let baz = baz
else { return }
View SectionedArray.swift
struct SectionedArray<GroupKey, Item> where GroupKey: Comparable & Hashable {
struct Section {
let key: GroupKey
var items: [Item]
}
var sections: [Section]
var count: Int {