WWDC24 영상아래의 영상에 아주 잘 설명이 나와있으므로 참고하면 좋을 것 같다. SwiftUI essentials - WWDC24 - Videos - Apple DeveloperJoin us on a tour of SwiftUI, Apple's declarative user interface framework. Learn essential concepts for building apps in SwiftUI, like...developer.apple.comSwiftUI의 특징SwiftUI는 다음과 같은 세가지 특징이 있다. 선언적, 구성적, 상태 중심의 특징을 가지고 있다. 아래와 같이 원하는 뷰를 행을 추가하거나 제거하는 작업 없이 UI를 만들 수 있다. pets가 업데이트 된다면 자동으로 행이 변경..
→ Swift Study
갑자기?SwiftUI의 기본중에 기본이라고 할 수 있는 @State, @Binding에 대해서 다시한번 짚어보고 싶어서 포스팅을 남긴다.기본 설명아래와 같이 초 간단한 뷰를 만들어봤다.조금 특이한(?) 점은 아래와 같이 상위 뷰에서 하위 뷰에 count를 전달할 수 있다.struct ContentView: View { @State private var count = 0 var body: some View { List { Section("Content View") { Stepper("\(count)", value: $count) } Section("Counter View..
Swift의 do, try, catch 구문은 에러 처리를 위한 구문이다. 보통 아래와 같은 형태를 많이 발견할 수 있다. do { // 예외가 발생할 수 있는 코드를 포함하는 블록 try // 예외가 발생할 수 있는 작업을 호출 } catch { // 예외가 발생했을 때 처리할 코드 } 코드 실습 아래와 같은 코드가 있다고 해보자. fetch 함수는 "Fetched" 를 반환하는 함수이다. 이 함수는 throws 를 통해 에러를 던지는 함수라는 것을 알 수 있다. isActive 를 받아서 false 면 에러를 던진다. enum fetchError: Error { case unknown case network } func fetch(_ isActive: Bool) throws -> String { if..
Swift 를 사용하면서 본인도 모르게 self. 를 많이 사용했을 것이다. self 는 말그대로 나 자신! 이라는 뜻을 가지고 있다. 그렇다면 [weak self] 는 무엇일까? 실습을 통해 아주 간단하게 맛보기만 보려고 한다.약한참조간단하게 ARC 에 대해서 설명해 보자면, Swift에서는 ARC(Automatic Reference Counting, 자동 참조 카운팅)를 사용하여 객체의 메모리를 관리한다. 이 참조를 약한 참조(weak)로 만들면 참조 카운트가 증가하지 않는다. ARC 에 의해서 참조 카운팅이 0 이 되었을때 메모리에서 해제가 되는데 강한 참조가 걸려있으면 카운팅이 0 이 되기전까지 해제되지 않는다. 예시코드기본 구조아래같이 Navigate 버튼을 누르면 다음뷰로 가고 다음뷰는 He..
지난 시간 지난 시간에는 GCD 의 종류에 이어서 DispatchGroup, DispatchWorkItem, Semaphore 까지 다양한 방법으로 비동기 작업을 할 수 있는 방법에 대해서 알아보았다. 하지만 이러한 비동기 처리를 하게 되면 발생되는 문제들이 있다. 이번 포스팅에서는 문제들을 역시나 간단하게 알아보려고 한다. (심화과정은 제가 더 공부해야 할 것 같아요) [Swift] GCD/Operation 알아보기 3 - DispatchGroup 지난시간 지난시간엔 GCD 종류에 대해서 알아보았다. 메인큐, 글로벌큐, 커스텀큐 이렇게 세종류가 있는데 이러한 것들을 묶을 수 있고, 그 그룹이 끝나는 시점을 알고싶을때 사용하는 것이 Dispat swift-library.tistory.com Thread-..
지난시간 지난시간엔 GCD 종류에 대해서 알아보았다. 메인큐, 글로벌큐, 커스텀큐 이렇게 세종류가 있는데 이러한 것들을 묶을 수 있고, 그 그룹이 끝나는 시점을 알고싶을때 사용하는 것이 DispatchGroup 이다. 아주아주 간단하게 설명할 것이므로 심화학습은 추후 실제 사용해보면서... [Swift] GCD/Operation 알아보기 2 - GCD 종류 지난 포스팅 지난 포스팅에서는 동기, 비동기, 직렬, 동시에 대해서 알아보았다. 그리고 iOS 에서는 작업을 분산시킬 때 Queue 라는 대기행렬에 보낸다는 것까지 알게 되었다. [Swift] GCD/Operation 알아 swift-library.tistory.com DispatchGroup 여러 비동기 작업이 완료될 때까지 대기하거나 완료 되었을때..
지난 포스팅 지난 포스팅에서는 동기, 비동기, 직렬, 동시에 대해서 알아보았다. 그리고 iOS 에서는 작업을 분산시킬 때 Queue 라는 대기행렬에 보낸다는 것까지 알게 되었다. [Swift] GCD/Operation 알아보기 1 - 동기, 비동기, 직렬, 동시, 병렬 GCD 에 대해서 제대로 공부해 보고자 한다. 말로만 GCD 많이 들어봤지 실제로는 음... 모른다고 하는 게 맞는 것 같다. 2024년을 맞이하여 (?) 제대로 공부해보려고 한다! 그전에 동기, 비동기 개념을 swift-library.tistory.com 그렇다면 Queue 에는 GCD(Grand Central Dispatch) 와 Operation 두종류가 있는데 먼저 GCD 에 대해서 공부해 보겠다. 그중에서도 GCD 의 종류에 대해..
GCD 에 대해서 제대로 공부해 보고자 한다. 말로만 GCD 많이 들어봤지 실제로는 음... 모른다고 하는 게 맞는 것 같다. 2024년을 맞이하여 (?) 제대로 공부해보려고 한다! 그전에 동기, 비동기 개념을 알아야 하므로 간단하게 동기, 비동기, 직렬, 동시, 병렬에 대해서 간단하게 작성해보려 한다. 간단하게 그림도 그려봤다. (혹시 틀린 부분 있으면 말씀해 주시면 바로 수정하겠습니다!) 동기 (Sync) / 비동기 (Async) 처음에는 동기는 순차적으로 처리하고 비동기는 여러 개 처리하는 거 아닌가? 정도로 알고 있었지만 비슷하지만 다르다. 동기와 비동기의 큰 차이는 작업의 완료와 관련이 있다. 동기 (Synchronous) 작업을 시키고 작업의 완료를 기다린다. 이 때 다른 작업을 실행하지 않는..