반응형

분류 전체보기 186

Using existentials and generics(익스텐셜 / 제네릭 타입)

Using existentials and generics  Comparing existential and generic types스위프트 프로토콜들은 다양한 타입을 채택할 수 있는 기능과 특성을 정의할 수 있습니다예를들어 아래에 있는 것처럼 두 방식의 프로토콜을 볼 수 있습니다protocol Pollinator { func pollinate(_ plant: String)}//Pollinator protocol 채택하면 반드시 구현해야함struct Hummingbird: Pollinator { func pollinate(_ plant: String) { print("\(plant) pollinated by a hummingbird's bill.") }}//Pollinator p..

Swift 2024.08.06

SwiftUI | Transcribing speech to text

Request authorization to device hardwareScrumdinger는 오디오 녹음에서 회의 전사를 생성하므로, 기기의 마이크 접근이 필요합니다. 보안 기능으로 인해, 사용자는 개인 정보나 민감한 기기 하드웨어에 대한 접근을 명시적으로 허용해야 합니다. 사용자 데이터 보호에 대한 자세한 내용은 Protecting the User’s Privacy 문서를 참조하세요.이 섹션에서는 사용자가 접근을 허용하거나 거부하도록 요청하는 사용 설명을 추가할 것입니다.NSSpeechRecognitionUsageDescriptionYou can view a text transcription of your meeting in the app.NSMicrophoneUsageDescriptionAudio ..

SwiftUI 2024.08.06

SwiftUI | Examining data flow in Scrumdinger

Examining data flow in Scrumdinger프로젝트에서 두 개의 모델 객체인 ScrumTimer / SpeachRecognizer가 포함되어 있습니다이 객체들은 Scrumdinger 인터페이스에 표시되는 동적 데이터를 관리하고 있습니다 이전 튜토리얼에서 'ScrumTimer'를 이미 다루어 보았는데 다음 튜토리얼에서는 'SpeechRecognizer'의 인스턴스를 생성하고이 모델 객체들을 탐구하고 SiwftU의 상태 관리 및 생명주기 기능을 사용해서 데이터 흐름을 구현하는 방법을 알아보겠습니다 Scrum timer meeting properties스크럼 타이머 미팅 속성은 'ScrumTimer'데이터에서 상태와 생명주기를 관리하는 튜토리얼에서 미팅 뷰에 스크럼 타이머를 인스턴화 하고 미..

SwiftUI 2024.08.06

SwiftUI | Adopting new API features

Setting a deployment target각 타켓은 프로젝트의 배포 타겟 설정을  통해 앱이 실행될 수 있는 최소 운영 체제 버전을 지정한다이 설정은 앱 새발 시 사용할 수 있는 프레임워크 버전을 결정한다새로운 기능이나 프레임워크를 버전을 채택하려면 이 설정을 변경할 수 있다 Xcode 14에서 생성한 Scrumdinger 프로젝트의 배포 타겟은 iOS16입니다16이상을 실행하는 모든 장치에서 이 앱을 실행할 수 있습니다  iOS 16.0에서 도입된 NavigationStack을 Create a navigationhierachy에서 추가했기 때문에 Scrumdiger타겟을 15.0으로 설정하면 NavigationStack을 사용한 모든 부분에서 컴파일 오류가 발생합니다 NavigationStack..

SwiftUI 2024.08.06

Adopting Swift concurrency

Adopting Swift concurrency  Swift에서 동시성(Concurrency) 기능을 사용하면 비동기적이고 올바른 비동기 코드를 더 쉽게 작성할 수 있습니다현재 이 글에서 비동기 함수를 정의하고 호출하는 방법과 스위프트의 동시성 기능을 어떻게 간소화하는지 설명하고 있습니다  Simplifying asynchronous codeSwiftUI 앱에서는 모든 UI 작업을 메인 스레드에서 실행합니다또한 모든 사용자 이벤트(Tap, Swipe...)도 메인 스레드에서 전달됩니다앱이 올바르게 작동하려면 모든 뷰 업데이트와 이벤트 핸들러를 메인 스레드에서 실행해야 합니다 하지만 메인 스레드에서 너무 많은 작업을 수행하면 앱 전체가 반응이 느려집니다메인 스레드가 작업물을 완료하기 위해서 대기하면 뷰 업..

SwiftUI 2024.08.05

SwiftUI | Responding to events

Responding to events지금까지 배운 SwiftUI 프로퍼티 래퍼를 사용해서 앱의 사용자자 인터페이스에서 상태를 관리하고 사용자 상호작용에 응답할 수 있습니다하지만 앱 상태의 변화에 따라 어떻게 동작을 수행할 수 있을지 알 수 있을까?이 문서에는 SwiftUI 장면 아키텍처, 앱 상태, 뷰가 화면에 나타나고 사라지는 등 이벤트에 반응하는 뷰에 대해서 알아보고자 합니다Scene architecture앱 상태를 살펴보기 전에 SwiftUI가 장면을 구성하는 방법을 살펴볼 수 있습니다Scene은 시스템이 관리하는 수명 주기가 있는 앱 사용자 인터페이스의 일부라고 할 수 있습니다 앱을 만들려면 앱 protocol을 준수하는 구조를 정의하고 정의 앞에 @main 속성을 추가하여 유일한 진입점이라고 시..

SwiftUI 2024.08.02
반응형