-
로컬라이징(Localization, Localizable) 적용하기 / info.plist/iOS 📱 2022. 8. 21. 23:53
안녕하세요 Rx입니다😊 오늘은 한글 하드코딩을 피하고 다국어 지원을 위한 현지화에 대해서 포스팅하겠습니다. 로컬라이징이 뭔데 ? 현지화는 글로벌화 (Globalization)와 대비되는 개념으로, 글로벌화가 세계공통의 표준화를 노리는 전략이라면 현지화는 현지의 문화적, 정치적, 사회적 특성에 맞춘 특화에 초점을 맞춘다고 할 수 있다. -나무위키- 나무위키에서는 위와 같이 설명하고 있습니다. 아이폰에서 한국어 이외의 언어로 변경하였을 때 앱에서 영어가 나온 것을 볼 수 있습니다. 여러분들도 어떤 앱이 어떻게 로컬라이징을 하고있는지 한번 찾아보세요 !! 이제 본격적으로 info.plist 에 로컬라이징을 적용해보겠습니다 !! 고고 !! info.plist 카메라 사용 권한을 얻기 위해 info.plist에 ..
-
[iOS] 화면 스크린샷 방지 기능 개발에 대한 회고/iOS 📱 2022. 7. 6. 11:51
개요 iOS 단말에서 특정 화면을 스크린샷을 하지 못하게 해달라는 요구사항이 있었는데요 ! 구글링과 Github를 돌아다니며 가볍게 훑어보니 관련한 레포지토리들이 검색 결과가 있던 편이었습니다. 단순하게 오 ~ 구현이 쉬운가보다하고 넘어갔었는데 그것은 저에게 큰 시련으로 다가오게됩니다....! (회고를 작성하게된 계기...!) 요구사항 정리 요구사항은 보안상의 이유로 특정화면의 캡쳐를 방지하는 것이었습니다. 특정 화면을 막았더라도 사진으로 저장하는 방법을 넷플릭스 우회법으로 검색을 해보니 아래와 같이 정리할 수 있었습니다. 스크린샷 기능 사용 화면 기록를 통해 기록한 영상을 스크린샷 App Switcher 를 통해 보이는 화면을 스크린샷 주어진 시간은 2일, 요구사항, 그리고 우회 방법까지 막는 것은 크..
-
[iOS] 디바이스의 정보를 알아보자 UIDevice - UUID (1)/iOS 📱 2022. 5. 14. 22:12
공부한 내용을 기록한 게시물이기 때문에 틀릴 가능성이 있습니다. uuid, 보통 기기 고유의 유니크한 Key라고 불려온다. 그런데 uuid가 바뀌는 현상이 있어, 자동 로그인에 문제가 생겨 관심이 가게 되었다. UDID (Unique Device identifier) UUID에 대해서 알아보던 와중에 이전에는 UDID (Unique Device Identifier) 사용을 했다고 나와있었다. 단말기를 식별하기 위해 고유하게 할당된 40개의 숫자와 문자열인데, 기기 식별 값은 개인정보의 문제가 일어나 iOS 5에서 deprecated 되었다 그래서 현재 사용하지않으므로 이정도로만 역사(?)에 대해서만 알아보았다. UUID (Universally unique identifier) UUID란 한글로 말하면 범..
-
[] 빠른 앱 심사(aka. 긴급심사) 신청 하는 방법/Apple 심사 & 배포 관련 2022. 5. 9. 22:42
간혹 심사를 신청하고 빨리 승인되기만을 손 꼽아 기다리는 날이 있다. 배포한 앱에서 버그가 발생한다던지,,, 프로젝트 마감 날짜가 다가온다던지,,, 빠른 앱 심사 신청은 이곳에서 가능하다. 신청 순서 1. 앱 심사 버튼 2. 빠른 앱 심사 요청 3. 앱 심사 팀에 연락 (전화문의가 없어서 아쉽아쉽 ㅜ) 4. I would like to request an expedited app review 5. App Name, Apple ID of App, Related Apps(optional), Platform 텍스트필드를 채워준다 Apple ID of App은 App Store Connect 의 나의 앱으로 접속하여 일반 정보 > 앱 정보 Apple ID의 번호를 작성하면된다. 6. Description 필드를..
-
[iOS] 동적 테이블 뷰 셀(UITableView Dynamic cell height) 만들기 (estimatedRowHeight, autoDimension)/iOS 📱 2022. 5. 1. 00:31
UITableView 의 Content Type은 두 가지가 있다. 정적인 방법 (Static Cells) 동적인 방법 (Dynamic Prototypes) 동적인 방법의 Prototype Cell에 대해서 알아볼려고한다. 테이블 뷰의 행 높이를 결정하는 크게 두 가지 방식이 있다. 모두 동일한 높이를 갖는 방식 각 셀마다 다른 높이를 갖는 방식 각 셀마다 다른 높이를 갖는 방식에 내부 콘텐츠에 따라 동적으로 셀의 높이가 가변하는 방식이 또 있다. 모두 동일한 높이를 갖는 방식 테이블 뷰에서 행의 높이를 결정하는 것은 UITableView 객체의 rowHeight 속성이다.높이 설정하는 방법 : 인터페이스 빌더 테이블 뷰 전체에 일괄로 높이를 설정하는 방법 해당 프로토타입 셀 하나에만 높이를 설정하는 방..
-
[] Apple Developer Program 계정에 등록된 법인명 변경해보자/Apple 심사 & 배포 관련 2022. 4. 27. 05:03
회사 법인명이 바뀌면서 기존 앱스토어 개발자 팀 이름을 변경해야했다. 회사 생활하면서 겪을까말까한 일이라고 생각해서 회고록을 작성해본다 파란 동그라미 부분의 개발자 이름을 변경해야했다 아래 카카오톡은 예시일뿐 내 회사랑은 아무 관계도없다 !! ㅜㅜㅜ 가고싶따ㅏ Apple Developer 문의하기로 이동하자 ! 문의하기 페이지에서 멤버십 및 계정 > 조직 이름 변경을 누른다. 전화 문의와 이메일 문의 두 가지가 있었는데 영업 시간(09시 ~ 17시) 내에 전화 문의를 요청하면 1분 내에 신속하게 전화가 왔다. 전화 문의 이후 팀 변경 문서를 작성해달라고 답변을 받았다. 우측 하단에 Need to edit this information? 버튼을 눌러준다 작은 팝업이 나오는데 Provide your upda..
-
[iOS] Core Loaction 위치 권한 설정하기/iOS 📱 2022. 4. 26. 23:57
안녕하세요 ! 오늘은 위치 정보가 필요할 때 위치 권한을 얻는 방법을 공부해보겠습니다 iOS 13 기준으로 설명드릴게요 ++ 추가 2024.01.19 (금) iOS 13에서 deprecated 된 방식 이외에 iOS 14에서 사용하는 프로퍼티와 메소드 추가 권한상태를 쉽게 출력할 수 있는 extension 추가 공식 문서로 자세하게 찾아보겠습니다. 1. 위치 정보를 받기 전에 requestAlwaysAuthorization() 혹은 requestWhenInUseAuthorization() 메소드를 꼭 호출해야한다고합니다. 2. Info.plist 파일에 key를 추가해줘야한다네요. 3. 권한 요청에 대한 사용자의 인터렉션은 CLLocationManager 의 delegate를 위임 받아, location..
-
[iOS] ViewController의 생명주기 (Life-Cycle)/iOS 📱 2022. 4. 25. 02:17
iOS 앱에서 보이는 화면은 ViewController로 이루어져있다고해도 과언이 아니네요. 그런 중요한 녀셕인만큼 잘 알고 쓰고싶은 마음입니다 시작해봅니다 ~ 우리는 프로젝트를 생성하게 되면 가장 먼저 만나는 화면이자, 코드입니다 궁금하니까 Jump to Definition을 통해 봤습니다. loadView 이후에 불려진다 ? 일단 전체적인 Life-Cycle를 알아보자 ! 위 문서에 나온 순서에 맞춰 각 메소드를 알아보겠습니다 viewDidLoad() 이 메소드는 view controller가 메모리에 불려졌을 때 호출이 되며 view가 nib 파일에서 호출되었는지, 프로그래밍적으로 loadView() 메소드에서 만들어졌는지 여부에 관계없이 호출되어진다고합니다. viewWillAppear(_:) vi..