 Apple Lover Developer & Artist

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

반응형

computer science 18

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 ..

Lecture 2 Review Part 2: Learning more about SwiftUI

지난 강좌에 이어 계속해서 UI 를 발전시키는 시간이다. 앞에서 해온 것과 마찬가지로 본래 코드의 문제점을 찾고 계속 개선해 보는 시간을 가져본다. 카드마다 서로 다른 이모티콘을 띄우는 방법은 없을까? 고민을 해보았다. 간단하게 구조체에 카드에 들어갈 content 변수를 추가한 후에 CardView 인스턴스를 생성할 때마다 서로 다른 content 값으로 초기화 해주면 되겠네! 라고 생각하고 위처럼 코드를 작성해 보았다. 하지만 이 방식 또한 문제점이 있다. 만약 카드가 단 4장이 아니라 수백장이었다면 하나 하나 content 값을 적어서 초기화 해주어야 하는가? 해보지 않아도 아주 귀찮아지는 방식이라는 것이 예측되는 바이다. 우리에겐 이 코드를 개선할 수 있는 비장의 자료구조가 존재한다. 가장 기본적..

반응형