Mobile/Swift(5)
-
동시성(Concurrency)을 대하는 Swift 의 자세 1 - DispatchQueue
요즘 Rx 에 대해 조금씩 곰튀김님 유튜브 강의를 통해 살펴보고, 동시성 글을 읽게 되면서, RxSwift 와 Combine 은 왜 쓰는걸까? 하는 의문이 들었다. 저 두 라이브러리 또한 비동기로 수행할 작업들을 기다리지 않고 적절한 시기에 동시적으로 수행할 수 있고, 코드의 가독성도 좋아져서일 것 같다. 동시성의 사용과 경계에 대해서는 클린코드에서 알아봤다. (클린코드 동시성 글이 궁금하시다면 링크 클릭 하세요) 애플 또한 동시성을 사용함으로써 얻게 되는 성능적인 측면과 그로 인해 발생할 수 있는 경쟁 상태와 시스템 부하 외 콜백 함수를 사용할 때 발생하는 들여쓰기로 인해 보이는 예쁘지 않은 코드에 대해서도 대응을 했다. (그 방법은 async, await 와 연관이 있다😅, 여기서 언급하게 될 부분은..
2024.02.02 -
Swift 기본 가이드라인 - part 1
1. fundamental(기초) 사용 시점의 명확성(Clarity as the point of use) -> 가장 중요한 목표 - 메소드, 속성(property) 등의 엔터티는 한 번만 선언되지만 반복적으로 사용 => API를 명확하고 간결하게 사용하도록 설계해라! => 설계를 평가할 때, 선언문(declaration)을 읽는 것만으로는 충분치 않다. 항상 사용 사례를 조사해 맥락해서 명확하게 보이는지 확인해라! 간결함보다 명확성이 더 중요해! Swift 코드는 간결할 수 있으나, 최소한의 문자로 가능한 가장 간단한 코드를 구현하는 게 목표가 아니다. Swift 코드의 간결함은 강력한 유형 시스템과 자연스럽게 상용구(boilerplate)를 줄이는 기능의 부작용이다. BoilerPlate란? 다양한 프..
2023.12.14 -
Macro 에 대해서 알아보자. ( 수정중 )
State 를 공부하다가, Observable() 의 정의를 또 타고들어가다가 이것이 Macro 타입이라는 걸 알게되었다. Share observable state objects with subviews 부분에서 https://playground-coding.tistory.com/78 Macro 이게 무슨 역할을 하는 타입일까? Struct, Class, Instance Method, Properties, enum 등 이런 것들은 문법을 공부할 때 한번씩은 보던 것들인데, Macro 는 뭐지.. State 에 저장된 Observable 객체를 하위 뷰와 공유하려면 객체 참조를 하위 뷰에 전달 SwiftUI는 객체의 관찰 가능한 속성이 변경될 때마다 하위 뷰를 업데이트하지만 하위 뷰의 body가 속성을 읽..
2023.11.12 -
[ 구조체와 클래스 ]
메소드와 프로퍼티 struct Resolution { var width = 0 var height = 0 func desc() -> String { return "Return 구조체" } } class VideoMode { var interlaced = false var frameRate = 0.0 var name: String func desc() -> String { return "VideoMode 클래스" } } Resolution 구조체 픽셀 기반 디스플레이의 해상도 정보를 관리하기 위한 목적, width 랑 height 라는 두 개의 저장 프로퍼티가 있음. 저장 프로퍼티: 특정 값을 저장하기 위해 클래스나 구조체의 내부에 정의된 변수나 상수 두 프로퍼티는 초기값이 0 대입 -> 타입 추론 규칙에..
2022.12.02 -
[Swift ] Escape Sequence - 문자열처리
Extended String Delimiters You can place a string literal within extended delimiters to include special characters in a string without invoking their effect. You place your string within quotation marks (") and surround that with number signs (#). For example, printing the string literal #"Line 1\nLine 2"# prints the line feed escape sequence (\n) rather than printing the string across two lines..
2022.05.21