728x90

분류 전체보기 289

Xcode에서 빌드에 걸린 시간 확인 방법

안녕하세요. 이번에는 Xcode에서 빌드에 걸린 시간을 확인하는 방법에 대해 소개해볼게요. 보통 Xcode에서 빌드하면, 아래처럼 "Build Succeeded"라는 메시지와 빌드가 끝난 시간을 표시해줍니다. 근데, 빌드가 끝난 시간이 아닌 빌드에 걸린 시간을 표시해줄 수도 있어요. 방법은 터미널에 가서 아래 명령어를 입력해줍니다. defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES 그다음에 Xcode에서 다시 빌드를 해보면 빌드에 걸린 시간을 표시해줍니다ㅎㅎㅎ 만약 설정을 원래대로(= 빌드가 끝난 시간을 보고 싶을 경우) 되돌리고 싶다면 터미널에서 아래 명령어를 입력해주세요! defaults delete com.apple.dt.Xcode ..

Xcode 2022.03.19

[오픈소스] Flow

안녕하세요. 이번에는 Flow라는 오픈소스를 직접 써보는 시간을 가져볼게요. This library provides a bunch of extension methods for a better fluent syntax in Swift. This style is very useful for some operations that benefit from being able to be chained (composed) together. Flow 라이브러리는 Swift의 가독성을 높이는 확장 method를 제공합니다. 살펴볼게요ㅎㅎ ## 1. then then method는 copy한 인스턴스를 리턴하기 때문에, 주로 인스턴스를 초기화할 때 사용합니다. 초기 설정들을 블록 안에서 처리하기 때문에, 초기화를 어떻게 ..

Swift 2022.03.16

precondition(_:_:file:line:)

안녕하세요. 이번에는 precondition이 뭔지 간단하게 알아볼게요. # 1. precondition 이란? precondition은 예상하지 못한 상황을 대비한 방어코드입니다. condition = false 일 경우, 예상하치 못한 상황이라고 판단하여 message를 출력해주고 precondition 이후의 코드가 실행되지 않습니다. func isLessThanOrEqualZero(num: Int) -> Bool { if num Bool { if num < 0 { throw MyError.lessThanZero } return true } precondition(test(num: 0)) // error: call can throw, but it is executed in a non-throwing..

Swift 2022.03.16

Canvas 뷰를 통한 성능 향상

안녕하세요. 이번에는 "Canvas 뷰를 썼을 때 정말 성능이 좋아질까??"에 대해 알아볼게요. 전체 프로젝트는 github에 올려두었습니다. SwiftUI에는 Canvas 뷰라는 것이 있어요. Canvas 뷰를 사용하면 복잡한 도형을 그려야 할 경우에 더 좋은 성능을 보여준다고 해요. However, it might provide better performance for a complex drawing that involves dynamic data. Use a canvas to improve performance for a drawing that doesn’t primarily involve text or require interactive elements. 정말 그런지 확인하기 위해 저희는 위 화면..

SwiftUI 2022.03.14

cornerRadius

안녕하세요. 제가 SwiftUI의 cornerRadius에 대해서 잘못 이해하고 있었더라구요..ㅠㅠ 잊지 않기 위해.. 글로 간단하게 정리해보려고 해요. SwiftUI에는 테두리를 둥글게 만들 수 있는 cornerRadius(_:antialiased:) 이란 method가 있습니다. 전 그동안 "cornerRadius method를 사용하면 뷰의 테두리를 둥글게 만들어준다."라고 이해를 하고 있는데, 이게 반쪽짜리 설명이었더라구요. 공식 문서에서는 뭐라고 하는지 볼까요? Clips this view to its bounding frame, with the specified corner radius. Clips the view to its bounding frame, ... 즉, "뷰의 테두리를 둥글게 만..

SwiftUI 2022.03.13

Xcode 13.3부터 macOS Monterey 12 필수

안녕하세요. 최근(2022/03/08)에 Xcode 13.3 RC 버전이 공개되었어요. 혹시 Xcode 13.3 RC 버전을 다운받아서 사용하거나 추후에 정식 배포되었을 때 Xcode 업데이트하실 계획이 있다면, Xcode 13.3은 macOS Monterery 12 이상을 필수로 하고 있기 때문에, 호옥시 아직까지 macOS Big Sur 11을 사용하신다면 (저처럼...) macOS 업데이트 먼저 진행해주셔야 합니다! 저도 슬슬 Big Sur를 보내줄 때가 되었네요... 허헣... Xcode 13.3 beta를 써보다가 안 사실!! 전 Xcode 13으로 업데이트 한 이후부터 코드 자동완성이 잘 안되었는데요 Xcode 13.3 beta 버전에서는 애플에서 몰래 수정을 했는지 자동완성이 아주 잘됩니다!..

News 2022.03.12

[Swift 5.6] Swift 5.6 추가된 기능들

안녕하세요. 이번에는 Swift 5.6에 새롭게 추가된 기능들에 대해 알아볼게요. Swift 5.6은 현재 베타 버전으로 올라온 Xcode 13.3에서 사용 가능하니 참고 부탁드려요. # 1. any 키워드 SE-0335에 소개된 신규 키워드 any는 existential types 앞에 붙는(앞으로 꼭 붙어야 할) 키워드예요. 좀 더 구체적인 설명에 앞서 다른 얘기를 먼저 해볼게요. 프로토콜을 사용하면 그 프로토콜을 채택한 구조체 또는 클래스에서 프로토콜의 요구사항을 준수하도록 구현해줘야 합니다. 예를 들어서, 아래처럼 Vehicle이란 프로토콜이 있고, protocol Vehicle { func travel(to destination: String) } Car라는 구조체가 Vehicle 프로토콜을 채..

Swift 2022.03.12

TabulaData framework

안녕하세요. 이번엔 iOS 15부터 새로 추가된 TabulaData 프레임워크에 대해 알아볼게요. # 1. TabulaData 프레임워크란? TabulaData 프레임워크란 무엇이냐 Import, organize, and prepare a table of data to train a machine learning model. 머신러닝을 위해 데이터 테이블을 import, organize, prepare 하는 것. TabulaData에서 말하는 데이터는 row, column으로 이루어진 테이블을 말해요. 그리고 TabulaData 프레임워크를 통해 그 데이터에서 유의미한 결과를 얻도록 가공하는 것이죠. # 2. DataFrame row와 column으로 이루어진 테이블을 DataFrame이라고 해요. 직접..

iOS 2022.03.09

SwiftUI에서 testable 한 코드 만들기

안녕하세요. 이번에는 SwiftUI에서 testable 한 코드를 만들기 위해 신경 써야 할 부분과, 테스트 코드도 작성해보는 시간을 가져보겠습니다. 이번 글은 아래 글을 토대로 작성되었습니다. https://swiftbysundell.com/articles/writing-testable-code-when-using-swiftui/ Writing testable code when using SwiftUI | Swift by Sundell A major part of the challenge of architecting UI-focused code bases tends to come down to deciding where to draw the line between the code that needs t..

SwiftUI 2022.03.05