요즘 프로젝트를 진행하면서 너무 정신없이 바쁘단 핑계로 아주 오랜만에 블로그를 남긴다.. 영상 챗봇 관련 내용을 진행하면서 AVAudioSession을 다루는데 영상을 킨상태로 음성을 다루자니 자동으로 ducking되는 현상때매 꽤나 애먹었던 기억이 있어서 AVAudioSession은 어떤 것이고 무엇을 다루고 설정할 수 있는지 정리 해놓으려고 한다. 먼저 iOS에서 AVAudioSession은 앱과 iOS 오디오 시스템인 Core Audio 사이에서 중개자 역할을 담당한다. 여기서 어떤 방법을 통해 연결하는지 알아보도록 하자AVFoundation계층에서 AVAudioSession은 AVFoundation 프레임워크 안에 구현된 클래스이다. 앱은 AVFoundation을 통해 오디오 세션을 구성하고 활성..
이전에는 Swift Package를 활용해 모듈화를 구현해 봤다면, 오늘은 Tuist를 활용해 모듈화 아키텍처 구조를 설계해보려고 한다.먼저 Tuist에 대해서 아주 간략하게 개념을 잡고 가자면, 협업을 하면서 프로젝트 파일이 충돌되는 일이 잦아 conflict가 나는 일이 있다. 그 문제를 해결하는데 혼이 쏙 빠진 적이 있는데 이 프로젝트의 복잡한 설정과 관리를 코드로 처리할 수 있도록 도와주는 도구라고 이해하면 된다! Swift 언어로 프로젝트를 관리하게 되니 여러 측면에서 생산성이 증가하고 이 외에도 모듈화 하는 과정에서 그 구조를 체계적이고 시각화할 수 있다는 점 등등 협업 하는 과정에서 아주 이점이 많은 툴이다. 이제 Tuist로 프로젝트를 시작해보자. 일단 Tuist가 설치되어있다는 것을 가정..
챗봇을 개발하면서 예외, 오류 처리 등 이용자 경험에 필수적으로 포함되어야 하는 부분에 대해 구현하기 위해 일단 발생할 수 있는 상황을 정리해 에러 핸들링을 나열하고 이 핸들링을 통해 특정 상황에 맞는 Toast 메세지를 날려주는 로직을 구현하려고 한다! 먼저 최대한 기능별 모듈화를 통해 프로젝트를 쪼개 구현하고 있기 때문에 에러 핸들러 패키지를 만들어서 사용하는 방식을 사용해보자!이 글에서는 대표적인 사례로 인터넷 연결이 끊겼을때 상황을 가정해 로직 구현을 해보려고 한다.public enum NetworkError: Error { case networkError(code: Int, underlying: Error?) case noInternetConnection case yesInter..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.