728x90

분류 전체보기 289

async/await 용 public API를 추가할 때 고려사항

안녕하세요. 이번에는 SDK 개발자 입장에서 async/await 용 public API를 추가할 때 고려해야 할 사항에 대해 정리해볼게요. 이번 글은 아래 글을 토대로 작성하였습니다. - https://swiftindepth.com/articles/async-await-modules/ Xcode 13.2부터 async/await 구문을 iOS 13에서도 사용할 수 있게 된 것 알고 계신가요?? https://developer.apple.com/documentation/xcode-release-notes/xcode-13_2-release-notes#Swift Apple Developer Documentation developer.apple.com (Xcode 13.1을 사용할 경우엔 iOS 15 이상만 ..

Swift 2022.02.23

Microsoft Open App Store 원칙

### Quality, Safety, Security & Privacy 사용자를 위한 보안 강화 사용자 개인 정보 보호 ### Accountability 경쟁 앱과 동일한 기준으로 자체 앱 유지 다른 앱과 경쟁하기 위해 Open App Store의 비공개 정보나 데이터를 사용하지 않을 것 ### Fairness and Transparency 자체 앱의 순위를 맘대로 올린다거나 하지 않음. 다른 앱과 동일한 기준으로 순위를 매길 것 ### Developer Choice 인앱 결제를 위해 MS Open App Store의 결제 모듈을 사용하도록 강제하지 않을 것 다른 결제 모듈을 사용하는 것에 대한 불이익은 없음 개발자가 비즈니스 목적을 위해 앱을 통해서 사용자가 직접 커뮤니케이션을 하는 것을 막지 않을 것..

News 2022.02.23

addArc(tangent1End:tangent2End:radius:)

안녕하세요. 커스텀 도형을 그리기 위해서 addArc(center:radius:startAngle:endAngle:clockwise:) method는 자주 사용했는데요, 보니까 이런 method도 있더라구요? 그래서 이번 기회에 addArc(tangent1End:tangent2End:radius:) method가 뭔지 그리고 어떻게 사용하는지 알아볼게요. ## addArc(tangent1End:tangent2End:radius:) 알아보기 이 method가 뭘 의미하는지, 어떻게 동작하는지 알아볼게요. Adds an arc of a circle to the current path, specified with a radius and two tangent lines. 반지름과 2개의 접선(tangent li..

SwiftUI 2022.02.22

localization 테스트를 위한 앱 언어 설정 방법

만약에 localization 테스트를 하려고 언어를 설정해야 한다고 할 때, 보통 아이폰 설정으로 가서 Settings > General > Languages & Region으로 가서 언어를 바꿀 것 같아요. 최소한 저는 그렇게 하고 있었어요....;;; 하지만 아이폰 설정을 바꿀 경우엔 디바이스 전체에 영향이 가고, 무엇보다 언어 설정 시간이 좀 필요합니다. 그래서 이번 글에서는 아이폰 디바이스 설정을 바꾸는 방법이 아닌, Scheme을 이용해서 언어 설정하는 방법에 대해 알아볼게요. ## 방법 생각보다 아주 간단합니다. Xcode > Target > Edit Scheme > Run > Options > App Language에서 앱의 언어를 스킴 별로 설정해줄 수 있더라구요?? 기본값은 System..

Xcode 2022.02.21

Mac 윈도우 창 캡처 방법

요즘 유용하게 쓰고 있는 화면 캡처 단축키를 소개합니다. ## 단축키(⇧⌘4) 선택한 부분 캡처 (영역을 드래그 함) 이건 다들 알고 계시죠??ㅎㅎㅎ ## 단축키 (⇧⌘4) 이후 space 입력, 이후 ⌘ 누르고 있음 선택 윈도우 캡처 (자동으로 주변에 그림자와 공백이 생깁니다.) ## 단축키 (⇧⌘4) 이후 space 입력, 이후 ⌘⌥ 누르고 있음 선택 윈도우 캡처 (주변 공백 없이 캡처 됩니다.) ## 참고 - https://twitter.com/DLX/status/1483397595577950211

기타 2022.02.21

iOS 15에 추가된 background 관련 신규 method

안녕하세요. 이번에는 iOS 15부터 새롭게 추가된 SwiftUI의 background 관련 method에 대해 알아볼게요. (이제부터 설명할 모든 method는 iOS 15.0 이상부터 사용이 가능합니다.) # 1 background(_:in:fillStyle:) method는 2가지가 있어요. 하나는 InsettableShape를 파라미터로 받는 것과 또 하나는 Shape를 파라미터로 받는 형태입니다. 이 method를 사용하면 뷰의 background를 insettable shape 또는 Shape 모양으로 만들어줄 수 있어요. 각 파라미터가 뭔지 한번 살펴볼게요. ## style 2번째 파라미터로 넘길 shape를 채우기 위한 ShapeStyle입니다. ShapeStyle 이란, 렌더링 할 때 사..

SwiftUI 2022.02.21

Core Data의 not Optional 설정 시 크래쉬 주의

안녕하세요. 이번에는 Core Data를 Optional로 설정했을 시 주의사항에 대해서 알아보겠습니다. 이번 글은 아래 글을 토대로 작성하였습니다. - https://atomicbird.com/blog/clash-of-the-optionals/ Clash of the Optionals …or, how to accidentally break Swift initialization rules. Today I’m going to talk about optionals. Swift optionals. And also another kind of optional. And how you might break the ironclad rules of Swift without realizing it until it’s t..

Swift 2022.02.20

DiffableDataSource를 사용해서 TableView 드래그&드롭 기능 넣기

안녕하세요. 이번에는 전에 공부한 DiffableDataSource를 UITableView에 적용해보고 드래그 & 드롭 기능까지 추가해보는 시간을 가져볼게요. (전체 프로젝트는 github에 올려두었습니다.) 아래는 결과 화면이에요ㅎㅎ 이번 글은 아래 글을 토대로 작성하였습니다. * https://www.swiftjectivec.com/tableview-diffable-datasource-drag-to-reorder/ Drag to Reorder in UITableView with Diffable Datasource Support drag to reorder in a UITableView using a diffable datasource. www.swiftjectivec.com * https://www...

UIKit 2022.02.19

DiffableDataSource

이번 글은 DiffableDataSource에 대해 알아보겠습니다. ## 1. Data Source 프로토콜? 🤔 DiffableDataSource는 뒤에 Data sources라는 말이 붙었듯이, collection View와 tableView에서 사용하는 클래스에요. 우선 DiffableDataSource를 쉽게 이해하기 위해선 기존에 UI가 어떤 방식으로 업데이트되었는지 알아야 해요. 기존 Data Source 프로토콜 방식이 어땠는지 살펴볼게요. UI가 업데이트되어야 할 경우에는 UI가 Controller에게 - section의 개수는 몇 개야? - section 안에 cell의 개수는 몇 개야? - cell은 어떻게 그려야 해? - ... 을 물어보게 됩니다. 만약에 서버 통신을 해야 한다면 C..

UIKit 2022.02.19

enum 남용 주의

이번 글은 enum을 남용하는 경우에 대해 알아볼게요. Swift의 enum은 많은 기능을 제공하기 때문에 남용될 수 있습니다. Swift의 enum은 computed property라는 것을 제공하기 때문에 아래 같은 코드를 짜는 경우가 많습니다. enum Style { case headline case bodyText case emphasis var isBold: Boolean { // computed property - 값을 계산해서 return switch self { case .headLine, .emphasis: return true case .bodyText: return false } } var fontSize: CGFloat { switch self { case .headline: ret..

Swift 2022.02.17