Skip to content

Instantly share code, notes, and snippets.

View benigumocom's full-sized avatar
🏠
🙆

chanzmao benigumocom

🏠
🙆
View GitHub Profile
@benigumocom
benigumocom / LargeData.swift
Last active July 2, 2024 09:51
【SwiftUI】ScrollView + LazyVStack vs Large amounts of data 👉 https://android.benigumo.com/20240627/scrollview-lazyvstack-vs-large-amounts-of-data/
import SwiftUI
import SwiftData
@MainActor @Observable
final class LargeData {
var loadedItems: [Item] = []
var count = 0
private var modelContext: ModelContext!
private var predicate: Predicate<Item>!
import SwiftUI
import SwiftData
@Model
final class Item {
var i: Int
var s: String
init(i: Int, s: String) {
self.i = i
@benigumocom
benigumocom / sample-URLSession.swift
Last active June 13, 2024 04:38
【Swift】URLSession メソッドの使い分け 👉 https://android.benigumo.com/20240613/urlsession/
let url = URL(string: "https://httpbin.org/anything/{anything}")!
let session = URLSession.shared
Task {
let (data, response) = try await URLSession.shared.data(from: url)
print((response as! HTTPURLResponse).statusCode)
print(String(data: data, encoding: .utf8)!)
// 200
@benigumocom
benigumocom / convert_encoding.swift
Last active June 10, 2024 16:55
【Swift】 文字コードの変換 を整理してみた 👉 https://android.benigumo.com/20240611/encoding/
// with:
// FileManageExtensions.swift
// https://gist.github.com/benigumocom/6a8e4506438b5260469c12b1c12c0fb7
do {
let documents = URL.documentsDirectory
let text = "あいうえお"
// convert to data bytes
print(
@benigumocom
benigumocom / FileManageExtensions.swift
Last active June 8, 2024 11:46
【Swift】ファイルやディレクトリ操作するための extension をまずは作った 👉 https://android.benigumo.com/20240608/file-ex/
extension URL {
var exists: Bool {
isFile || isDirectory
}
var isFile: Bool {
(try? resourceValues(forKeys: [.isRegularFileKey]))?.isRegularFile == true
}
var isDirectory: Bool {
@benigumocom
benigumocom / URLEx.swift
Last active June 4, 2024 22:33
【Swift】その URL が ファイル なのか ディレクトリ なのか 存在しないのか 👉 https://android.benigumo.com/20240605/resource-values/
extension URL {
// private var resourceIsDirectory: Bool? {
// (try? resourceValues(forKeys: [.isDirectoryKey]))?.isDirectory
// }
var exists: Bool {
// resourceIsDirectory != nil
// (try? resourceValues(forKeys: [.isDirectoryKey]))?.isDirectory != nil
// (try? resourceValues(forKeys: [.isRegularFileKey]))?.isRegularFile != nil
isFile || isDirectory
@benigumocom
benigumocom / WeatherButton.swift
Last active May 27, 2024 07:56
【SwiftUI】シンプルに HTTPリクエスト でお天気情報取得 👉 https://android.benigumo.com/20240109/url-lines/
import SwiftUI
struct WeatherButton: View {
@State private var text = "GET"
private let url = URL(string: "https://wttr.in/?format=3")!
var body: some View {
Button(text) {
text = "Loading ..."
@benigumocom
benigumocom / TestRounded.swift
Last active May 20, 2024 04:34
【Swift】少数の丸め方あれこれ - rounded() 👉 https://android.benigumo.com/20240520/swift-rounded/
import SwiftUI
struct Chart: View {
var function: (Double) -> Double
var by: Double
private let height = 20.0
private var data: [Double] {
stride(from: -3.0, to: 3.0 + by , by: by)
@benigumocom
benigumocom / TestColorValues.swift
Last active May 21, 2024 00:14
【Swift】Color の RGB + Opacity の数値を求める 👉 https://android.benigumo.com/20240518/color-rgbo/
import SwiftUI
struct TestColorValues: View {
var color: Color
@Environment(\.self) private var environment
private var resolved: Color.Resolved {
color.resolve(in: environment)
}
@benigumocom
benigumocom / TestDragGesture.swift
Last active May 15, 2024 08:36
【SwiftUI】View を ドラッグ して移動 する 👉 https://android.benigumo.com/20240514/drag-view/
import SwiftUI
struct TestDragGesture: View {
@State private var location = CGPoint(x: 150, y: 150)
@State private var startLocation: CGPoint?
var body: some View {
Circle()
.fill(.orange)
.frame(width: 200)