Property, Method
·
SwiftUI
property 는 속성이라면 method 는 행동이다. list.push(1) 처럼 괄호로 끝나면 method, list.count 처럼 없으면 property 라고 할 수 있다. 구조체와 클래스에서는 var 또는 let 을 정의하여 내부적인 값을 저장할 수 있습니다. 이렇게 구조체와 클래스 내부에서 정의된 var 또는 let 을 프로퍼티(Property), 또는 속성이라고 합니다. 함수를 정의하여 특정 기능을 정의할 수 있는데 이를 메서드(Method)라고 합니다.프로퍼티(Property)와  메서드(Method)의 차이는 구조체나 클래스 내부에 정의된다는 것만 차이가 있을 뿐, 일반 변수/상수/함수를 정의하는 것과 문법적으로 동일합니다. 다음은 구조체와 클래스를 정의하고 여기에 프로퍼티와 메서드를 ..
Environment
·
SwiftUI
view의 environment 로부터 값을 읽어오는 프로퍼티 래퍼다. Environment Modifiersenvironment(Object): 이 modifier는 environment에서 관찰 가능한 객체를 읽을 수 있는 environment 프로퍼티를 만든다. 인자로 받은 Object는 view들과 공유하며 변화를 감지할 수 있는 참조 객체다.environment(EnvironmentValues(KeyPath), Value): environment 프로퍼티를 만들어 명시된 key path 을 읽는다. environment는 뷰가 유저의 데이터, database, 앱 상태에 접근할 수 있게 해준다, 하지만 SwiftUI는 environment를 뷰를 구성하는데에도 사용하기도 한다. 다음 SwiftU..
URL
·
SwiftUI
URL은 서버 또는 로컬 파일의 주소와 같이 자원의 위치를 식별하는데 사용된다. Path는 파일에 접근하기 위한 가장 쉬운 방법이지만 저장 시스템에서 파일 위치를 식별하는데에는 무리가 있다. 왜냐면 연습 파일은 주로 단일의 저장공간에 저장되는게 아니기 때문이다. 경로를 찾아서 원하는 파일에 접근하기 위해서는 시간이 걸리기 때문에 이런 이유로 위치를 URLs (Uniform Resource Locator)를 통해서 식별한다. URL은 서버와 통신뿐만 아니라 로컬 자원을 참조하는 것까지 지원한다. URL은 로컬 파일을 참조하는 데 선호되는 방법입니다. 파일에서 데이터를 읽거나 쓰는 대부분의 객체는 파일 참조로 경로 이름 대신 URL을 받아들이는 방법을 가지고 있습니다.  예를 들어, init(contents..
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암호화 알고리즘은 매우 많이 ..
ytw_developer