Skip to content

Instantly share code, notes, and snippets.

View jellybeansoup's full-sized avatar

Daniel Farrelly jellybeansoup

View GitHub Profile
import Foundation
actor SixSidedDie {
struct Environment: Sendable {
var doTheThing: @Sendable (_ range: ClosedRange<Int>) -> Int
}
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
SYMBOLICATE="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash"
for f in "$@"
do
SRCNAME=$(echo $(basename "${f}"))
SRCPATH=$(echo $(dirname "${f}"))
DSTPATH="${SRCPATH}/${SRCNAME%.*}.symbolicated.ips"
@jellybeansoup
jellybeansoup / AppDelegate.swift
Created January 23, 2018 05:39
Preloading App Data for Screenshots
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
prepareForTestingUI()
// Handle the actual launch of your application
}
private func prepareForTestingUI() {
guard let contentsURL = Bundle.main.url(forResource: "UITests", withExtension: "xcappdata")?.appendingPathComponent("AppData") else {
return
}
@jellybeansoup
jellybeansoup / TextViewDidChangeSelection.swift
Created August 15, 2017 05:39
textViewDidChangeSelection(_:)
// Exists inside of a scrollview subclass containing an "expanding" textview that lives underneath other content.
private var previousSelection: CGRect?
func textViewDidChangeSelection(_ textView: UITextView) {
guard textView.isFirstResponder else {
return
}
var selection = textView.layoutManager.boundingRect(forGlyphRange: textView.selectedRange, in: textView.textContainer).offsetBy(dx: insets.left, dy: insets.top)

Keybase proof

I hereby claim:

  • I am jellybeansoup on github.
  • I am jellybeansoup (https://keybase.io/jellybeansoup) on keybase.
  • I have a public key whose fingerprint is EEC8 CE91 DF6B 324F C28D ACAA E53E 0BCA FCDB 7881

To claim this, I am signing this object:

@jellybeansoup
jellybeansoup / example.json
Last active September 6, 2015 00:08
Example JSON for Mobile Couch e65
[
{
"key": "jellyandbean",
"title": "Jelly and Bean",
"tagline": "A weekly podcast about TV, movies, games and technology.",
"description": "Do you like tech? Games? TV? Movies? Well DANG. We have so much in common already! Jelly and Bean are two super pals who like to talk about all of the aforementioned topics (and more, probably), resulting in a nice little peek into the world of geeks, all in the form of a delicious weekly podcast that can be shoved into your ears thanks to the magic of sound waves!",
"archived": true,
"explicit": false,
"keywords": [
"jelly n bean",
@jellybeansoup
jellybeansoup / update-version.sh
Last active June 23, 2021 08:44
Script for Incrementing Version Numbers
#!/bin/bash
# Link: <https://gist.github.com/jellybeansoup/db7b24fb4c7ed44030f4>
#
# A command-line script for incrementing build numbers for all known targets in an Xcode project.
#
# This script has two main goals: firstly, to ensure that all the targets in a project have the
# same CFBundleVersion and CFBundleShortVersionString values. This is because mismatched values
# can cause a warning when submitting to the App Store. Secondly, to ensure that the build number
# is incremented appropriately when git has changes.
#
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import "StaticTables.h"
@interface StaticTablesDataSourceTests : XCTestCase
@end
@implementation StaticTablesDataSourceTests
#pragma mark - View life cycle
- (void)viewDidLoad {
[super viewDidLoad];
[_collectionView registerClass:[JSMRefreshViewCell class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"SearchViewRefresh"];
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section {
// If we have more results to fetch
@jellybeansoup
jellybeansoup / new.m
Last active August 29, 2015 14:06
Grid cell size calculator.
// Get the view's actual pixel width
CGFloat pixelWidth = self.collectionView.frame.size.width * UIScreen.mainScreen.scale;
// Maximum cells per row
CGFloat maxCells = ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) ? 10.0 : 5.0;
// Determine a cell width
CGFloat cellWidth = 0.0;
CGFloat cellSpacing = 2.0;
for( CGFloat i = cellSpacing; i <= 4; i++ ) {