apple 216

[UIKit] UILabel Inset

UILabel Inset UILabel의 text와 근간이 되는 label의 고유 view가 가지는 것 사이에 여유공간을 주기 위한 코드 InsetLabel /// UILabel의 text와 컨테이너 사이의 inset값을 설정할 수 있는 커스텀 라벨 final class InsetLabel: UILabel { /// text와 UILabel 사이의 inset값을 설정 var edgeInsets: UIEdgeInsets = .init(top: 2.0, left: 8.0, bottom: 2.0, right: 8.0) override func drawText(in rect: CGRect) { super.drawText(in: rect.inset(by: edgeInsets)) } override var int..

[WWDC23] Meet MapKit for SwiftUI

Meet MapKit for SwiftUI 🔨 Xcode 15.0 Beta iOS 17.0 + Apple M1 Max WWDC23 - Video https://developer.apple.com/wwdc23/10043 Meet MapKit for SwiftUI - WWDC23 - Videos - Apple Developer Discover how expanded SwiftUI support for MapKit has made it easier than ever for you to integrate Maps into your app. We'll show you how... developer.apple.com 이번 WWDC23에서 흥미로운 세션이 많았지만, 가장 끌리는 MapKit을 정리해보고자 한다. 특히..

apple/WWDC 2023.06.18

EnableSwiftBuildSystemIntegration

EnableSwiftBuildSystemIntegration빌드 시스템과 Swift 컴파일러에는 사용 가능한 코어를 더 잘 활용하는 새로운 모드가 존재.아래의 옵션을 활성화 할 경우 Swift 프로젝트의 빌드 속도가 더 빨라지며, 이 모드는 옵트인 모드.  https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-13_3-release-notes#Build-System  Xcode 13.3 Release Notes | Apple Developer DocumentationUpdate your apps to use new features, and test your apps against API changes.developer.apple.com

[XCode] Instruments - Network

[XCode] Instruments - Network 내가 사용하는 앱이 네트워크 통신에 있어서 어떤 Request와 Response를 처리하는지 체크하기 위해서 이 방법을 사용할 수 있습니다. 1. Xcode의 좌측의 이미지에서 삼각형 버튼을 꾹 누르면 우측의 메뉴팝업이 나타나고 오른쪽 이미지와 같이 바꿔줍니다. 2. Network를 선택합니다. 3. 기록을 실행합니다. 기록하기 시작하면 위와같은 이미지가 나타납니다. 4. 내가 확인하고자 하는 부분을 선택합니다. - 이미지 좌측 상단에 List: HTTP Transaction으로 세팅한 화면입니다. 5. 응답과 결과를 확인할 수 있습니다. 직접 사용해보시면 더욱 자세한 정보를 알 수 있습니다.

[Swift] 커링(Currying)

# Currying 함수형 프로그래밍을 위한 Currying 학습. # 계기 - SwiftUI를 사용하여 View를 모듈화를 시도. - 더 잘 만들기 위해 함수형 프로그래밍의 해당 개념에 대한 학습이 필요하다고 느낌. # 목표 - 간단한 덧셈 구현 (Level 1) - 정규표현식 구현 (Level 2) - Reduce, Map, Filter 구현 - FlatMap, CompactMap 구현 (⚠️ 실패한 구현) : 기록하기 위해서 적어둠. # 참고에서는 UI와 관련한 클로저를 함수형으로 받아서 간결하게 처리하는 예제도 있으니 확인하면 좋음. ❗️ 실패한 구현인 이유 : 결과값이 다르게 나타남. # 파일 # 간단한 덧셈 구현 (Level 1) import Foundation public class LEVE..

TCA 공부 생각 기록장

TCA 공부 생각 기록장 TCA도 공부해볼까 하는데, 아키텍처가 가지는 장점도 분명하지만, 개인적으로 현 시점에서는 단점이 치명적이라 도입에는 어려울 것 같다는 생각이 듦. 기존 프로젝트 코드를 대체하는 형태로 가야하는데, TCA 규격을 다 맞춰주는게 비용이 너무 크고, 그에 대비해서 얻는 이점이 생각보다 크지 않다고 느낌.  UIKit이든 SwiftUI든 정말 중요한 건 객체지향에 대한 이해도 같은데, TCA보단 RIBs 쓰는게 더 낫지 않을까란 생각. 히스토리2023.01.16초기 포스팅 TCA 0.40 버전ReactorKit을 주력으로 사용하고 있는데, 요즘 핫하대서 보기로.전반적으로 비슷한 느낌이긴한데, 이제 막 만들어지는 것 같음.2023.10.18TCA 1.0.0 출시로 인해 대격변 크게 의미..

apple/TCA 2023.01.16

Test Double (Swift)

Test Double (Swift) 간단 용어 정리테스트 더블이란, doc와 동일한 API를 제공 sut (system under test): 테스트 대상 doc (depended-on component): sut이 의존하고 있는 구성요소 왜 필요할까?Solitary or Sociable?, 테스트 중인 단위가 Sociable한지 혹은 Solitary인지의 여부가 중요Sociable의 경우에 테스트하는 Unit의 결함이 아닌 의존하고 있는 클래스의 결함으로 인해 테스트가 실패하는 문제가 발생할 수 있음이러한 문제를 막기 위해 실제 동작하는 것처럼 보이는 별개의 객체를 따로 만드는 것을 고려할 수 있다.   테스트 더블의 종류 Dummy: 아무런 동작을 하지 않으며, 인스턴스화 된 객체만 필요하고, 기능까..

[iOS] UIImage.Orientation

UIImage.Orientation 카메라의 어떤 방향으로 찍어도 나는 사용자가 봤을 때 위 방향으로 나타나기를 바랬다. 그러니까 똑바로 들고 찍어도, 오른손으로 눕혀 찍어도, 거꾸로 찍어도, 왼손으로 눕혀 찍어도 모두 동일하게 나타나기를 바랬다. 카메라의 경우에는 스마트폰의 앞 부분으로 촬영하면 front 스마트폰의 뒷 부부분으로 촬영하면 back 옵션이 존재한다. // 전면 카메라 let front = AVCaptureDevice.default(.builtInDualCamera, for: .video, position: .back) // 후면 카메라 - 후면의 경우 아이폰에 카메라가 여러개가 되면서 옵션이 다양해짐. let back = AVCaptureDevice.default(.builtInWide..

[RxFlow] 나만의 RxFlow 정리 #1

나만의 RxFlow 정리 #1https://github.com/RxSwiftCommunity/RxFlow 배경최근에 사이드 프로젝트를 수행하면서 Coordinator Pattern을 적용해 화면 구조를 만들었음. 해당 프로젝트 구조는 기본적으로 UIKit, ReactorKit, RxSwift를 기반으로 하고있고, 몇몇 화면과 컴포넌트들은 SwiftUI로 만들어서 UIHostingController를 사용하고 있음. 최근에는 Combine도 학습하고 있는데 RxSwift의 오퍼레이터들과 거의 비슷해서 이건 그냥 음,,, 딥하게 하지 않아도 알고 있는 것 같고.TCA도 학습하고 있는데, RxFlow를 배워도 사용할 환경이 없을 것 같아서 조금 고민되긴 함 그래도 아직은 RxSwift 기반으로 작성하는 코드가..

such module 'RxCocoaRuntime'

such module 'RxCocoaRuntime' SPM으로 RxSwift 받아서 RxTest, RxBlocking 사용하려니까 위와 같은 에러가 나타남.  아래 깃헙 issue를 보듯이 해당 문제는 다른 개발자분들도 많이 겪고 있는것으로 보임.https://github.com/ReactiveX/RxSwift/issues/2277 No such module 'RxCocoaRuntime' · Issue #2277 · ReactiveX/RxSwiftShort description of the issue: I'm facing a strange issue and I don't know if it is a bug or I'm just missing something. I'm currently working fo..