보통 테스트를 할땐 dev서버를, 배포할땐 production 서버와 연결해서 테스트 하는데요. 현재 운영중인 앱에서도 각 환경별로 분기처리가 되어있는데 유독 aws관련한 json파일만 수동으로 바꿔줘야하는것에 불편함이 있었고 왜 이것만 안되지? 라는 의구심이 들었습니다. 오늘은 해당문제를 해결했던 방법과 환경변수 설정해주는 방법에 대해 블로깅 해보겠습니다. 1. Scheme 분류 스킴(Scheme)을 환경에따라 -Dev, -Release 이런식으로 구분하기 쉽게 분류를 해주도록 합니다. New Scheme - '{프로젝트이름}-Dev' or '{프로젝트이름}-Release' 2. Scheme 역할 설정 Scheme에따라 어떤 환경에서 실행(Run, Test, Archive 등)할 지 설정해주는 부분입니..
최근에 지인이 추천해준 책 중 One Thing(원씽)을 읽고 있는데 한 글귀가 맘에 들어 남겨봅니다. '단 하나의 일을 위한 약속' - 자신의 일을 완벽하게 내것으로 만들어 최고의 경지에 이르고자 하는 마음을 가질것 그러기 위해 오늘 블로깅 주제는 WebRTC 구현을 하면서 긴 시간 날 괴롭혔던 카메라화면방향(videoOrientaion)을 완벽하게 내것으로 만들어보려 블로깅을 해보려고 합니다. 스트리밍 화면 방향이..? 해당 문제는 iOS16이상버전에서 화면회전이 활성화가 되어있을때 나타나던 현상이었습니다. 일단 iOS16이상 버전에서 발생하는 문제이니 #available로 분기처리 if #available(iOS 16.0, *) { // iOS 16버전이상은 이 구문 실행 } 그 다음 아래 두개를 ..
1년동안 준비했던 결혼도 성공적으로 끝마쳤고, 신혼여행가서 신나게 놀다가 돌아와보니 슬랙, iOS 단톡방 등 읽을게 너무 많이 쌓여있었다. (현실자각) 푹 쉬고 돌아왔으니 다시 맘 잡고 시작해보자 근데 발리 진짜 석양맛집🌅 오늘은 전체화면으로 동영상 재생중에 닫힘 버튼을 눌렀을때를 감지 하는걸 블로깅해보려고 합니다. 별것 없는것 같아 보이지만, 이번 작업을 통해 문제를 해결하기 위한 방법은 많다는걸 배웠습니다. 요구조건 1. 타사 영상 플랫폼이 아닌 앱 내에서 바로 보여질것 2. 전체화면으로만 보여질것 3. 전체화면이 닫혔을때 이전화면으로 돌아갈것 고민했던점 시안을 보자마자 고민했던건 1. 비디오면 AVFoundation이지! 2. AVPlayerVC를 사용해서 3. 'X' 버튼을 눌렀을때 닫힘을 감지해..
WebRTC 3가지 주요기능 MediaStream 카메라, 마이크 등의 데이터 스트림 접근 RTCPeerConnection 암호화, 대역폭 관리 및 오디오/비디오 연결 RTCDataChannel 일반적인 데이터의 P2P통신 ICE (Interactive Connectivity Establishment) 두 Peer간 데이터 송수신시 최적의 경로를 찾아주는 프레임워크 두 Peer간 연결 테스트를 위해 SDP를 이용해 미디어 패킷을 보내 연결 가능한지 확인 함 ICE Candidate STUN, TURN 서버를 이용해 얻어낸 IP주소, 프로토콜, 포트의 조합으로 구성된 네트워크 주소들 private IP , 포트번호 public IP, 포트번호 (STUN, TURN 서버에서 구해옴) TURN 서버의 IP, ..
국내에서만 제공되는 서비스를 글로벌화 시키고 싶을때 현지화 작업을 합니다. 키워드는 Localization. 기기 시스템언어 & 지역 설정 별로 앱에 보여지는 언어를 다르게 하고 싶을때 사용하는데요. 오늘은 Localization에 대해 정리해 보겠습니다. 목차 Storyboard Localization Programmatically Localization TIP 앱 아이콘은 현지화 지원 X extension으로 편하게 써보기 Xcode에서 언어 설정을? Localization (적용 사진) 먼저 사진으로 현지화가 어떤건지 보고 가실게요. 시스템 언어 & 지역 (한국) 시스템 언어 & 지역 (미국) 1. Localization (with. Storyboard) 현지화 작업 테스트를 위해 Main.st..
어떤건 required init에 구현해야하고, 어떤건 super.init에 구현되어야 하는데 이유가 궁금해졌습니다. required init 먼저 required init은 단어 그대로 '필수적인' init 인데, 사용하는 방법은 여러가지 방법이 있습니다. 하위클래스 required init() 생략 상위클래스를 상속받는 하위 클래스 예시 코드를 먼저 봅시다. 하위클래스(ChildClass)에서 requried init() 메서드 호출이 없어도 자동적으로 상속받는 상위클래스(ParentClass)의 required init을 호출하게 되어 10이 출력됩니다. 하위 클래스 required init() 구현 그럼 하위클래스의 required init() 메서드를 호출하면 어떻게 될까? 하위클래스(Child..
지난 블로깅에 AVAssetWriter로 비디오를 저장하면서 FileManager에 대해 스쳐 지나가듯 나왔었는데요! 이번 블로깅은 FileManager에 깊게 한번 파보려고 합니다 :) 파일 시스템의 내용에 대한 편리한 인터페이스 및 상호 작용의 주요 수단입니다. 그냥 파일을 관리 하는 Class에요! 아이폰을 사용하면서 한번쯤 보셨을 파일 앱에 보통 저장 됩니다. 들어가기전에 용어 정리를 하고 갑시다 Folder = Directory 진행될 플로우는 아래와 같습니다. info.plist 권한 저장할 파일의 경로 설정 (URL), (appendingPathComponent) Directory(폴더) 생성 파일경로 설정 및 생성 & 확장자 설정 파일 삭제 1. Info.plist 권한 아래 두 권한을 모..
회사에서 움직임 감지 기능구현을 하면서 두 가지 기능이 필요했다. 1. 영상 녹화/ 저장 2. 움직임 감지 일단 영상 녹화/저장은 참고해볼 자료가 많아서 리서치 하는데 오래 걸리진 않았지만.. 움직임 감지기능과 영상을 녹화,저장을 동시에 하는 구현을 하면서 겪었던 산전수전을 기록하고자 한다. 삽질시작 빨리 끝낼 수 있는것 부터 손보려고 했고, 영상 녹화/ 저장 으로 가장 많이 나왔던 키워드는 AVCaptureMovieFileOutput, PHPhotoLibrary 였다. 이전 Camera설정 - AVCaptureSession 에서 블로깅했듯, 어렵지 않게 영상 녹화/ 저장 부분을 구현할 수 있었다. 그런 다음 움직임 감지를 하기 위해 제가 여러가지 리서치를 해보며 추려낸 키워드는 AVCaptureVide..
현업에선 RxSwift를 사용하고 있다. 그중 가장 많이 보이는건 .rx 이 친구.. 도대체 뭘까? Button.rx TextField.rx 이런건 봤는데 따로 커스텀해서 만들어져있는걸 보고 공부해야겠다 안되겠다..하고 미루고 미루던게 드디어 오늘이다. 한번 파보자 !! .rx Observable 타입을 표현하는 확장자로, 비동기적으로 데이터를 생성하고나 다른 이벤트를 전달 하는 시퀀스 인데 기본형태로는 아래와 같이 쓰입니다. extension Reactive where Base: SomeType { } 가장 끝 SomeType 쪽에 (UIButton, UITextField, URLSession 등) 감지하고 싶은 특정 reactive extension을 구현합니다. 예시) self.someButton ..
- Total
- Today
- Yesterday
- Swift Leetcode
- Swift 알고리즘
- 2023년 회고
- Combine: Asynchronous Programming with Swift
- Swift 프로그래머스
- CS 네트워크
- swift property
- iOS error
- Swift init
- swift programmers
- Swift joined
- Swift inout
- swift (programmers)
- RTCCameraVideoCapturer
- removeLast()
- Swift 프로퍼티
- ios
- Swift final
- Swift 내림차순
- Swift Error Handling
- RIBs tutorial
- Swift joined()
- Swift RIBs
- swift 고차함수
- Swift
- swift reduce
- Class
- Swift ModernRIBs
- 원티드 프리온보딩
- swift protocol
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |