전체 글 (127) 썸네일형 리스트형 빌드 환경 분리 - Xcode 이전까지는 빌드 환경에 대해서 딱히 고려하지 않았다. 필요성을 느낀 이유는 출시한 앱이 구글광고를 포함하고 있기 때문에, 개발환경에서는 해당 구글광고 유료 ID를 이용하면 안된다. ( 예전에 실수로 개발하다가 계속 유료 ID쓰면서 테스트했더니 구글로부터 경고 먹었었다. ) 그래서 개발할 때는 테스트 광고 ID를 사용하고, 출시할 때는 유료 ID로 변경해서 배포해야한다. 이걸 매번 수동적으로 하자니 불편함이 있고, 또 실수로 깜빡하는 경우도 생긴다. 그러면 또 다시 아카이브, 제출...하는 귀찮음이 발생한다. 지금까지 참고 오다가, 이번에 자동배포를 Fastlane을 적용해보면서, 자동화에 대해 관심이 생겼고, 광고ID도 자동으로 변경됐으면 하는 생각이 들었다. 내가 기대하는 결과는 다음과 같다. 개발을 .. Relationship을 가지는 CoreData를 json으로 변환하기 우선 다음과 같은 Entity 2개가 있고, 각 relationship을 갖고 있다라고 가정하자. 그래서 Human에 대한 데이터를 json으로 저장하고자 한다. 각 NSManagedObject를 extension하여 encdoable을 채택해준다. extension Human: Encodable{ enum CodingKeys: String, CodingKey { case name, age } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(name, forKey: .name) try container.encode(age,.. fastlane 적용하여 앱스토어 배포까지! 목차 그동안 듣기만 했던 Fastlane을 드디어 적용해보기로 했다. fastlane은 iOS, Android 앱의 CD ( Continuous Deploy ) 의 대표적인 툴이다. CD는 지속적 배포로써, iOS에서는 자동화 배포( 앱스토어, testFlight에 ) 를 도와준다. 배포해본 사람은 알겠지만.. 배포하고 앱스토어에 제출하는 것 까지 꽤 시간이 걸리고, 그동안의 과정들이 한번에 진행되는게 아니라 계속 확인하면서 클릭 클릭 해주어야 한다. 하지만 fastlane을 이용한다면 일련의 과정들을 명령어 하나로만 실행하여 완료될때까지 신경쓰지 않아도 된다! 크게, Fastlane을 설치하고, Fastlane 설정, testflight에 배포 app store에 배포 하는 방법등을 알아볼 예정이다. .. iOS 사진 라이브러리 접근에 필요한 권한 나는 지금까지 무조건 사진 라이브러리 ( 사용자의 사진첩 ) 에 접근하기 위해서는 권한이 필요한 줄 알았다. 하지만, 단순히 접근해서 읽기만 하는 경우에는 명시적으로 권한을 요청할 필요가 없다. 만약 사진을 읽어와서 편집하여 사용자의 사진 라이브러리에 덮어씌우거나, 또는 사진 라이브러리에 저장하는 경우에는 권한이 필요하다. ( 다양한 글들에 그러한 내용을 발견할 수 있었는데, 공식문서에서도 확인할 수 있었다. ) 우선, iOS 14부터는 PHPickerViewController가 등장했는데, UIImagePickerController를 대체하는 새로운 picker다. 사진첩과 같은 인터페이스를 제공하면서, 멀티플 샐랙션을 제공한다. 여튼, 사진을 단순히 읽어오거나, 인터넷이나 이메일에 포함시키는 경우에는.. 백준 - 하노이 탑 이동 순서 - 11729 - swift https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 문제는 재귀 유형이다. 우선 풀이에 앞서 정말 감격스럽다. 코딩테스트 공부한지 1년만에 도움없이 혼자서 이해하고 풀었다. 그전까지 매번 하노이탑 볼 때 마다 이걸 어떻게 푸는건지 감도 오지 않았다. 심지어 예전에 풀이를 봤을때도 이해가 안갔었다. 하지만,... 1시간동안 고민 끝에 풀었다!ㅠㅠ 처음에는 완전탐색으로 접근했다가, 계속 이동하는 걸 그려보면서 다음과 같은 패턴을 찾을 수 .. 앱 미리보기 지원하기 - 앱스토어 앱 미리보기는 스크린샷과는 다르게 동영상을 보여주는 것이다. 이를 가능하게 하기 위해서는 핵심부분들은.. 1. 동영상의 해상도가 지원하는 사양에 맞는 해상도와 같아야 한다. 2. 또한 확장자도 고려해야한다. 3. 또 가장 중요한, 최소 15초이상 최대 30초 이하이여야 한다. 4. 그리고 최대 30프레임이여야 한다. ( + 그리고 오디오가 포함되어 있어야하는 듯..? ) 앱 미리보기 지원사양은 아래에 나타나있다. https://help.apple.com/app-store-connect/#/dev4e413fcb8 가장 중요한건 해상도가 맞아야하는데.. 동영상 편집이나 이런걸 한번도 해본적이 없어서 그런 프로그램들이 없었고, 나름 찾아본 결과 무료로 간단하게 해상도를 바꿀 수 있는 프로그램을 찾았다. Ada.. 커스텀 폰트 용량 줄이기 - iOS 기존의 출시한 앱이 굉장히 앱 사이즈가 컸다 그때 당시에는 신경을 안썼었다. ( 신경 쓸 생각조차 나지 않았었다 ) 하지만 어느 순간 부터 메모리용량도 신경쓰게 됐고, 문득 내 앱을 보니 무슨.. 엄청난 어플도 아닌데 100MB 가까이 차지하고 있었다. 지금 계속해서 리팩토링 중인데 굳이 사용하지 않아도 되는 외부 라이브러리를 삭제하고, 필요없는 코드들도 최대한 줄이고 있는데, 꽤 많이 줄어들었다. ( 코드도 약 천오백줄 줄일 수 있었다 ) 그리고 대망의 폰트가 남아있었다 특히 서울한강체는 하나당 10MB나 차지한다! 내 앱은 그외 두개 더 추가적으로 사용하고 있었는데 그녀석들은 하나당 1MB 정도 차지하고 있었다. 여튼 서울한강체는 버리던가 추가적인 조치가 무조건 필요해보였다. 찾아보니 웹사이트로 폰트.. 백준 - 도도의 음식 준비 - 22953 - swift https://www.acmicpc.net/problem/22953 22953번: 도도의 음식 준비 첫째 줄에 요리사의 수 $N$ ($1 \le N \le 10$), 만들어야 할 음식의 개수 $K$ ($1 \le K \le 1\,000\,000$), 격려해줄 수 있는 횟수 $C$ ($0 \le C \le 5$)가 주어진다. 둘째 줄에 길이가 $N$인 정수 수열 $A$가 주어 www.acmicpc.net 문제는 완전탐색과 이분탐색으로 볼 수 있다. 완전탐색에는 순열과 조합을 이용했다. 크게 문제는 최적의 시간을 찾는 것으로, 각 요리사들에는 요리 시간이 정해져있고, K개의 음식을 모두 준비하는데 걸리는 가장 빠른 시간을 찾는 문제다. 이러한 유형은 미리 최적의 시간이 X라고 정하고서 탐색하는 방법, 즉 이.. 이전 1 2 3 4 5 6 7 8 ··· 16 다음