일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- SwiftUI
- Opensource
- boostcamp
- 코코아 인터널스
- 단위 테스트
- WWDC
- 디자인패턴
- Design Pattern
- 알고리즘
- OS
- rxswift
- Swift
- development
- 후기
- 네이버 부캠
- World
- Tistory
- 부트캠프
- Cocoa Internals
- 커스텀 뷰
- 부스트캠프
- 개발
- Hello
- Algorithm
- notion
- IOS
- Today
- Total
목록Programming (44)
꿈돌이랜드
How to add reactive-ness to Clean Swift - Clean SwiftI answered different forms of this same questions many times in emails, comments, and my mentorship program. I understand why people ask this question. They’ve seen MVVM, ReactiveCocoa, RxSwift, and want to see if Clean Swift can handle this model-view update automatically. My answer is always the same. You don’t need it. You don’t need...http..
이 글은 단위 테스트 도서를 읽고 정리한 글입니다.비공개 메서드(private method) 단위 테스트Q. 비공개 메서드를 어떻게 테스트하는가? A. 전혀 하지 말아야 한다. 단위 테스트를 하려고 비공개 메서드를 노출하는 경우는 식별할 수 있는 동작만 테스트하는 것을 위반한다. 비공개 메서드를 노출하는 것은 테스트가 구현 세부 사항과 결합되고, 결과적으로 리팩터링 내성이 떨어진다.비공개 메서드를 직접 테스트하는 대신, 포괄적인 식별할 수 있는 동작으로서 간접적으로 테스트하는 것이 좋다. 때로는 비공개 메서드가 너무 복잡해서 식별할 수 있는 동작으로 테스트하기에 충분히 커버리지를 얻지 못하는 경우에는 다음에 대해 고민해본다.식별할 수 있는 동작에 이미 합리적인 테스트 커버리지가 있다고 가정해보면, 다음 ..

Result연관 값을 포함한 success 또는 failure를 나타낼 수 있는 타입제네릭 enum 타입으로 선언되어있다. Failure는 반드시 Error 프로토콜을 채택한 타입이어야 합니다.@frozen enum Result where Failure : Error어떤 동작의 수행결과(대표적으로 네트워킹)를 success인지 failure인지 구분해서 나타낼 수 있습니다.case로 success와 result를 가지고, 각 case의 연관값으로 제네릭타입의 넣어준 값을 저장합니다. Result의 쓰임 예시는 아래 아티클을 참조해주세요Writing Failable Asynchronous APIs오류를 동기식으로 반환하지 못할 때, API의 일부로 Result를 반환하는 것을 제안합니다.→ API의 실행 ..
🎹About Core AnimationIntroduces the main components and services of Core Animation.https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004514Core Animation은 CoreGraphics 보다 더 윗단의 프레임워크.iOS 앱을 프로그래밍 한다는 것은, 알든 모르든 Core Animation을 사용하고 있다는 것.Core Animation공식 문서 정의:Core Animation은 CPU에 부담을 주거나 앱 속도를 저하..

다음 애플 문서를 참고했습니다.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) 메서드를 사용할 수 있다.이 메서드는 스크롤 뷰가 스크롤 되는 동안..