 Apple Lover Developer & Artist

영속적인 디자인에 현대의 공감을 채워넣는 공방입니다

반응형

swift 39

Lecture 5 Review Part1: Properties Layout @ViewBuilder

@State 이전에도 보았드시 SwiftUI에서 모든 View struct는 읽기전용이다. 따라서 View를 처리할 때 let이나 computed var를 사용하는 것만이 유의미하다. 다만 @ObservedObject와 같이 property wrapper가 사용되는 경우에는 var을 사용한다. 왜 View는 Read-Only 일까? View는 매번 생성되고 버려진다. View의 body는 주변에 붙어있다. View의 body가 화면에 있다면 당연히 어딘가에 존재한다. 하지만 그 body를 만든 View는 아마도 오래전에 버려졌을 것이다. 여튼 View 구조체는 mutable한 var을 가질만큼 오래 살아있지 않는다. 하지만 걱정할 필요없다. 우리의 View는 Stateless하기 때문에 자신의 상태는 필..

Lecture 4 Review Part2: Memorize Game Logic

Varieties of Types enum 열거형(enumeration) 은 일종의 구조체와 클래스와 같으며 이산적인 값만을 갖고 있다. 예시를 보면 쉽게 이해될 것이다. enum FastFoodMenuItem { case hamburger case fries case drink case cookie } 어느 패스트푸드 판매점은 위와 같이 4가지의 품목만 판매한다. 햄버거, 감자튀김, 음료 및 쿠키가 그 예시일 것이다. 옵션이 특정 범위로 정해져 있는 경우 enum 을 사용하면 이산적인 값만을 갖고 있다는 특징을 살려서 훨씬 더 직관적으로 활용할 수 있게된다. enum 또한 struct 타입과 마찬가지로 value 타입이며 이러한 사유로 함수의 인자나 다른 변수로 넘길 때 값복사가 발생된다. Swift에..

Lecture 4 Review Part1: Memorize Game Logic

이전에 구현한 Model 과 ViewModel을 SwiftUI로 구현한 View에 연동해보는 시간을 가질 것입니다. View 구현에서 카드를 불러오거나, 뒤집는 등의 Model이나 View Model을 통해 이루어져야 하는 코드를 지워줍니다. struct ContentView: View { // Model의 내용을 보여주는 Agent @Main에서 설정함 var viewModel: EmojiMemoryGame var body: some View { ... } } Swift UI를 통해 선언된 View 구조체의 상단에 viewModel 프로퍼티를 선언해준다. Swift에서 모든 상수나 변수는 무조건 값을 가지고 있어야 하는데 위 코드에는 type 만 명시되어 있고 값을 할당하는 코드가 보이지 않는다. 이게..

Lecture 3 Review Part 2: MVVM and the Swift type system

이번 시간에는 Swift Programming Language 에서 제공하는 Type System 에 대해 탐구해 볼 것이다. Swift 의 토대를 이루고 있는 6가지 타입들을 이해하지 못하면 결국 Swift 또한 이해하지 못하기 때문이다. struct ContentView, CardView와 같은 UI, Memorize 게임에서의 Model이 struct의 한 예시이다. class Object-Oriented Programming 을 구현할 수 있으며 MVVM에서의 View Model이 한 예시이다. struct와 class의 공통점 문법이 비슷하다. 예를들어 구조체 내부에 함수나 변수를 선언할 때에는 다음과 같은 동일한 구문을 통해 구현된다. var isFaceUp: Bool // 일반적인 변수 선언..

Lecture 3 Review Part 1: MVVM and the Swift type system

MVVM Design Paradigm MVVM (Model View ViewModel) 은 Design Paradigm 중 하나이며 SwiftUI 를 사용하기 위해 반드시 MVVM 설계 방식을 적용해야 한다. *Design paradigm * Makes it clear where all the diffrent components of your code go and how they interact with each other. 이전 방식으로 앱을 개발할 때 사용되는 UIKit 은 MVC (Model View Controller) 를 사용하며 MVVM 과는 다른 종류의 개발 방식이기 때문에 혼동하면 안된다. MVVM 과 MVC 는 User Interface Code (View) 와 Backend Logic ..

반응형