iOS
-
identifierForVendor를 이용한 기기 식별하기iOS 2023. 5. 30. 08:48
안녕하세요. 그린입니다🍏 이번 포스팅에서는 identifierForVendor 값을 이용하여 기기를 식별하는것에 대해 알아보려 합니다🙋🏻 만약 해당 앱에서 특별히 회원가입이나 소셜 로그인 등의 기능이 없지만 기기마다 식별을 해주어 서버와 통신을 하고 싶을때가 있을겁니다. 그럴때는 몇가지 방법들이 있지만 오늘 소개할 identifierForVendor의 값을 이용하여 해당 앱에서의 기기별 식별할 값으로 이용할 수 있을겁니다. 그럼 우선 identifierForVendor가 뭔지부터 알아야겠죠? identifierForVendor? identifierForVendor는 UIKit의 UIDevice에서 제공하는 인스턴스 프로퍼티입니다. 앱 공급업체에 대해 기기를 고유하게 식별하는 영문과 숫자로 이루어진 문자열..
-
Setting Bundle을 사용해 커스텀한 설정 추가하기iOS 2023. 5. 1. 20:24
안녕하세요. 그린입니다🍏 이번 포스팅에서는 Setting Bundle을 알아보고 이를 이용해 기본 앱 설정에서 커스텀한 설정들을 추가해보도록 하겠습니다🙋🏻 이 주제에 대해 알아보게 된 계기 우선 엑코 시뮬레이터에서 간혹 발생하는 버그인지 저는 아직 명확한 원인을 찾을 수 없던 문제가 있었어요! 예를들어, 토이 프로젝트로 실제 앱 스토어에 배포되지 않은 앱에서 위치 정보를 받아온다고 가정해볼께요. 그럴때 우리는 위치 정보 허용에 대한 요청을 보내고 이는 디바이스 기본 해당 앱 설정에서 확인할 수 있어요. 즉, 디바이스 > 설정에서 해당 앱이 목록에 노출되어야 하는데 노출되지 않는 문제가 있었습니다. 그래서 사실상 명확한 테스트를 해볼 수가 없었던 이슈로 인해 테스트를 위해서 기본 앱 설정이 목록에 나타나게..
-
쿠키로 안전하게 HLS m3u8 영상 접근하기iOS 2023. 3. 30. 16:14
안녕하세요. 그린입니다🍏 이번 포스팅에서는 HLS와 m3u8파일이 뭔지 그리고 이러한 영상들에 쿠키를 통해 어떻게 안전하게 리소스에 접근할 수 있는지 학습해보고 구현해보겠습니다🙋🏻 우선 쿠키로 안전하게 영상에 접근하기전 HLS와 m3u8이라는 개념에 대해 알아보시죠🕺🏻 HLS (HTTP Live Streaming) 표준 HTTP 기반 스트리밍 프로토콜로 HLS라고 흔히 불립니다. 즉, 쉽게 말해 가장 흔히 사용되는 비디오 스트리밍 프로토콜이라고 하죠. HTTP 파일 조각들로 비디오 파일을 나누고 이를 HTTP 프로토콜을 이용해 전송합니다. 클라이언트 단에서는 이런 HTTP 파일을 로드한 후 비디오를 재생시킬 수 있죠! 그럼 왜 HLS를 사용하느냐? 이에 대한 물음에는 HLS 장점 중 하나로 모든 인터넷 ..
-
Nib & Xib (feat. storyboard)iOS 2022. 12. 29. 10:20
안녕하세요. 그린입니다🍏 이번 포스팅에서는 Nib와 Xib에 대해 알아보겠습니다🙌 UI 구현 종류 우리가 iOS 개발을 하다보면 UI 즉, 화면을 그리는것은 빼놓을 수가 없습니다. iOS에서는 이 UI를 구현하는 방법에 대해 3가지를 이용할 수 있습니다. 1. 스토리보드로 구현하기 2. 코드로 구현하기 3. Nib, Xib로 구현하기 여기서 오늘 알아볼 것이 세번째 Nib, Xib로 구현하는것에 대해 알아보겠습니다🕺🏻 우선 그럼 Nib와 Xib의 정의부터 알아보시죠! Nib Nib는 Nextstep Interface Builder의 약자입니다. iOS / MacOS에서 애플리케이션의 유저 인터페이스를 저장하는 파일이죠. Nib는 UI를 그리는것에 있어서 바이너리 형식의 압축 파일을 이용해 필요한 클래스들..
-
removeArrangedSubview(_:) VS removeFromSuperview()iOS 2022. 11. 14. 17:59
안녕하세요. 그린입니다🍏 이번 포스팅에서는 오랜만에 UIKit을 다뤄볼까해요! 주제는 하위 구성된 뷰를 제거하는 방법으로 removeArrangedSubview(_:)와 removeFromSuperview()가 있습니다. 이 두 메서드를 알아보며 차이를 알아보겠습니다🙌 우선 그럼 removeArrangedSubview(_:)부터 알아보죠! removeArrangedSubview 배열된 상위 뷰의 스택 배열에서 파라미터로 넘어온 뷰를 제거합니다. func removeArrangedSubview(_ view: UIView) 선언은 위와 같이 해당 메서드에 상위 뷰로부터 제거할 하위 뷰를 인자로 넣어주면 됩니다. 해당 상위 뷰에서는 이제 더이상 제거되는 뷰의 위치 및 크기 등을 관리하지 않아요. 그렇지만 아예..
-
dSYM (feat. Firebase Crashlytics)iOS 2022. 8. 29. 16:11
안녕하세요. 그린입니다🍏 이번 포스팅에서는 dSYM에 대해 알아보고 Firbase Crashlytics에서 해당 앱의 비정상 종료되는 상황의 에러 리포트를 받을 수 있도록 dSYM 파일을 업로드 하는 방법에 대해 학습해보겠습니다🙌 dSYM? dSYM이란 debug symbol file의 약자입니다. dSYM 파일은 이름에서도 알 수 있듯이 해당 앱의 디버그 기호 및 정보를 저장합니다. 앱들은 간혹 런타임 에러가 날 경우가 있습니다. 즉 강제 종료가 되는것이고 이는 사용자에게 좋지 않은 사용 경험을 주는것이죠. 그렇기에 꼭 어떤 상황 및 빌드에서 어떤 에러가 나타나는지 배포되어 운영되는 앱에서는 꼭 이를 분석하여 개선시켜야 합니다. 이런 분석을 하기 위해서는 예를들어 파이어베이스의 crashlytics 같..
-
프로젝트 파일 구조 및 네이밍에 대해 (with. TCA & Coordinator 패턴)iOS 2022. 8. 20. 11:40
안녕하세요. 그린입니다🍏 이번 포스팅의 분량은 아주아주 짧습니다! 새로운 프로젝트를 진행하면서 모듈화된 프로젝트의 통일된 파일 구조를 잡아가고 네이밍에 대해 고민함에 있어 기준을 삼고 정해본걸 공유해볼까합니다🙌 프리뷰 우선 들어가기에 앞서 프로젝트의 큰 틀을 설명해봐야 이해가 쉬울것 같아요. 아키텍쳐로는 TCA(The Composable Architecture)를 사용하게 될 것이고 코디네이터 패턴을 적용하여 화면 전환을 담당해줍니다. TCA에 적합한 코디네이터 패턴 라이브러리인 TCACoordinators를 사용합니다. 해당 라이브러리를 몰라도 이번 포스팅은 전혀 전혀 문제가 되지 않습니다. 단지 코디네이터 패턴만 알고 계시면 됩니다! 그럼에도 혹시 이것이 뭔지 궁금하시다면 아래 포스팅을 참고해주세요🙏..
-
NSCache vs URLCacheiOS 2022. 8. 1. 10:25
안녕하세요. 그린입니다🟢 이번 포스팅에서는 오랜만에 간단한 주제인 NSCache와 URLCache의 차이를 알아보려고 합니다🙌 그럼 본론으로 바로 들어가시죠! 우선 둘다 Cache라는 개념에서는 동일할거에요. 그럼 Cache가 뭔지 간단히 살펴볼까요? Cache란? 캐시의 정의는 데이터나 값을 미리 복사해 놓는 임시 장소를 말합니다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 혹은 값을 다시 계산하는 시간을 세이브 하고 싶은 경우에 사용됩니다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있습니다. 그럼으로 캐시는 시스템의 효율성을 위해 여러 분야에서 두루 쓰이고 있습니다. 이것이 캐시의 정의입니다. iOS에서 사용..