안녕하세요 :) Zedd입니다. 오늘은 onChange(of:perform:)에 대해서 공부해보겠습니다! onChange(of:perform:) 특정 값이 "변경" 될 때 action을 실행하고 싶으면 이 onChange(of:perform:)를 사용하면 됩니다. value : 클로저 실행 여부를 결정할 때 확인 할 값 action : 값이 변경될 때 실행할 클로저 newValue : 비교 검사에 실패한 새 값. Q : newValue가 어딨어.. A : 이따 나옵니다. - onChange를 사용하여 side-effect를 트리거 할 수 있음. - onChange는 메인스레드에서 호출됨. -> 메인 스레드에서 긴 작업을 실행하지 말것. - 값 변경에 대한 응답으로 긴 작업을 실행해야하는 경우 백그라운드 ..
안녕하세요 :) Zedd입니다. 오늘은 onReceive(_:perform:)에 대해서 공부해보겠습니다! onReceive(_:perform:) 정의 : view에서 지정된 publisher가 emit한 데이터를 감지할 때 수행할 작업을 추가. 정의는 이렇게 생겼는데, publisher는 말 그대로 그냥 구독할 publisher고 action은 publisher가 이벤트를 생성할 때 수행할 작업이에요. 그럼 써봅시다! 그냥 onReceive의 publisher자리에는 Publisher만 들어가면 어떻게는 쓸 수 있습니다. 그냥 가장 쉬운 예제를 들고왔어요. 내가 어떤 publisher의 이벤트에 따라 뭔가를 해주고싶다면, 위처럼 publisher를 만들고 onReceive에 넣어주면 됩니다. 사실 위 코..
안녕하세요 :) Zedd입니다. 기록용 글입니다! PHImageRequestOptions에 있는 프로퍼티 쪼끔씩 정리하다 보니 분산되어서 보기가 힘들다. 생각난 김에 모든 프로퍼티 정리를 해놓으면 좋을 것 같다는 생각. PHImageRequestOptions PHImageRequestOptions은 PHCachingImageManager.default().requestImage(for: asset, targetSize: targetSize, contentMode: .aspectFill, options: options, // 여기 resultHandler: { (image, info) in { .. } requestImage에서 options에 들어가는 타입이다. 말 그대로 Image / request /..
안녕하세요 :) Zedd입니다. CupertinoNavigationBar에 Item넣는 법 / item이 짤려보이는 현상 해결 글을 썼었는데, Navigaiton Item을 클릭하면 새로운 화면을 present하는 방법을 알아보겠습니다. 저번에 딱 여기까지 했었는데요, 일단 누르면 뭔가를 해야하니까..onPressed부분을 수정하면 됩니다. 아마 뭐 Flutter에서 새로운 화면 여는법 뭐 이런식으로 검색을 하면 이 Route라는 단어를 엄청 많이 볼 수 있습니다. 이 Route가 뭔지 부터 설명할게요. Route 용어: Flutter에서 screen 과 page 는 route 로 불립니다. Route는 Android의 Activity, iOS의 ViewController와 동일합니다. Flutter에서..
안녕하세요 :) Zedd입니다. 오늘은..CIGaussianBlur를 사용하는 과정에서 제가 겪은....트러블슈팅 기록 글입니다! UIBlurEffect로 Blur효과를 낼 수도 있지만, 내가 하고싶은 Blur에는 CIGaussianBlur를 사용하는게 맞다고 느껴졌다. CIGaussianBlur는 대충 이런느낌의 "필터"이고, 오른쪽 이미지에 적용해볼 것이다. 그럼 사용해보자. 참고로, 문서를 확인하면 내가 줘야하는 파라미터가 어떤게 있는지 확인 할 수 있다. inputImage로 CIImage를 주고, radius는 Blur의 정도(?)..라고 이해했다. 그래서 let image = UIImage(named: "zedd") self.imageView.image = image?.applyBlur_ori..
안녕하세요 :) Zedd입니다. 오늘은 UIVisualEffect에 대해서 공부해보겠습니다! UIVisualEffect UIVisualEffect는 시각 효과나 흐림(blur), 생동감?(vibrancy) 효과를 위한 "이니셜라이저"입니다. UIVisualEffect를 보통 그냥 쓰진 않는 것 같고.. UIVisualEffect를 상속받고 있는 클래스 2개를 자주 사용합니다. ✅UIBlurEffect : UIVisualEffect ✅UIVibrancyEffect : UIVisualEffect 입니다. 이 친구들을 보기전에, UIVisualEffectView를 먼저 알아보겠습니다. UIVisualEffectView UIVisualEffect + View입니다!! UIView를 상속받고 있으며, visual..
안녕하세요 :) Zedd입니다. 오늘은 Code Coverage를 알아보는 방법에 대해서 공부해보겠습니다. # Code Coverage? Code Coverage는 테스트의 가치를 측정하는 도구. (Code coverage is a tool to measure the value of your tests.) 출처 : 애플 문서 # Code Coverage 활성화 Edit Scheme의 Test > Options에 가시면 Code Coverage 모으도록 체크할 수 있습니다. allTargets으로 할 수도 있고, some Target으로 바꾸면, 특정 Target을 선택할 수도 있습니다. 저는 이렇게만 해줄게요. 그런 다음, 테스트를 돌리면 Report Navigator에 이렇게 Code Coverage가..
안녕하세요 :) Zedd입니다. 오늘은 SwiftLint의 오류 중 하나인 Compiler Protocol Init Violation: The initializers declared in compiler protocol ExpressibleByArrayLiteral shouldn't be called directly. 이 warning에 대해서 알아보겠습니다. # 어디서 발생? let array = Array(arrayLiteral: 1, 2, 3) let indexSet = IndexSet(arrayLiteral: 1, 2, 3) // Compiler Protocol Init Violation: The initializers declared in compiler protocol ExpressibleBy..
- Combine
- Git
- 회고
- swift tutorial
- github
- iOS delegate
- swift array
- ios 13
- UIBezierPath
- WWDC
- IOS
- swift delegate
- Swift
- 스위프트 문법
- 스위프트
- SwiftUI
- swift3
- fastlane
- np-hard
- Accessibility
- actor
- 제이슨 파싱
- swift 공부
- Xcode
- WidgetKit
- np-complete
- 피아노
- swift sort
- WKWebView
- FLUTTER
- Total
- Today
- Yesterday