본문 바로가기

Swift6

[32일차] Animation은 왜 사용하는 것인가? 사용자의 앱 서비스 이용과정에서 보다 재미있게 느껴지도록 하기 위해서 'Animation' 효과를 사용하기도 한다. 그렇다면 'Animation(애니메이션)' 이라는 것은 무엇일까? 한마디로 표현하자면, "시간에 따라 뷰의 상태가 바뀌는 것"이다. Animation은 3가지만 기억하면 된다. Animation = 시작, 끝, 시간(주기) 대표적으로 위와 같이 단순히 ImageView, Label 들이 Transition(회전), usingSpringWithDamping(스프링) 효과를 사용하여 역동적으로 보여질 수도 있다. override func viewDidLoad() { super.viewDidLoad() updateUI() prepareAnimation() } override func viewDi.. 2020. 9. 15.
[29일차] Protocol이란? 아래의 글은 '군옥수수님의 포스팅' 내용을 발췌한 내용입니다. Swift를 잘 다루고 여러 샘플 코드들을 정확히 이해하려면 protocol은 완벽히 익히고 있어야 한다고 생각합니다. 어떻게 보면 Swift의 강력한 기능 중 하나가 protocol이라고 생각됩니다. 그럼 지금부터 protocol에 대해서 천천히 알아가는 시간을 갖도록 하겠습니다. 애플의 공식문서에 정의된 protocol의 정의는 다음과 같습니다. "A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality." 직역하자면 다음과 같습니다. "protocol은 특정 작.. 2020. 8. 27.
[25일차] Concurrency 동시성 (sync/Async) * Concurrenty (동시성) - 사용자 인터랙션 처리 (Main Thread에서 처리) - 네트워킹 - 백그라운드에서 파일 다운로드 - 파일 저장하고 읽기 컴퓨터에서는 여러 개의 스레드가 동시에 수행되면서 백그라운드에서 수많은 작업들이 이루어진다. * GCD (Grand Centeral Dispatch) : 해야 할 일들을 GCD로 전달해주면 시스템에서 안전하게 수행될 수 있도록 처리 (Queue FIFO 구조로 처리) * DispatchQueue 1) Main Queue : 메인 스레드에서 작동하는 큐 ex) DispatchQueue.main.async { ... } 2) Global Queue : 시스템에 의해 관리되는 큐 # QoS (Quality of Service) : 큐의 우선순위를 결.. 2020. 8. 15.
[22일차] InputText 와 소프트 키보드 영역 앱에서 정보를 입력하기 위해서는 InputText와 소프트 키보드가 필요하다. 이번 수업에서는 상태에 따라 소프트키보드가 동적으로 Show/Hide 하는 기능을 구현해보고자 한다. 우선, InputText에 커서가 위치했을 때, 소프트 키보드를 보여주는 코드를 구현한다. 그 다음은, InputText에 입력을 마친 후 소프트키보드 영역을 숨김처리가 필요하다. Tap Gesture Recognizer 이벤트를 처리하는 UI를 추가하여, View 영역에 터치이벤트를 확인한다. 소프트키보드 영역 숨김처리는 resignFirstResponder() 로 처리한다. * resignFirstResponder() : 텍스트필드의 현재 상태를 포기했다는 의미 (키보드가 자동으로 내려가는 효과) 2020. 8. 11.
[17일차] Class와 Struct를 사용해야 할 때 * 이럴 때 Struct 쓰자 (1) 두 Object를 "같다, 다르다"로 비교해야 하는 경우 (2) Copy 된 각 객체들이 독립적인 상태를 가져야 하는 경우 (3) Object의 데이터를 여러 스레드에 걸쳐 사용할 경우 (각 Object가 독립적으로 존재하므로 다중 스레드를 사용하더라도 오류가 날 확률이 낮다.) * 이럴 때 Class 쓰자 (1) 두 Object의 인스턴스 자체가 같음을 확인할 때 (2) 하나의 객체가 필요하고, 여러 대상에 의해 접근되고 변경이 필요한 경우 # 쉽게 사용하는 Tip) 1. 일단 Struct로 쓰자 2. 그 이후에 Class로 바꿔보자 (상황에 따라 다름) - 공식 Doc https://developer.apple.com/swift/blog/?id=10 # 실무 Ti.. 2020. 8. 5.
[9일차] Optional 고급기능 * Optional 이란? : 없는 것을 표현할 때 사용하는 개념 nil : 존재하지 않는 것을 표현할 때 사용 * 고급 기능 4가지 - Forced unwrapping : 억지로 박스를 까보기 - Optional binding (if let) : 부드럽게 박스를 까보기 1탄 - Optional binding (guard) : 부드럽게 박스를 까보기 2탄 - Nil coalescaing : 박스를 까봤더니, 값이 없을 때 기본값을 줘보자 * 도전 과제 * if let : 변수값을 출력 및 확인 * guard : if let 보다 코드를 간결하게 표현 가능 2020. 7. 25.