 Apple Lover Developer & Artist

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

반응형

computer science 18

Lecture 9 Review Part 2: EmojiArt Drag and Drop Multithreading

EmojiArt MVVM fileprivate enum with associated values Drag and Drop Model 새로운 EmojiArt 프로젝트를 생성한 후에 EmojiArtModel 모델을 생성한다. 일반적으로 모델에 Model이라는 이름을 함께 사용하지 않는다. 이번의 경우 지난 분기 수업에 있어서 앱의 이름과 동일한 구조체가 있을때 Preview가 혼동되는 문제가 있었다. /// UI Independent representation of EmojiArtDocument struct EmojiArtModel { /// Custom type background var background: Background /// Another custom type of array var emojis..

Lecture 9 Review Part 1: EmojiArt Drag and Drop Multithreading

기존에 만들어온 Memorize 데모앱 대신 새로운 EmojiArt 를 만들어 볼 것이다. 앞으로 나올 강의에서는 EmojiArt를 기준으로 수업한다. Collections of Identifiable Memorize 앱에서 다음과 같은 코드를 사용해본 경험이 있을 것이다. func choose(_ card: Card) { if let index = cards.firstIndex(where: { $0.id == card.id }) { cards[index].isFaceUp = true } } 카드 배열에서 선택된 카드를 찾아서 isFaceUp 혹은 isMatch 와 같은 것들을 설정해줘야하기 때문이다. 카드는 구조체이고 구조체는 값 타입이며 값타입은 복사되기 때문에 배열에서 바로 변경해야한다. 위와 같은..

[Computer Vision] Color

Color 컬러는 물리적인 빛(자연광, 조명) 환경과 우리의 비주얼 시스템(눈, 카메라)과의 상호작용의 결과이다. 빛은 아주 상대적인 정보이고 조명 환경등의 영향을 받아 달라질 수 있는 정보이다. 컬러는 심리적인 효과가 작용된다. 환경과 심리적인 받아들임에 따라 색상 정보가 다르게 느껴질 수 있다. 예를들어 식당에서 붉은색 식탁보를 까는 이유는 파란색보다 붉은색이 식욕을 복돋아주기 때문이다. 컬러는 유용한 정보임과 동시에 조명환경에 따라 변할 수 있는 민감한 정보이기 때문에 매우 조심히 다뤄야 한다. 위 그림을 보면 영역 A와 영역 B의 색상이 달라보인다. 막대 그림을 넣어 실제로 비교해보면 같은색임을 알 수 있다. 즉, 절대적인 색상이 동일해도 조명 환경 등의 사유로 색상이 다르게 보일 수 있기 떄문에..

Lecture 7 Review Part 1: ViewModifier Animation

Animation SwiftUI에서 애니메이션이 어떻게 동작하는가? 모바일 UI 측면에서 애니메이션은 중요한 요소이기 때문에 SwiftUI에서는 이를 쉽게 구현할 수 있도록 설계해두었다. 애니메이션을 구현할 수 있는 방법으로 Shape를 활용해 보는 방법이 존재한다. 예를들어 Memorize 앱에서 카드의 뒷쪽에 파이 모양의 카운트 다운 타이머를 사용하는 경우가 해당된다. 이 때에는 Angle을 활용하여 애니메이션을 구현하였다. 또다른 방법으로 ViewModifier를 사용하는 방법이 존재한다. 그렇다면 ViewModifier은 무엇인가? 우리는 이미 ViewModifier를 사용해본 경험이 있다. 예를들어 aspectRatio, padding, foregroundColor, font와 같은 것들이 해당..

Lecture 6 Review Part 3: Protocols Shapes

Shape Protocol Shape 프로토콜은 View를 상속받고 있는 프로토콜이다. 즉, Shape도 View의 일종이라는 것이다. SwiftUI에서 이미 Shape를 사용해본 적이 있다. RoundedRectangle Circle Capsule etc... 위에서 언급된 도형을 기본적으로 사용한다면 foreground color를 사용하여 View 내부 색깔을 채우게 될 것이다. 하지만 stroke 혹은 fill modifier 를 사용하여 윤곽선만 그리거나 내부에 색깔을 채우도록 설정할 수도 있다. 생각해보면 뭔가 이상한게 있다. stroke를 쓰던 fill을 쓰던 메서드의 인자로 Color가 넘어가거나 Gradient가 넘어가는 등 타입을 가리고 있지 않기 때문이다. 위와 같이 동작할 수 있었던..

반응형