Skip to content

Instantly share code, notes, and snippets.

import UIKit
/// このプロトコルで画面遷移のインターフェースを共通化
protocol Coordinator {
func start()
}
/// 初期起動経路を管理するクラス
final class AppCoordinator: Coordinator {
// プロパティとしてUIWindowとUINavigationControllerを保持する
@minsOne
minsOne / DataState.swift
Last active September 26, 2023 11:11
SwiftUI DataState
enum DataState<V, E: Error> {
case idle
case initialLoading case reLoading (V)
case retryLoading (E)
case success (V)
case failure(E)
case paging (V)
case pagingFailure(V, E)
}
@YusukeHosonuma
YusukeHosonuma / ContentView.swift
Created August 29, 2023 04:41
SwiftUI: 某エディタの透明度アイコン的な
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
OpacityIcons(content: OpacityIcon1.init)
OpacityIcons(content: OpacityIcon2.init)
}
.padding()
}
@MarcoEidinger
MarcoEidinger / findRequiredReasonAPIUsage.sh
Created August 21, 2023 19:55
A shell script to find if any "required reason API" are used in Swift or Objective-C files within that folder or subfolders
#!/bin/bash
# https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api
searchTerms=(
# File timestamp APIs
"creationDate"
"modificationDate"
"fileModificationDate"
"contentModificationDateKey"
"creationDateKey"
@JRR-OSU
JRR-OSU / CrossFadeAndFlipExample.swift
Last active August 11, 2023 08:27
SwiftUI Crossfade and Flip Shader Example
import SwiftUI
struct DemoView: View {
@State var effectValue: Double
let end = 2.75
init() {
self._effectValue = State(initialValue: end)
@lukepistrol
lukepistrol / TaskTrigger.swift
Last active November 19, 2023 19:32
Attach async tasks to SwiftUI views using a trigger mechanism.
import SwiftUI
struct TaskTrigger<T: Equatable>: Equatable {
fileprivate enum TaskState<S: Equatable>: Equatable {
case inactive
case active(value: S, uniqueId: UUID? = nil)
}
fileprivate var state: TaskState<T> = .inactive
@dkun7944
dkun7944 / ContentView.swift
Created July 31, 2023 03:36
AirDrop iOS 17 Swift.Shader Animation
//
// ContentView.swift
// Airdrop Demo
//
// Created by Daniel Kuntz on 7/30/23.
//
import SwiftUI
struct ContentView: View {
import SwiftUI
// https://gist.github.com/Koshimizu-Takehito/93c5891e89d65eadf2164351ca1f2d76
typealias ChartElement = (name: String, count: Int, color: Color)
struct AnimatedDonutChart: View {
@State private var progress: Double = 0
let data: [ChartElement]
@Koshimizu-Takehito
Koshimizu-Takehito / PhisicsLoadingView.swift
Last active July 22, 2023 03:34
おしゃれなローディングアニメーション
// Thanks to @Ren_yello
// https://twitter.com/ren_yello/status/1681856952090112000?s=61&t=SNv1ZCU_S3Y8TobPv4MBww
import SwiftUI
struct PhisicsLoadingView: View {
@State private var color: CGColor = .black
@State private var angle1: CGFloat = .pi/2
@State private var angle2: CGFloat = .pi/2
@State private var angle3: CGFloat = .pi/2
@renyello
renyello / ProgressRectangle.swift
Created July 20, 2023 06:10
四つの小さな円が正方形の角をサイズを変えながら移動します。
import SwiftUI
struct ProgressRectangle: View {
@State private var index = [0, 1, 2, 3]
@State private var scale: [CGFloat] = [1.0, 0.4, 1.0, 0.4] // Scale for each circle
let colors = [Color("Red"), Color("Green"), Color("Blue"), Color("Yellow")] // Colors for each circle
let minScale: CGFloat = 1.0 // Minimum scale value
let maxScale: CGFloat = 2.0 // Maximum scale value
@State private var opacity = 1.0