본문 바로가기

iOS 일반/iOS5

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.