iOS 일반9 iOS에서의 Audio Session Apple의 Audio Session Documentation 을 참고하여 따로 정리해본 오디오 세션 정리글입니다. Audio Session 동작에 대한 개괄적인 설명과 play, record 등을 위한 Audio Session Setting 방법을 다룹니다. 더 상세히 공부하고 싶다면 여기를 참고하세요. Audio Session Audio Session은 다음 그림으로 이해할 수 있다. OS단에서 관리하는 오디오 모듈이 있음. 애플에서는 앱에서 이 오디오 모듈과 통신할 수 있도록 오디오 세션 API를 제공함 앱이 시작되면 자동으로 오디오 세션이 제공됨 (AVAudioSession. 싱글톤) 오디오 세션의 라이프사이클은 앱의 라이프사이클과 일치 앱의 라이프사이클동안, 앱 오디오 세션과 OS단과의 인터랙션.. 2021. 6. 3. Data Flow Through SwiftUI WWDC 2019 세션 중 하나인 Data Flow Through SwiftUI의 흐름을 따라가며 요약/메모. SwiftUI와 Combine 영상을 다시 보던 중 정리할 겸 해서 포스팅합니다. 발표 시점으로부터 시간이 흐르며 리네이밍 된 API 등도 있어서 그건 따로 표기를 해두었습니다. 애플이 추구하는 방향, 핵심적인 개념 등은 변하지 않았기 때문에 아직 듣지 않으신 분들은 한 번 들어보시거나 이 포스트를 읽어보셔도 좋을 것 같습니다. 세션 개요SwiftUI는 UI개발의 복잡성을 해결하기 위해 새롭게 고안된 것으로써, 심플하지만 강력한 툴입니다. 여러분이 일관성있는 아름답고 정확한 유저 인터페이스를 작성할 수 있도록 완전히 새롭게 만들어졌습니다. 완전히 예측 가능하며 오류도 없이 UI를 데이터에 의존하.. 2020. 2. 25. Swift로 그래프 탐색 알고리즘을 실전 문제에 적용해보기 - BFS 편 그래프 탐색 알고리즘에 대한 이해가 선행되어야 한다. 그래프와 DFS/BFS의 개념을 모른다면 여기를 추천한다. Depth-First Search (DFS) - 저번 시간에 한 것📍 - 깊이 우선 탐색 - 이번 포스팅에서는 weigh을 가지지 않는 방향 그래프에서 모든 경우를 구해볼 때 이 DFS를 사용할 것이다. 예를 들면 1부터 N까지의 자연수 중 n개의 집합을 만들 수 있을 때, 가능한 모든 순열을 구해야 할 때 사용할 수 있다. - 스택을 통해 구현한다. 즉, 재귀함수를 통해 구현할 것이다. (함수가 호출되면 스택 영역에 쌓이게 된다. 함수가 무한호출될 때 Stack Overflow 가 발생하는 것도 여기서 기인하는 것.) Breadth-First Search (BFS) - 이번 시간에 할 것📍 .. 2020. 1. 10. Swift로 그래프 탐색 알고리즘을 실전 문제에 적용해보기 - DFS 편 그래프 탐색 알고리즘에 대한 이해가 선행되어야 한다. 그래프와 DFS/BFS의 개념을 모른다면 여기를 추천한다. Depth-First Search (DFS) - 이번 시간에 할 것📍 - 깊이 우선 탐색 - 이번 포스팅에서는 weigh을 가지지 않는 방향 그래프에서 모든 경우를 구해볼 때 이 DFS를 사용할 것이다. 예를 들면 1부터 N까지의 자연수 중 n개의 집합을 만들 수 있을 때, 가능한 모든 순열을 구해야 할 때 사용할 수 있다. - 스택을 통해 구현한다. 즉, 재귀함수를 통해 구현할 것이다. (함수가 호출되면 스택 영역에 쌓이게 된다. 함수가 무한호출될 때 Stack Overflow 가 발생하는 것도 여기서 기인하는 것.) Breadth-First Search (BFS) - 다음 시간에 할 것📍 .. 2020. 1. 7. Swift로 작성해보는 기본 자료구조 - Stack, Queue Swift로 작성하는 Stack struct Stack { var isEmpty: Bool { return self.list.isEmpty } var top: T? { return self.list.last } mutating func push(_ item: T) { self.list.append(item) } mutating func pop() -> T? { return self.list.popLast() } private var list = [T]() } Swift로 간단히 작성해본 Stack이다. 특별히 어려운 부분은 없으며 포인트가 되는 부분은 다음 두 가지다. 1. 제네럴한 아이템을 관리할 수 있도록 제너럴 를 사용하였다. 2. 값 타입인 Struct로 작성했기 때문에 push 와 pop 함수에.. 2020. 1. 6. Swift의 Array가 멀티쓰레드에서 안전하지 않은데 어떻게 하면 될까요? (Stack Overflow) 원문 Adding items to Swift array across multiple threads causing issues (because arrays aren't thread safe) - how do I get around that? 뜻을 이해하기 쉽도록 의역/추가설명을 붙인 부분들이 있습니다. Question Swift 멀티 쓰레드 환경에서 Array에 아이템을 추가하려고 했더니 이슈가 발생했습니다(Array가 쓰레드에 안전하지 않음). 어떻게 하면 될까요? 저는 블럭을 저장하는 Array를 만들고, 요청을 받았을 때 그 Array 안의 블럭을 전부 실행시켜주고 싶었습니다. 그래서 다음과 유사한 코드를 작성했습니다. class MyArrayBlockClass { private var blocksA.. 2019. 12. 30. 이전 1 2 다음