여러 View 에서 사용될 State 를 한데 저장해 놓고 쓸 수 있는 기능.매 초마다 숫자가 1씩 늘어나는 어플리케이션을 만들어보자. 어플리케이션에는 두개의 View가 있고(ContentView, SecondView), 두개의 View에서 나타나는 숫자는 같아야 한다
SwiftUI 프로젝트에서 Editor - Canvas 를 클릭하면 어플리케이션의 프리뷰를 볼 수 있다.다음과 같이 디바이스 이름이 담긴 array 를 만들어 놓고 ForEach 구문과 클로저 표현식으로 여러 프리뷰를 동시에 생성한다.이때 디바이스 이름들은 맥 터미널에
Xcode SwiftUI 프로젝트를 만들때 디폴트로 생기는 파일들다음 그림은 단일 윈도우 앱의 계층구조이다.다음은 다중 윈도우 앱 계층구조이다. AppDelegate는 단 하나만 있지만 SceneDelegate 는 각 화면마다 갖고 있다.모든 iOS 앱은 이벤트 처리와
UIViewRepresentable 또는 UIViewControllerRepresentable 프로토콜을 준수한느 타입을 만듦으로써 UIKit 요소를 SwiftUI에 추가한다.SwiftUI는 UIKit 요소의 라이프 사이클을 관리하고 적절한 때에 업데이트 해준다.Pag
여러개의 행을 표현하기 위한 뷰. 뷰 빌더의 제약때문에, 정적 컨텐츠 표현시 중괄호 {} 안에 10개 넘는 뷰를 집어넣으면 에러가 뜬다.이때 List() 안에 들어갈 수 있는 범위 연산자는 Half Open Range 만 들어갈 수 있다.또는 RandomAccessCo
XCode에서 VStack 의 definition 을 보면 @ViewBuilder 라고 적힌 Attribute 를 볼 수 있다.뷰 빌더는 함수 빌더를 이용해 만들어진 내장 swift DSL이다. 뷰 생성시 전달받은 함수를 통해 하나 이상의 자식 뷰를 만드는데 사용된다.
Model 과 View 가 서로 독립적이지 않는다는 문제점이 있다.어플리케이션 규모가 커지면 관리가 어려워짐.Model 과 View 가 서로 독립적이고, 그 사이 중개자 역할은 Controller가 전담한다.뷰 컨트롤러가 너무 비대해지는 단점이 있다. (Massive
어플리케이션 설정을 저장하는데 쓰는 UserDefaults 객체.State가 바뀔때마다 자동적으로 UI 를 갱신해주는게 SwiftUI 의 장점인데, State 로 UserDefaults 값을 사용하려면 약간의 전처리가 필요했다.https://stackoverf