Files
·
SwiftUI
AppStorage, User Defaults 시스템은 작은 데이터를 저장하는데 사용되고 큰 용량의 데이터를 저장하기 위해서는 앱에 데이터를 저장하기 위한 파일을 만들어야한다. 파일들과 딕셔너리들을 관리하기 위해서 FileManager 클래스라는 프레임워크를 제공한다. 이 FileManager 클래스의 한 객체는 앱에 할당되며 그 인스턴스에서 만들고, 삭제하고, 복사할 수 있고 앱에서 사용중인 저장 공간에 파일과 디렉토리를 옮길 수 있다.FileManager 클래스는 다음과 같은 프로퍼티 타입을 제공하여 객체를 참조할 수 있게 한다.default - 이 타입 프로퍼티는 앱의 FileManager 객체를 참조한다. 추가로 FileManager 클래스는 여러 프로퍼티와 메서드들을 제공하여 파일들과 direc..
App Storage
·
SwiftUI
UserDefaults로부터 값을 반영하고 해당 사용자 디폴트의 값이 변경될 때 뷰를 무효화(invalidate)하는 프로퍼티 래퍼 타입이다. AppStorage는 작은 데이터 또는 짧은 String 같은 내용을 저장하는 부분으로 값이 변경되면 뷰에 바로 적용시킨다.AppStorage 프로퍼티 래퍼는 date 구조체를 싫어한다고 한다. 다음 예제 코드는 처음 실행했을 때 시간값을 저장하였다가 앱 종료 후 다시 들어갔을 때 얼마만에 앱을 재실행하는지 화면에 보여주는 코드import SwiftUIstruct ContentView: View { @AppStorage("interval") var interval = Date.timeIntervalSinceReferenceDate @State private..
CryptoKit in SwiftUI - 비밀번호 암호화
·
SwiftUI
A tutorial on Password Encryption 앱을 만들기 위해서 보안은 매우 중요하다. iOS 개발을 하는데 비밀번호를 암호화하여 유저의 데이터를 보호하는 것은 매우 중요하다. Why Encrypt Password?비밀번호를 암호화하는 것은 매우 중요하다. 왜냐면 유저는 앱의 계정을 만들게 되면 전형적으로 사용자는 비밀번호를 쉽게 설정하고 보안이 뚫리게 되면 다른 사람한테 계정에 대한 정보를 바로 들키기 때문이다. 만약 비밀번호가 암호화되지 않았다면 악의적인 사람한테 쉽게 털릴 수 있다. 비밀번호를 암호화하는 것은 공격자가 계정에 대한 정보를 알게 되더라도 사용하는 것을 어렵게 만들기 때문에 중요하다. Chossing an Encryption Algorithm암호화 알고리즘은 매우 많이 ..
Errors - Throwing Errors, Handling Errors, Results
·
SwiftUI
내가 원하는 에러를 직접 만들어 throw 로 해당 에러를 받을 수 있다enum Errors: Error { case OutOfStock}struct Stock { var totalLamps = 5 mutating func sold(amount: Int) throws { if amount > totalLamps { throw Errors.OutOfStock } else { totalLamps = totalLamps - amount } }}var mystock = Stock() 이제 throws 함수를 만들었으면 해당 throw된 error를 받을 수 있어야한다. 아래 do-catch 로 error를 처리할 수 있다. 하지만 catch ..
Image Renderer
·
SwiftUI
ImageRenderer는 SwiftUI 뷰로부터 이미지를 생성하는 객체다. 만약 그래픽 또는 복잡한 뷰를 생성하기 위해서 해당 그래픽 또는 뷰를 다시 사용하기 위해서 다시 생성하는 것보다 파일이나 데이터베이스에 저장하는 것이 더 효율적이다. 이런 상황을 위해서 view를 image로 변환할 수 있다. SwiftUI는 ImageRenderer 를 이런 목적으로 포함시켰다.위에서 말한 Image는 3가지 종류가 있다 UIKit의 UIImage, Core Graphics의 CGImage, AppKit의 NSImage view를 iamge로 변환하기 위해서 먼저 view를 프로퍼티에 저장해야 한다. 아래 코드에서 newPicture에 뷰를 저장한다. 그리고 버튼을 눌렀을 때 ImageRenderer를 사용하여..
Effect (scaleEffect, rotation3DEffect)
·
SwiftUI
scaleEffect는 크기를 결정하는 Effect다..scaleEffect(CGSize(width: roll ? 1.0 : 1.5, height: roll ? 1.0 : 1.5), anchor: .leading)  rotation3DEffect 이란 지정된 축을 중심으로 3차원으로 회전하는 것처럼 뷰의 콘텐츠를 렌더링합니다.angle: 어디로 회전을 할지 결정axis: 세 가지 공간 차원 각각에 대해 명명된 요소가 있는 튜플로 지정된 회전 축.-X축 (수평)을 통해서 뷰를 기울이면 위에서 아래로 회전-Y축 (수직)을 통해 뷰를 기울이면 왼쪽에서 오른쪽으로 회전-Z축 (깊이)를 통해 뷰를 기울이면 왼쪽에서 오른쪽으로 회전anchor: 회전을 수행할 수 있는 뷰 내의 2차원 단위 지점. 기본값은 중심(.c..
ytw_developer
'SwiftUI' 카테고리의 글 목록 (31 Page)