Processing URL Session Data Task Results with Combine 에 나오는 내용입니다. [ 목표 ] Combine으로 네트워크 쪽 코드를 작성하는 것은 크게 두가지 절차를 거칩니다. 1. Data Task Publisher 를 만든다. 2. 비동기 연산자 (asynchronous operator) 들을 체이닝하여 data를 받고 처리한다. 이를 알아봅니다. 또한 네트워크 쪽 코드작성할 때 필요한 에러 핸들링, 스케쥴링, share 도 알아봅니다! [1] Data Task Publisher 만들기 URLSession 은 Combine Publisher 인 URLSession.DataTaskPublisher 를 제공합니다. func dataTaskPublisher(for: U..
단위 테스트 1~3장 내용을 기반으로 하고 있습니다. 1장 단위테스트의 목표 # 단위테스트 현황 논쟁은 '단위 테스트를 작성해야하는가?' 에서 '좋은 단위 테스트를 작성하는 것은 어떤 의미인가?' 로 바뀌었다. # 단위테스트의 목표 - 소프트웨어 프로젝트의 지속 가능한 성장을 가능하게 하는 것 지속가능한 프로젝트 성장을 위해서는 고품질 테스트에만 집중해야한다. (사람들은 종종 테스트가 많으면 많을 수록 좋다고 생각한다. 하지만 그렇지 않다. 코드는 자산이 아니라 책임이다. 코드가 많아질 수록, 소프트웨어 내의 잠재적인 버그에 노출되는 표면적이 더 넓어지고 프로젝트 유지비가 증가한다.) 테스트는 코드의 단위가 아니라 동작의 단위. 즉 문제 영역에 의미가 있는 것. 이상적으로는 비즈니스 담당자가 유용하다고 ..
단위 테스트 3장 내용을 기반으로 하고 있습니다. [ 저자가 생각하는 단위테스트 네이밍 안티패턴 ] 1. 엄격한 명명구조 가장 유명하지만 가장 도움이 되지 않는 방법 중 하나가 다음과 같은 관습이다. [테스트 대상 메서드]_[시나리오]_[예상결과] - 테스트 대상 메서드: 테스트 중인 메서드의 이름 - 시나리오: 메서드를 테스트하는 조건 - 예상결과: 현재 시나리오에서 테스트 대상 메서드에 기대하는 것 동작 대신 구현 세부사항에 집중하게끔 부추기기 때문에 분명히 도움이 되지 않는다. 간단하고 쉬운 영어 구문이 훨씬 더 효과적이다. 예를들어 public class CalculatorTests { public void Sum_of_two_numbers() { ... // when double result =..

SwiftUI Tutorials > Animating Views and Transitions 에 나오는 내용을 기반으로 하고 있습니다. 목표 SwiftUI가 제공하는 effect 들을 써보고 (이 글에서는 rotationEffect, scaleEffect 사용) 여러 effect를 조합하여 애니메이션 시키는 법을 알아봅니다. [1] rotationEffect struct DetailButtonImage: View { var body: some View { Image(systemName: "chevron.right") .frame(width: 50, height: 50) .background( Circle().foregroundColor(.white) // Shape의 fill을 써도 됨. ) .shado..
[SwiftUI] re-rendering, re-draw 추측 에서 SwiftUI가 내부적으로 리렌더링을 어떻게 결정하는 지 추측해보았는데요 리렌더링을 커스터마이징 (?) 할 수 있는 방법도 있습니다. # 1. SwiftUI 는 다시 안그리는데, 나는 다시 그리고 싶은 경우 뷰는 extract subview를 하면 별도의 identity를 부여받아, 부모 뷰와 같이 리렌더링이 안됩니다. 부모의 body가 재호출될 때 extracted 한 서브뷰를 항상 같이 다시 그리고 싶으면 id를 활용합니다. [ 기본 동작 ] ContentView의 body가 호출될 때 NoMatterText는 다시 안그려짐 struct ContentView: View { @State private var isOn = true pri..
- Total
- 867,868
- Today
- 438
- Yesterday
- 1,696
- Dart Factory
- PencilKit
- ipad multitasking
- drf custom error
- flutter deep link
- 플러터 얼럿
- Django Heroku Scheduler
- Flutter Text Gradient
- 구글 Geocoding API
- Django Firebase Cloud Messaging
- ribs
- Flutter getter setter
- 플러터 싱글톤
- METAL
- Watch App for iOS App vs Watch App
- Sketch 누끼
- SerializerMethodField
- Flutter 로딩
- Python Type Hint
- github actions
- flutter dynamic link
- flutter 앱 출시
- Django FCM
- 장고 Custom Management Command
- Flutter Clipboard
- flutter build mode
- DRF APIException
- 장고 URL querystring
- cocoapod
- Flutter Spacer