일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios #swift #uialertcontroller #메서드 스위즐링
- Design Pattern
- 코코아 인터널스
- IOS
- 후기
- 부스트캠프
- 단위 테스트
- Hello
- World
- Algorithm
- OS
- WWDC
- Opensource
- 네이버 부캠
- boostcamp
- Cocoa Internals
- 부트캠프
- Tistory
- rxswift
- development
- 디자인패턴
- SwiftUI
- 알고리즘
- 커스텀 뷰
- Swift
- 개발
- notion
- Today
- Total
목록Programming (48)
꿈돌이랜드

다음 애플 문서를 참고했습니다.Object archivingA collection of short articles on the core concepts, patterns, and mechanisms in Cocoa programming.https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/Archiving.html객체 아카이빙아카이빙은 객체 그래프를 응용 프로그램 간에 1)저장하거나, 2) 전송가능한 타입으로 변환하는 과정을 말합니다.아카이빙의 최종 결과인 아카이브는 객체의 ID, 캡슐화된 값, 다른 객체와의 관계가 기록된 byte stream입니다. 아카이빙의 반대인 언아카이빙은 아카이..
🔬Refactoring Guru 사이트의 글을 번역한 것입니다.옵저버 패턴의도옵저버 패턴은 관찰하는 객체에 발생하는 모든 이벤트에 대해 여러 객체에 알리는 구독 메커니즘을 정의할 수 있는 행동 디자인 패턴이다.예시Customer 와 Store 라는 두 가지 유형의 객체가 있다고 상상해보자. customer는 곧 store에 출시될 특정 브랜드의 상품(예를 들어, iPhone의 새 모델)에 매우 흥미있다.고객은 매일 매장을 방문하여 제품 재고를 확인할 수 있다. 그러나 제품이 아직 운송 중일 때는 이러한 확인은 무의미하다.반면 상점은 새로운 제품이 출시될 때마다 모든 고객에게 스팸으로 간주될 수 있는 수많은 이메일을 보낼 수 있다. 이것은 상점에 계속해서 방문을 하는 방문객들을 줄일 수 있다. 하지만 동시..
WWDC22 - Embrance Swift genericsEmbrace Swift generics - WWDC22 - Videos - Apple DeveloperGenerics are a fundamental tool for writing abstract code in Swift. Learn how you can identify opportunities for abstraction as your code...https://developer.apple.com/videos/play/wwdc2022/110352/추상화아이디어를 특정 세부 사항과 분리.추상화 형태 중 하나는 코드를 함수나 지역 변수로 분해하는 것. Model with concrete types농장을 시뮬레이션하기 위한 코드를 작성해 나가는 것으..

위와 같은 카카오톡의 페이지뷰를 구현해려고 하는데 이런 요구사항이 있다. 어떻게 해야할까? 요구사항 각 탭 간 슬라이드 하면서검정 인디케이터 선이 각 탭의 라벨의 하단 위치에 맞게 이동한다.검정 인디케이터 선이 각 탭의 라벨 제목의 길이에 비례해 길이가 변해야 한다.현재 뷰에 나타나는 탭의 라벨 제목 색깔이 회색에서 검정색으로 변해가야 하고, 뷰에서 사라지는 탭은 검정색에서 회색으로 변해가야 한다.UIScrollViewDelegate탭 바 하단의 뷰가 좌우 폭이 매우 큰 스크롤 뷰로 이루어져 있다고 하면, UIScrollViewDelegate를 채택하고 scrollViewDidScroll(_ scrollView: UIScrollView) 메서드를 사용할 수 있다.이 메서드는 스크롤 뷰가 스크롤 되는 동안..
SwiftUI는 UIKit와 다음과 같은 방법들로 호환시킬 수 있습니다.UIHostingControllerA UIKit view controller that manages a SwiftUI view hierarchy.SwiftUI 뷰 계층을 관리하는 UIKit의 ViewControllerSwiftUI 뷰 → UIKit 뷰 !정의class UIHostingController where Content : ViewSwiftUI 뷰들을 UIKit 뷰 계층에 통합하고 싶을 때, UIHostingViewController 객체를 생성합니다. 생성시간에, 이 ViewController의 rootView로 사용하고 싶은 SwiftUI 뷰를 지정해야 합니다. 나중에 SwiftUI/UIHostingController/ro..

Swift Array’s Shuffle()스위프트 배열에는 요소들을 뒤섞어주는 shuffle() 메서드가 존재합니다.var names = ["Alejandro", "Camila", "Diego", "Luciana", "Luis", "Sofía"] names.shuffle() // names == ["Luis", "Camila", "Luciana", "Sofía", "Alejandro", "Diego"]공식 문서에서는 RandomAccessCollection 프로토콜을 채택한 인스턴스가 사용할 수 있다고 합니다. WWDC 2018에서, 이런 셔플 알고리즘은 Fisher-Yates 알고리즘을 사용해 구현했다고 합니다.https://developer.apple.com/videos/play/wwdc2018/40..
Swift5.7 RegexSwift 5.7 이후, Swift 언어에서 정규 표현식 사용 방법이 업데이트 되었습니다. 이를 정리해보도록 하겠습니다. Swift 5.7 이전, 정규표현식을 사용하려면 다음의 것들을 사용했어야 했습니다.NSRegularExpressionNSString의 메서드 range(), replacingOccurrences() … 다음은 예시 코드 입니다.문자열 일부 일치 확인import Foundation let str = "abcd1234" let pattern = "[0-9]*" if let range = str.range(of: pattern, options: .regularExpression) { print(str[range]) // 가장 앞 부분 부터 일치하는 부분을 반환 } ..
RxSwift 깃허브 저장소를 살펴보며 작성했습니다.Observable.createObservable.create를 뜯어봅시다. create 메서드는 다음과 같이 정의되어 있습니다.RxSwift/Observables/Create.swiftextension ObservableType { public static func create(_ subscribe: @escaping (AnyObserver) -> Disposable) -> Observable { return AnonymousObservable(subscribe) } }create는 Observable자체가 아닌 ObservableType 프로토콜의 타입 메서드로 정의되어 있습니다.Observable은 정의에서, ObservableType을 프로토콜로..