본문 바로가기

전체 글

(12)
[Swift] @propertyWrapper ? 안녕하세요 태태입니다. 💜 오늘은 property Wrapper에 대해서 알아보는 시간을 갖도록 하겠습니다. 코드를 작성하면서 중복되는 코드를 줄이는 작업을 많이 하곤 하죠. 가장 간단한 방법으로는 중복되는 코드를 메서드로 정의하고 사용하는 방법이 있습니다. 메서드 단위로 해결하면 클래스 혹은 구조체 내에서 접근을 해야하는데… 프로퍼티 단위로 중복이 발생하면, 이런 로직은 공통화할 수 없을까? 할 수 있습니다. 바로 PropertyWrapper를 사용하는 것 입니다. struct ImageInfo { private var _image: String = "" var image: String { get { self._image + ".jpg" } set { self._image = newValue } } i..
[RxSwift] Subject 예시 코드와 결과 안녕하세요 태태입니다. 💜 오늘은 Subject의 예시 코드를 통해서 결과를 보고 이해하는 시간을 가져보려고 합니다. 먼저, PublishSubject 부터 살펴보도록 할게요. 1. PublishSubject 초기값이 없으며 새로운 값만 subscribe에 방출한다고 했었는데요, 코드로 한번 알아 보겠습니다. let subject = PublishSubject() subject.onNext("PublishSubject") // 첫 번째 구독 요청 let subscriptionOne = subject .subscribe(onNext: { (string) in print(string) }) subject.on(.next("1")) subject.onNext("2") // 두 번째 구독 요청 let subsc..
[RxSwift] Subject 안녕하세요 태태입니다. 💜 오늘은 Subject에 대해서 알아보려고 합니다. Subject 란? subject는 하나 이상의 Observable을 구독할 수 있으며 동시에 Observable이기도 하기 때문에 항목들을 하나 하나 거치면서 재방출하고 관찰하며 새로운 항목들을 방출할 수 있습니다. 즉, Observable이자 Observer인 것을 Subject라 합니다. Subject 종류 subject는 총 4종류가 존재합니다. - AysncSubject - BehaviorSubject - PublishSubject - ReplaySubject 하나씩 알아보겠습니다. 1. AysncSubject > Observable이 완료된 후 가장 마지막 값만 방출합니다. 만약, Observable이 오류로 인해서 ..
[Swift] Lazy 키워드 안녕하세요 태태입니다. 💜 이번 포스팅은 lazy 키워드에 대해 학습해보려 합니다. 👀 학습보단, 예전에 학습했던 내용을 상기하려는 목적이 강한 글으로 봐주셨으면 합니다. 처음 Lazy 라는 키워드를 보았을때, 게으른..? 뭔가 느린건가? 라는 생각을 했던 기억이 나네요. 그럼 애플 공식문서에서는 어떻게 정의하고 있을까요? "A lazy stored property is a property whose initial value is not calculated until the first time it is used" 즉, lazy 저장 프로퍼티는 처음으로 사용되기 전까지 초기 값이 연산되지 않는다. 라고 해석해 볼 수 있습니다. 그럼 어떤 경우에 lazy를 사용하면 될까요? 앱이 실행되었을때, 항상 사용되..
Composable Architecture 안녕하세요 태태입니다. 💜 이번 포스팅은 Composable Architecture에 대해 학습해보려 합니다. 👀 Composable Architecture 란? Point-Free에서 구현한 상태 관리 기반 아키텍처로 상태 관리, 구성 및 테스트에 중점을 두고 있습니다. 자세한 내용은 아래 링크를 통해 확인하실 수 있습니다. Swift Compsable Architecture github GitHub - pointfreeco/swift-composable-architecture: A library for building applications in a consistent and understandable way, A library for building applications in a consisten..
[RxSwift] Observable 안녕하세요 태태입니다. 💜 이번 포스팅은 RxSwift의 Obervable에 대해 학습해보려합니다. 👀 아래 링크를 참고하여 학습하였습니다. 🙇🏻‍♂️ https://github.com/fimuxd/RxSwift/blob/master/Lectures/02_Observables/Ch2.%20Observables.md GitHub - fimuxd/RxSwift: RxSwift를 스터디하는 공간 RxSwift를 스터디하는 공간. Contribute to fimuxd/RxSwift development by creating an account on GitHub. github.com Observable란? Rx의 핵심이라고 할 수 있습니다. Observer(관찰자)가 Observable을 subscribe(구독)..
WWDC17 Localizing with Xcode 9 (2) WWDC17 Localizing with Xcode 9 본 세션에서 다루는 주제는 크게 3가지 코드를 어떻게 로컬라이징 프로세스를 통해서 세계화에 준비되게 작성할 수 있는지에 대해 알아봅니다. Xcode 9에 추가된 새로운 기능 소개 모든 언어에서 어떻게 앱이 작동하고 보여지는지에 대한 사례들과 테스트에 대해서 이야기 - Localization Process 번역가를 위한 지역화 가능한 콘텐츠를 생성하기 위해 Xcode는 프로젝트에 있는 지역화 가능한 모든 리소스를 찾습니다. Localization을 위해 프로젝트를 내보낼 때 Xocde는 이 지역화 가능한 리소스에서 문자열을 추출하고 추가한 모든 단일 언어에 대해 XLIFF 파일을 생성합니다. XLIFF 파일은 단순히 Localization 업계에서의 ..
WWDC17 Localizing with Xcode 9 (1) WWDC17 Localizing with Xcode 9 본 세션에서 다루는 주제는 크게 3가지 코드를 어떻게 로컬라이징 프로세스를 통해서 세계화에 준비되게 작성할 수 있는지에 대해 알아봅니다. Xcode 9에 추가된 새로운 기능 소개 모든 언어에서 어떻게 앱이 작동하고 보여지는지에 대한 사례들과 테스트에 대해서 이야기 internationalization 국제화는 새 언어를 추가할 때마다 코드를 변경하지 않고도 다양한 언어, 지역에 적용할 수 있도록 소프트웨어를 설계하는 프로세스입니다. 요점은 앱이 실행되는 언어는 중요하지 않고, 짧은 텍스트나 긴 텍스트가 있거나 읽는 방향이 다른 경우, 앱은 이를 동적으로 적응할 수 있어야 합니다. - Strings Management 국제화의 첫 단계는 문자열을 관리..