Skip to content

Instantly share code, notes, and snippets.

View Rsych's full-sized avatar
🙈
I may be slow to respond.

J. W. Kim Rsych

🙈
I may be slow to respond.
View GitHub Profile
@Rsych
Rsych / FilemanagerBundle.swift
Created October 30, 2021 16:01
Filemanager Bundle 1
extension FileManager {
func documentDirectory() -> URL {
return FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
}
class func libraryDirectory() -> URL {
return try! FileManager.default.url(for: .libraryDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
}
}
@Rsych
Rsych / FilemanagerContent1.swift
Created October 30, 2021 15:59
Writing Data using Filemanager default
// MARK: - Body
var body: some View {
Text("Tap here to check")
.onTapGesture {
let str = "Test Message"
let url = self.getDocumentsDirectory().appendingPathComponent("message.txt")
do {
try str.write(to: url, atomically: true, encoding: .utf8)
let input = try String(contentsOf: url)
@Rsych
Rsych / getDocumentsDirectory.swift
Created October 30, 2021 15:57
WritingData contentView
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
} //: get Documents directory func
let users = [
User(firstName: "Arnold", lastName: "Igh"),
User(firstName: "Ryan", lastName: "Fgc"),
User(firstName: "None", lastName: "Abc")
].sorted() // after operator overloaded, we can use .sorted()
// MARK: - Body
var body: some View {
List(users) { user in
@Rsych
Rsych / ComparableStruct.swift
Created October 30, 2021 15:14
Custom comparable type
struct User: Identifiable, Comparable {
static func < (lhs: User, rhs: User) -> Bool {
lhs.lastName < rhs.lastName
}
let id = UUID()
let firstName: String
let lastName: String
}
@Rsych
Rsych / ImageSaver.swift
Created October 29, 2021 14:47
ImageSaver model
//
// ImageSaver.swift
// Instafilter
//
// Created by Ryan J. W. Kim on 2021/10/29.
//
import UIKit
class ImageSaver: NSObject {
@Rsych
Rsych / adaptMultiFilter.swift
Created October 29, 2021 14:34
Adapting to multiple image filters by config some of applyProcess
// change it
@State var currentFilter: CIFilter = CIFilter.sepiaTone()
// change applyProcessing and add setFilter func
func applyProcessing() {
// adapting to each filter params to safely workaround with input param
let inputKeys = currentFilter.inputKeys
if inputKeys.contains(kCIInputIntensityKey) { currentFilter.setValue(filterIntensity, forKey: kCIInputIntensityKey) }
if inputKeys.contains(kCIInputRadiusKey) { currentFilter.setValue(filterIntensity * 200, forKey: kCIInputRadiusKey) }
@Rsych
Rsych / MultipleActionSheet.swift
Created October 29, 2021 14:13
Multiple ActionSheet (.confirmationDialog in iOS15)
struct MultipleActionSheet: View {
// MARK: - Properties
// alert for alert , actionSheet for actionSheet. They are similar in many functions
@State private var showingActionSheet = false
@State private var backgroundColor = Color.white
// MARK: - Body
var body: some View {
Text("Touch here to change color")
.frame(width: 300, height: 300)
@Rsych
Rsych / AsyncImage.swift
Created October 29, 2021 13:11
AsyncImage load
struct SwiftUIView: View {
var body: some View {
AsyncImage(url: URL(string: "https://stackoverflow.design/assets/img/logos/so/logo-stackoverflow.png")) { image in
image.resizable()
.scaledToFit()
} placeholder: {
ProgressView()
}
.frame(width: 200, height: 200)
}
@Rsych
Rsych / ImageFilterSlide.swift
Created October 29, 2021 12:29
ImageFIlter with slide
import CoreImage
import CoreImage.CIFilterBuiltins
import SwiftUI
struct ContentView: View {
// MARK: - Properties
@State private var image: Image?
@State private var filterIntensity = 0.5
@State private var showingImagePicker = false