Skip to content

Instantly share code, notes, and snippets.

@0si43
0si43 / AlertModifier.swift
Created June 12, 2025 04:49
SwiftUI Alert & Loading
import SwiftUI
public struct AlertModifier: ViewModifier {
@Binding var showAlert: Bool
var error: Error?
public func body(content: Content) -> some View {
content
.alert("", isPresented: $showAlert) {
Button("Close", role: .cancel) {}
@0si43
0si43 / FailureView.swift
Created May 29, 2022 02:51
@Stateの挙動を調べた
import SwiftUI
struct FailureView: View {
@State var isShowSheet = false
@State var shareData: String?
var body: some View {
Button("Change(Fail)") {
shareData = "Show this message"
isShowSheet = true
@0si43
0si43 / EnumHashValueTest.swift
Created April 26, 2022 07:59
Tested enum hash value specification: multi associated value effected its results
import UIKit
enum Temp {
case one
}
enum Number: Int {
case one
}
@0si43
0si43 / gist:6ddfcf213f8804e918857b98b181ce44
Created March 24, 2022 09:29
排他で怒られたエラー
// Thread 1: Simultaneous accesses to 0x7fcf738afc10, but modification requires exclusive access 
@0si43
0si43 / setContentCompressionResistancePriority.swift
Created March 17, 2022 03:41
AutoLayoutの中で元々持ってるサイズの優先度を変えられる。調べてまとめたい
let button = UIButton(type: .custom)
button.setContentCompressionResistancePriority(.required, for: .horizontal)
// (参考)
// https://medium.com/eureka-engineering/ios%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E5%BF%85%E8%A6%8B-ios%E3%81%AE%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%81%A7%E6%8A%BC%E3%81%95%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%81%93%E3%81%A8-%E7%B7%8F%E9%9B%86%E7%B7%A8-b25342566ccc
// https://qiita.com/shiz/items/523e3741899e9607c26f
@0si43
0si43 / UNAuthorizationStatusMeaning.swift
Last active March 16, 2022 01:52
iOSの通知許可ステータス
UNUserNotificationCenter.current().getNotificationSettings { (settings) in
switch settings.authorizationStatus {
case .notDetermined:
// まだ通知許可を求めていない。初期状態
case .denied:
// 通知を拒否
case .authorized:
// 通知を許可
case .provisional:
// iOS 12から導入されたProvisional Authorization
@0si43
0si43 / SomeStore.swift
Created March 14, 2022 06:20
UserDefaultsにDIするやつ
final class SomeStore {
static let key = "xxx"
private let userDefaults: UserDefaults
init(userDefaults: UserDefaults = .standard) {
self.userDefaults = userDefaults
}
func set(some: String) {
userDefaults.set(some, forKey: Self.key)
@0si43
0si43 / SwiftArrayInsert.swift
Created February 4, 2022 08:46
insertの挙動を試したやつ
import UIKit
// official document
// https://developer.apple.com/documentation/swift/array/3126951-insert
// safe!
var array = [0, 1, 2, 3, 4, 5, 6]
array.insert(7, at: 7)
print(array)
@0si43
0si43 / size.swift
Created January 11, 2022 03:32
AutoLayout適用後のサイズを取得する
let size = systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
@0si43
0si43 / info.plist
Created January 6, 2022 01:47
iPhone/iPadで端末の回転を制御する
// 基本的にはinfo.plistで設定できる
//
// iPadだけで別に設定することも可
// https://developer.apple.com/documentation/uikit/uiviewcontroller/1621435-supportedinterfaceorientations
// Supported interface orientations
// Supported interface orientations (iPad)