본문 바로가기

Swift

(7)
[Swift] @propertyWrapper ? 안녕하세요 태태입니다. 💜 오늘은 property Wrapper에 대해서 알아보는 시간을 갖도록 하겠습니다. 코드를 작성하면서 중복되는 코드를 줄이는 작업을 많이 하곤 하죠. 가장 간단한 방법으로는 중복되는 코드를 메서드로 정의하고 사용하는 방법이 있습니다. 메서드 단위로 해결하면 클래스 혹은 구조체 내에서 접근을 해야하는데… 프로퍼티 단위로 중복이 발생하면, 이런 로직은 공통화할 수 없을까? 할 수 있습니다. 바로 PropertyWrapper를 사용하는 것 입니다. struct ImageInfo { private var _image: String = "" var image: String { get { self._image + ".jpg" } set { self._image = newValue } } i..
[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..
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 국제화의 첫 단계는 문자열을 관리..
[RxSwift] RxSwift ? 안녕하세요 태태입니다. 💜 이번 포스팅은 RxSwift에 대해 학습해보려합니다. 👀 - RxSwift란? RxSwift is a library for composing asynchronous and event-based code by using observable sequences and functional style operators, allowing for parameterized execution via schedulers. 관찰 가능한 시퀀스와 기능적인 스타일 연산자를 사용하여 비동기식 그리고 이벤트 기반의 코드를 구성하기 위한 라이브러리, 스케줄러를 통해 매개변수화된 실행을 허용한다. 라고 하는데요 음... 🤔 키워드를 뽑아보자면 Asynchronous, Observable, Operator, ..
[Swift] UISwitch 크기 변경하기 안녕하세요 태태입니다. 💜 이번에 검색 화면을 개선하면서 최근 검색어 기능을 구현하게 되었는데요. Switch의 크기가 고정이 되어 있어서 변경할 수 없었어요. 이를 변경하는 방법은 위처럼 비율 값을 주어 변경할 수 있습니다. 크기가 변한 게 눈에 보이시나요?! 👀 여기서 transform이 바로 경계의 중심을 기준으로 뷰에 적용되는 변환을 지정한다. 이름에서도 알 수 있듯이 뭔가를 변환하는 데 사용되는 프로퍼티 같네요 ! 조금 더 살펴보니 superview의 좌표 시스템 내에서 뷰의 프레임을 조정하거나 회전하는데 이 속성을 사용하네요. 뷰의 기준점을 기준으로 변환이 발생하고, 이 기준점은 프레임의 중심점이라고 합니다. 이 기준점은 변경도 할 수 있나 봐요 ! 오늘 포스팅은 여기까지 입니다 🙇🏻‍♂️ 조..