Skip to content

Instantly share code, notes, and snippets.

View eraser3031's full-sized avatar
๐ŸŒ
Working from everywhere

Yaehoon Kim eraser3031

๐ŸŒ
Working from everywhere
  • Hanam
View GitHub Profile
#include <metal_stdlib>
#include <SwiftUI/SwiftUI.h>
using namespace metal;
// ็”ป้ขใฎๆ›ฒ้ขๆญชใฟใ‚’้ฉ็”จใ™ใ‚‹้–ขๆ•ฐ
// ใ“ใฎ้–ขๆ•ฐใฏใ€CRTใƒขใƒ‹ใ‚ฟใƒผใฎๆ›ฒ้ขใ‚ฌใƒฉใ‚นใซใ‚ˆใ‚‹็”ปๅƒใฎๆญชใฟใ‚’ใ‚ทใƒŸใƒฅใƒฌใƒผใƒˆใ—ใพใ™ใ€‚
// UVๅบงๆจ™๏ผˆ0.0ใ€œ1.0ใฎๆญฃ่ฆๅŒ–ๅบงๆจ™๏ผ‰ใ‚’ๅ…ฅๅŠ›ใจใ—ใ€ไธญๅคฎใ‹ใ‚‰ใฎ่ท้›ขใซๅŸบใฅใ„ใฆ
// ใƒใƒฌใƒซๆญชใฟ๏ผˆbarrel distortion๏ผ‰ใ‚’้ฉ็”จใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€็”ป้ขใฎ็ซฏใŒ
// ๅค–ๅดใซ่†จๅผตใ™ใ‚‹ใ‚ˆใ†ใชๅŠนๆžœใŒ็”Ÿใพใ‚Œใ€ใƒฌใƒˆใƒญใชCRTใฎ่ฆ–่ฆšใ‚’ๅ†็พใ—ใพใ™ใ€‚
// - Parameters:
@samhenrigold
samhenrigold / gist:5b88f12283513d8808d8cc9b65bc47ee
Last active June 3, 2025 13:04
`UIView.SystemAnimation.delete` demo playground
/// Video demo: https://hachyderm.io/@samhenrigold/114359529882977822
import UIKit
import PlaygroundSupport
final class DeleteDemoVC: UIViewController {
private let stack = UIStackView()
override func viewDidLoad() {
super.viewDidLoad()
@juliensagot
juliensagot / VariableBlurView.swift
Last active September 22, 2025 06:52
SwiftUI variable blur view
import Foundation
import SwiftUI
import UIKit
extension UIBlurEffect {
public static func variableBlurEffect(radius: Double, imageMask: UIImage) -> UIBlurEffect? {
let methodType = (@convention(c) (AnyClass, Selector, Double, UIImage) -> UIBlurEffect).self
let selectorName = ["imageMask:", "effectWithVariableBlurRadius:"].reversed().joined()
let selector = NSSelectorFromString(selectorName)
@godrm
godrm / swift_api_guideline.md
Last active July 14, 2025 15:44
์Šค์œ„ํ”„ํŠธ API ๊ฐ€์ด๋“œ๋ผ์ธ

1. ์Šคํƒ€์ผ/๋ฌธ๋ฒ• ๋ฆฌ๋ทฐ

1-1 ์Šค์œ„ํ”„ํŠธ API ๋””์ž์ธ ๊ฐ€์ด๋“œ๋ผ์ธ

https://swift.org/documentation/api-design-guidelines/

  • ์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ์ค€์œผ๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ง€ํ–ฅ์ ์ด๋‹ค. ๋ฉ”์†Œ๋“œ๋‚˜ ํ”„๋กœํผํ‹ฐ ๊ฐ™์€ ๊ฐœ๋ฐœ ์š”์†Œ๋Š” ํ•œ ๋ฒˆ๋งŒ ์„ ์–ธํ•˜๊ณ  ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. API๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ๋ช…ํ™•ํ•˜๊ณ  ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์„ค๊ณ„๋ฅผ ๊ฒ€์ฆํ•  ๋•Œ ์„ ์–ธ ๋ถ€๋ถ„์„ ์ฝ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ค. ๊ทธ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋งฅ๋ฝ์— ๋งž๊ณ  ๋ช…ํ™•ํ•œ ์ง€ ๋Š˜ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ช…ํ™•ํ•œ ํ‘œํ˜„์ด ์••์ถ•ํ•œ ๊ฐ„๊ฒฐ์„ฑ๋ณด๋‹ค ๋” ์ค‘์š”ํ•˜๋‹ค. ์Šค์œ„ํ”„ํŠธ ์ฝ”๋“œ๋Š” ์••์ถ•ํ•ด์„œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹จ์ง€ ๊ธ€์ž์ˆ˜๋ฅผ ์ค„์—ฌ์„œ ๊ฐ€์žฅ ์งง์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒŒ ๋ชฉํ‘œ๋Š” ์•„๋‹ˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐ์„ฑ์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ˜๋ณต์ ์œผ๋กœ ์žฌ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ(boilerplate)๋ฅผ ์ค„์ด๋Š” ๊ธฐ๋Šฅ๊ณผ ๊ฐ•ํ•œ ํƒ€์ž… ์‹œ์Šคํ…œ์˜ ๋ถ€์ˆ˜ํšจ๊ณผ๋กœ ๋“œ๋Ÿฌ๋‚  ๋ฟ์ด๋‹ค.