일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- SwiftData
- unittest
- wwdc2023
- tutorial
- KoreaMango
- xcode15
- DynamicIsland
- 콩세알프로젝트
- test
- WWDC
- 개발자
- letswift
- 1주차
- Unit
- 2주차
- tutorials
- 회고
- 대학생협
- 3주차
- Swift
- watchkit
- 프로그래머스
- ios
- 2023
- RxSwift
- ActivityKit
- watchapp
- @Model
- fruta
- swiftUI
- Today
- Total
목록swiftUI (19)
KoreaMango 나무
Meet ActivityKit - WWDC23 - Videos - Apple Developer Meet ActivityKit - WWDC23 - Videos - Apple Developer Live Activities are a glanceable way for someone to keep track of the progress of a task within your app. We'll teach you how you can... developer.apple.com Live Activity 이벤트나 작업 진행 상황을 지켜보는 방법 Live Activity는 시작과 끝이 나뉘어 있으며 백그라운드 앱 런타임이나, 푸시알림을 통해 실시간 업데이트를 제공한다. Dynamic Island는 한번에 최대 2개의 실..
서론 저번에 AppClip하면서 봤던 Fruta 라는 애플 앱이 있는데 코드를 보니 신기한 부분이 많아서 조금 찾아봤다. 특히 이 부분이었다. resultBuilder에 대해서 찾아보니까 DSL 을 만들기 위한 프로퍼티 래퍼인 것 같다. WWDC 영상에 DSL을 만드는 방법도 있길래 한번 보려고 한다. [Write a DSL in Swift using result builders - WWDC21 - Videos - Apple Developer](https://developer.apple.com/wwdc21/10253) Write a DSL in Swift using result builders 일부 문제들은 “커스텀된 프로그래밍 언어” 또는 “DSL”을 만듦으로써 쉽게 해결된다. DSL를 만드려면 자체 ..
Apple Developer Documentation developer.apple.com 1. Drawing the Timer View Section 1. Create the Meeting Timer View 아무런 기능이 없던 원래 원을 없애고 작업률을 나타내는 새로운 원과 발표자의 이름을 포함하는 View를 넣을 것이다. struct MeetingTimerView: View { let speakers: [ScrumTimer.Speaker] let theme: Theme private var currentSpeaker: String { speakers.first(where: { !$0.isCompleted })?.name ?? "Someone" } var body: some View { Circle()..
Apple Developer Documentation developer.apple.com 5. Handling Errors 앱을 개발하는 동안 구문 또는 의미론적 오류가 발생하여 수정되었을 수 있다. 예를 들어 네트워크 연결이 끊어져서 파일에서 데이터를 읽는 것을 실패할 수 있다. 이런 문제가 발생했을 때 안내를 제공해서 오류를 해결하는 방법에 대해 알아보자! Section 1. Add an Error Wrapper Structure 항상 작업을 완료하거나 출력을 생성하는 기능이 있을 수 있다. 파일에 읽기 권한이 없거나 지정한 경로에 없을 수도 있다. 아니면 인코딩 형식이 올바르지 않을 수도 있다. 작업이 실패했을 때 무엇이 오류를 야기했는지 사용자에게 이해시켜주는 것이 도움이 된다. import Fo..
Apple Developer Documentation developer.apple.com 4. Modernizing Asynchronous Code Swift 5.5 는 async/await 과 구조화된 동시성을 포함한 새로운 동시성 기능 세트를 도입했다. 앞에서 했던 지속 데이터에서 작성한 로드 및 저장 방법은 비동기적이지만 새 비동기/대기 패턴과 호환되지 않는다. 이 튜토리얼에서는 다른 비동기 코드에서 메서드를 호출할 수 있도록 이러한 메서드에 대한 비동기 인터페이스를 만든다. Section 1. Change the Deployment Target (이거 삭제하고 바꾸는 사진 넣기) Scrumdinger project (최상위 파일)을 클릭하고 target에 있는 프로젝트를 클릭하면, info 섹션에..
Apple Developer Documentation developer.apple.com 3. Adopting Swift Concurrency Swift 5.5 에는 성능 좋은 비동기 코드를 더 쉽게 작성할 수 있는 새로운 비동기와 대기 키워드가 포함되어 있다. 비동기 함수를 정의하고 호출하는 방법을 배우고, 구조화된 동시성이 복잡한 비동기 함수를 단순화하는 방법을 살펴보자! Simplifying Asynchronous Code static func load(completion: @escaping (Result)->Void) { DispatchQueue.global(qos: .background).async { do { // Decode scrums DispatchQueue.main.async { com..
Apple Developer Documentation developer.apple.com 2. Adopting New API Features 각 SDK 버전은 새로운 기술, 구조, 언어 특성을 포함한다. 이 글에서는 호환성을 유지하면서 API를 적용하는 방법에 대해 알아보자. Setting a Deployment Target Xcode 프로젝트의 각 프로젝트에는 앱을 실행할 수 있는 운영체제의 초기 버전을 지정하는 배포 대상 설정이 있다. 이 설정은 앱을 개발하는 데 사용할 수 있는 프레임워크 버전을 결정한다. 새 기능, 또는 프레임 워크를 채택하려는 경우 이 설정을 변경할 수 있다. 이 프로젝트는 iOS 14.0의 배포 목표를 갖고 있다. 즉, iOS 14.0 이상을 실행하는 모든 장치에서 앱을 실행할..
Apple Developer Documentation developer.apple.com 1. Persisting Data 이번 장에서는 scrum을 Load하고 Save하기 위한 메소드와 앱의 모델을 위해 Codable을 추가할 것이다. Section 1. Add Codable Conformance 이 섹션에서 Model에 Codable을 추가할 것이다. Codable이란 Encodable 과 Decodable을 결합한 type 별칭이다. 이 프로토콜을 사용해서 구현할 때, Codable API는 JSON 파일을 구현화하기에 더 쉽게 만들어준다. enum Theme: String, CaseIterable, Identifiable, Codable { ... } struct History: Identifi..