Skip to content

Instantly share code, notes, and snippets.

@geor-kasapidi
geor-kasapidi / Assets.swift
Created June 16, 2021 14:08
Fetch all assets
PHPhotoLibrary.requestAuthorization(for: .readWrite) { status in
if status == .authorized {
var infos: [(CLLocation, Date)] = []
do {
let options = PHFetchOptions()
options.includeHiddenAssets = true
PHAsset.fetchAssets(with: options).enumerateObjects { asset, _, _ in
if let location = asset.location,
let date = asset.creationDate
{
@geor-kasapidi
geor-kasapidi / OOM.swift
Created June 11, 2021 09:12
FOOM logger
private final class AppInfo {
private struct Keys {
static let lastKnownAppVersion = "app_data.last_known_app_version"
static let appWasInBackground = "app_data.app_was_in_background"
static let appWasTerminated = "app_data.app_was_terminated"
}
struct State {
let appVersionIsChanged: Bool
let appWasInBackground: Bool
@geor-kasapidi
geor-kasapidi / classes.txt
Created May 27, 2021 11:24
VNClassifyImageRequest.knownClassifications(forRevision: VNClassifyImageRequestRevision1)
abacus
accordion
acorn
acrobat
adult
adult_cat
agriculture
aircraft
airplane
airport
func testMultiThreadReadWriteRelations() {
TestDB.temporaryContainer(store: DataModels.bookLibrary) { pc in
let group = DispatchGroup()
let range = 1 ... 100
try pc.perform { ctx in
try ctx.insert(BookLibrary.Author(id: .init(), name: "Leo", age: 100))
}
@geor-kasapidi
geor-kasapidi / MetalCapture.swift
Last active December 12, 2021 10:53
Metal capture extension for Alloy
extension MTLCaptureManager {
@discardableResult
func capture<T>(with commandQueue: MTLCommandQueue, _ action: () throws -> T) throws -> T {
let scope = self.makeCaptureScope(commandQueue: commandQueue)
let descriptor = MTLCaptureDescriptor()
descriptor.captureObject = scope
try self.startCapture(with: descriptor)
scope.begin(); defer { scope.end() }
import UIKit
import MediaPlayer
extension Notification.Name {
static let systemVolumeDidChange = Notification.Name(
rawValue: "AVSystemController_SystemVolumeDidChangeNotification"
)
}
class ViewController: UIViewController {
@geor-kasapidi
geor-kasapidi / OSUnfairLock.swift
Last active February 19, 2021 10:55
OSUnfairLock Swift
private final class OSUnfairLock {
private let pointer: os_unfair_lock_t
init() {
self.pointer = .allocate(capacity: 1)
self.pointer.initialize(to: os_unfair_lock())
}
deinit {
self.pointer.deinitialize(count: 1)
@geor-kasapidi
geor-kasapidi / Yoga_package.swift
Created September 19, 2020 17:03
Yoga 1.18 SPM
// umbrella.h
#pragma once
@import Foundation;
#include "../yoga/Yoga.h"
#include "../yoga/YGMacros.h"
#include "../yoga/YGValue.h"
#include "../yoga/YGEnums.h"
import CoreHaptics
protocol HapticFeedback {
func generateFeedback()
}
final class Haptic: HapticFeedback {
private let generator: HapticFeedback
init() {
final class SharedOperation<T, E: Swift.Error> {
typealias Completion = (Result<T, E>) -> Void
private let queue = DispatchQueue(label: "SharedOperation.queue")
private let execute: (@escaping Completion) -> Void
private var completions: [Completion] = []
init(_ execute: @escaping (@escaping Completion) -> Void) {
self.execute = execute