Skip to content

Instantly share code, notes, and snippets.

View devandanger's full-sized avatar

Evan Anger devandanger

View GitHub Profile
//: A UIKit based Playground for presenting user interface
import SwiftUI
import PlaygroundSupport
struct ContentView: View {
var body: some View {
VStack(spacing: 16) {
Text("Hello, SwiftUI!")
.font(.largeTitle)
@devandanger
devandanger / apple_review_extraction.py
Last active June 12, 2025 11:29
app_review_extract
import requests
import jwt
import time
from datetime import datetime, timedelta
import csv
# --- CONFIGURATION ---
ISSUER_ID = ''
KEY_ID = ''
APP_ID = ''
@devandanger
devandanger / ffmpeg
Created December 29, 2021 06:24
ffmpeg recipes
https://web.archive.org/web/20210621172103/https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video
Output one image every second, named out1.png, out2.png, out3.png, etc.
ffmpeg -i input.flv -vf fps=30 out%d.png
30 frames per second
ffmpeg -i input.flv -vf fps=30 out%d.png
Extract portions
ffmpeg -i champlin-vs-blain137.mp4 -ss 00:30:00 -to 00:30:15 -c copy c-vs-b-part1.mp4
@devandanger
devandanger / QRScanner.swift
Last active February 7, 2021 15:38
Working QRScanner.swift in Xcode 10.2.1
import Foundation
import AVFoundation
@objc(QRScanner)
class QRScanner : CDVPlugin, AVCaptureMetadataOutputObjectsDelegate {
class CameraView: UIView {
var videoPreviewLayer:AVCaptureVideoPreviewLayer?
func interfaceOrientationToVideoOrientation(_ orientation : UIInterfaceOrientation) -> AVCaptureVideoOrientation {
@devandanger
devandanger / CacertsExplorer.java
Created June 20, 2019 11:36
CA Certs Explorer
import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
/*
I hate that I had to write java again and its 2019
*/
@devandanger
devandanger / gist:13bd3c356ec2b798bc9619cd59c8e085
Created July 24, 2018 16:43
Option for UT'ing Moya Providers
func testExample() {
let provider = GitHubProvider(requestClosure: { (endpoint, requestResultClosure) in
if let urlRequest = endpoint.urlRequest,
let url = urlRequest.url,
let headers = urlRequest.allHTTPHeaderFields {
XCTAssertEqual(url.absoluteString, "https://github.com")
// map body to object urlRequest.httpBody using ObjectMapper
// or map object to data
XCTAssertEqual(urlRequest.httpBody, Data())
// map the headers as well.
@devandanger
devandanger / gist:90cb761ca6a07cec241647932e7bf1b4
Created August 21, 2017 12:54
Fake VC - Navigation Bridge Class
protocol RoutableIdentifiable: Routable {
var routeIdentifier: RouteElementIdentifier { get set }
}
class NavigationController: UIViewController, UINavigationControllerDelegate {
let rootViewController: UIViewController
private let childNavigationController: UINavigationController
required init(rootViewController: UIViewController) {
@devandanger
devandanger / ARAnalyticsShouldFire-Example
Created September 11, 2014 13:35
ARAnalyticsShouldFire Example
- (void)configureAnalytics {
NSString *propertyID = @"UA-51388820-1";
BOOL (^shouldFireBlock)(id, NSArray*) = ^BOOL (id instance, NSArray *arguments) {
if([instance isKindOfClass:[UINavigationController class]]) {
return NO;
}
NSString *className = NSStringFromClass([instance class]);
if([className hasPrefix:@"GK"]) {