이번 포스트에서는 특정 월에 대하여 각 주 별로 월요일과 일요일에 해당하는 날짜를 리스트로 반환하는 방법에 대해 알아보고자 합니다. 예를 들어 2022년 4월의 경우, (2022.04.01 금, 2022.04.03 일) (2022.04.04 월, 2022.04.10 일) (2022.04.11 월, 2022.04.17 일) (2022.04.18 월, 2022.04.24 일) (2022.04.25 월, 2022.04.30 토) 와 같이 날짜 범위를 추출하고 싶을 경우가 있을텐데요 아래 코드로 구현이 가능합니다. 아래 코드는 Date에 대한 extension으로 구현한 함수입니다. extension Date { // 여기에 아래 함수를 넣으시면 됩니다. } 실제 기능을 구현하는 함수는 아래와 같습니다. fun..
이번 포스트에서는 WWDC 2015에 소개된 Mysteries of AutoLayout Part.2에 대한 내용을 간략하게 정리해보고자 합니다. Mystery #7. Layout Cycle Application Run Loop : Application이 계속 반복적으로 실행됩니다. Constraints Change : 제약조건에 변화가 생기면 변화된 제약조건이 적용될 때까지 Calculated Layout이 정의됩니다. Deferred Layout Pass : 위에서 언급된 레이아웃이 최종 변경될 때까지 Deferred Layout Pass가 예약됩니다. 모든 Layout Pass가 되돌아 오게 되면, 뷰의 Hierarchy를 거쳐 뷰의 모든 프레임을 업데이트하게 됩니다. Constraints Chang..
이번 포스트에서는 Auto Layout을 코드로 구현하는 방법에 대해 알아보고 Auto Layout을 유용하게 사용할 수 있는 라이브러리인 SnapKit을 사용하여 구현하는 방법에 대해 알아보도록 하겠습니다. 1. Storyboard에서 Auto Layout을 구현하는 방법과 Code로 구현하는 방법의 차이 우리가 처음 iOS 개발을 공부하면 대부분 예제가 Storyboard를 사용하여 View를 구성합니다. 직관적이고 간편하게 마우스 컨트롤을 통해 Auto Layout을 적용할 수 있다는 점이 매력적입니다. 하지만, 장점이 있다면 단점도 존재하는 법! Storyboard로 Auto Layout을 구현하는 방법이 갖는 단점에 대해 살펴보고 코드로 구현하는 방법과 어떤 차이가 있는지 알아보도록 하겠습니다...
이번 포스트에서는 Keychain을 사용하여 안전하게 데이터를 저장하고 불러오는 방법에 대해 살펴보고자 합니다. Keychain은 디바이스 안에 암호화된 데이터 저장 공간을 의미합니다. 사용자는 암호화된 공간에 데이터를 안전하게 보관할 수 있습니다. Keychain에 저장할 수 있는 데이터는 다양한 데이터가 포함될 수 있습니다. 사용자 계정 정보를 비롯하여 결제 지불 정보, 사용자 개인 정보 등 민감한 데이터를 모두 저장할 수 있습니다. 현재까지 Keychain 영역이 외부 침입자에 의해 뚫렸다는 소식이 없었을 만큼 안전한 공간입니다. Keychain Service는 Keychain Service API를 통해 데이터를 암호화할 후 Keychain에 저장하게 됩니다. 아래 그림을 살펴보면 이해에 도움이 ..
이번 포스트에서는 Objective-C에서 제공하는 하부 C언어 기능 중 블록에 대해 살펴보도록 하겠습니다. 블록은 Apple이 추가한 것으로 표준 ANSI C 정의에는 포함되지 않았습니다. 블록은 함수와 유사하게 생겼으며 동작 방식도 함수와 유사합니다. 또한 함수와 마찬가지로 Parameter를 넘겨줄 수도 있습니다. 다만, 함수와 다른 점은 블록은 함수나 메소드 안에서 정의할 수도 있고, 자신과 동일한 범위에 있다면, 블록 바깥에서 정의된 변수에도 접근이 가능합니다. 하지만 일반적으로 이러한 변수에 접근은 가능하지만 값을 변경할 수는 없습니다. 만약 이 값을 변경하고 싶다면 __block(block 앞에 _가 2번) 을 사용하면 블록 내에서 이런 변수의 값을 변경할 수 있게 됩니다. 블록은 함수와 메..
이번 포스트에서는 Swift UI에서 제공하는 기본적인 View 속성과 Container의 자식 View 개수 제한을 해결해보는 내용에 대해 살펴보도록 하겠습니다. Swift UI View Stack Swift UI는 VStack, HStack, ZStack이라는 3가지 Stack Layout View를 제공하고 있습니다. VStack은 수직으로 View를 배치하는 레이아웃이며 HStack은 View를 가로로 배치하는 레이아웃, ZStack은 View를 중첩이 되도록 배치하는 레이아웃을 의미합니다. 예를 들어, 다음과 같이 VStack에 3개의 Text가 있다면 세로로 3개의 View가 배치되는 것입니다. struct ContentView: View { var body: some View { VStack..
이번 포스트에서는 Apple에서 새로 발표한 Swift UI에 대해 살펴보도록 하겠습니다. Apple 공식 문서에 써있는 Swift UI 소개 글귀를 발췌하였습니다. SwiftUI는 Swift의 성능을 바탕으로 모든 Apple 플랫폼에서 사용자 인터페이스를 구축할 수 있는 혁신적이고 간소화된 방법입니다. 단 하나의 도구 구성 및 API를 통해 모든 Apple 기기에서 사용할 수 있는 사용자 인터페이스를 구축합니다. 읽기 쉽고 작성하기 편한 선언적 Swift 구문을 통해 SwiftUI는 새로운 Xcode 디자인 도구와 매끄럽게 연동되면서 코드와 디자인이 완벽하게 동기화되도록 합니다. 또한 유동적 글자 크기 조절, 다크 모드, 현지화 및 손쉬운 사용을 자동 지원하므로 SwiftUI 코딩 첫 줄부터 가장 강력..
이번 포스트에서는 Swift에서 제공하는 Codable을 사용하여 JSON을 Encode하고 Decode하도록 하겠습니다. Codable은 Swift 4.x부터 지원하는 Protocol입니다. 공식 문서에 따르면 Codable은 A type that can convert itself into and out of an external representation." 자기 자신을 외부 표현으로 변환(Encode)하거나 외부 표현으로부터 변환(Decode)할 수 있는 타입이라고 합니다. 즉, Codable은 Encodable과 Decodable을 합친 것인데, 각각 정의를 살펴보면 아래와 같습니다. typealias Codable = Decodable & Encodable Codable은 Protocol 이기 ..
- Total
- Today
- Yesterday
- 오토레이아웃
- Auto Layout
- 스위프트
- 상속
- ios
- Swift
- databinding
- Rxjava
- retrofit
- Apple Watch
- 컬렉션
- 아이폰
- Elliotable
- 함수형프로그래밍
- 알고리즘
- android
- java
- C++
- watchos
- CloudComputing
- apple
- SwiftUI
- 코틀린
- 안드로이드
- Notissu
- XCode
- Kotlin
- 애플워치
- Reactive programming
- 함수형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |