Skip to content

Instantly share code, notes, and snippets.

@bitwit
bitwit / gist:af3e12304a88f18ccee566540cf25cb0
Last active January 31, 2021 18:55
animation stack change after size class changes
import SwiftUI
final class SizeClassNotifier: ObservableObject {
@Published var currentSizeClass: UserInterfaceSizeClass =
.compact
func updateSizeClass(sizeClass: UserInterfaceSizeClass?) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
self.currentSizeClass = sizeClass ?? .compact
@bitwit
bitwit / Playground.swift
Created December 19, 2020 19:40
Conservation of Mass Jump
import UIKit
import PlaygroundSupport
import SwiftUI
struct ContentView: View {
var jumpAmount: CGFloat {
CGFloat(-time * time + time)
}
var scaleX: CGFloat { 1/scaleY }
@bitwit
bitwit / Int+ARKitMetricConversions.swift
Created August 7, 2018 16:27
Easy metric conversions for ARKit Floats using Int extensions
import ARKit
// Example usage:
// let twentyCentimeters: Float = 20.cm
// let twoMeters: Float = 2.m
// let oneMillimeter: Float = 1.mm
// let extent: float3 = float3(20.cm, 10.cm, 1.m)
extension Int {
var mm: Float {
@bitwit
bitwit / Makefile
Last active December 17, 2015 13:59
Bridging Python and SMILE C++ Libraries For Linux Smile library availiable at: http://genie.sis.pitt.edu/index.php/downloads version used: Linux (x64) / gcc 4.4.5, March 6th 2013
CXX= g++
CXXFILES= pysmilebridge.cpp
CXXINTERMEDIATE= pysmilebridge.o
CXXOUTPUTLIBS= libpysmilebridge.so
CXXFLAGS= -O3 -DNDEBUG -ffast-math -Wall -fPIC
LIBS = -L/path/to/smile/ -lsmile
all: lib
lib:
@bitwit
bitwit / ViewController.h
Created February 4, 2013 01:18
The Objective-C ViewController from my blog entry An iOS5 Ready Native Web App Template http://www.bitwit.ca/blog/an-ios5-ready-native-web-app-template/
#import <UIKit/UIKit.h>
#import "WebViewController.h"
@interface ViewController : WebViewController
@end
@bitwit
bitwit / WebViewController.h
Last active December 12, 2015 03:08
The Objective-C WebViewController from my blog entry An iOS5 Ready Native Web App Template http://www.bitwit.ca/blog/an-ios5-ready-native-web-app-template/
#import <UIKit/UIKit.h>
@class WebViewControllerDelegate;
@interface WebViewController : UIViewController <UIWebViewDelegate>
@property (nonatomic, strong) UIWebView *webView;
@property (nonatomic, strong) WebViewControllerDelegate *functionDelegate;
-(void)loadPageWithURL:(NSString *)url;
-(void)loadPageFromFile:(NSString *)html;
@bitwit
bitwit / index.html
Last active December 12, 2015 03:08
The HTML, CSS and JS from my blog entry An iOS5 Ready Native Web App Template http://www.bitwit.ca/blog/an-ios5-ready-native-web-app-template/
<!doctype html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="style.css">
<script src="jquery-1.6.2.min.js"></script>
<script defer src="script.js"></script>
</head>
<body id="body">
@bitwit
bitwit / WebViewControllerDelegate.h
Last active December 12, 2015 03:08
The Objective-C WebViewControllerDelegate from my blog entry An iOS5 Ready Native Web App Template http://www.bitwit.ca/blog/an-ios5-ready-native-web-app-template/
/**
* WebViewController is responsible for all
* messages that can be used in HTML
*/
@class WebViewController;
@interface WebViewControllerDelegate : NSObject <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
@property (nonatomic, weak) WebViewController *webViewController;
@bitwit
bitwit / gist:4322561
Created December 17, 2012 21:42
iOS Web App apple-touch-start-image meta data for all device possibilities.
<!-- iPhone SPLASHSCREEN-->
<link href="/img/ios/iphone-splash.jpeg" media="screen and (max-device-width: 320px)" rel="apple-touch-startup-image">
<!-- iPhone (Retina) SPLASHSCREEN-->
<link href="/img/ios/iphone-splash@2x.jpeg" media="(device-height: 480px) and (-webkit-min-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
<!-- iPhone 5 SPLASHSCREEN -->
<link href="/img/ios/iphone5-splash.jpeg" media="(device-height: 568px) and (-webkit-min-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
<!-- iPad (portrait) SPLASHSCREEN-->
<link href="/img/ios/ipad-portrait-splash.jpeg" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" rel="apple-touch-startup-image">
<!-- iPad (landscape) SPLASHSCREEN-->
@bitwit
bitwit / BasicMarkdownParserExample.js
Last active November 25, 2015 20:18
A functional javascript approach to a basic markdown parser. Inspired by a real interview question.
var _ = require('underscore')
var lines = [
"#The test",
"###Hello World",
"This is a new paragraph.",
"It has a second line",
"",
"This is my new paragraph"
];