iOS/개념 & 개발 69

[iOS] ViewController에서 View 분리하기

안녕하세요. 개발하는 정주입니다. 오늘은 "ViewController에서 View 분리하기"에 대해 알아보겠습니다. 제가 학습하고 이해한 내용을 정리한 것이라 틀린 부분이 있을 수 있습니다. 잘못된 점이 있다면 댓글로 알려주시면 감사하겠습니다. ViewController에서 View를 분리하는 이유 모두 한 번쯤 디자인 패턴에 대해 들어보셨을 것입니다. iOS에도 물론 MVP, MVC, MVVM 등 디자인 패턴이 적용되는데요. 이런 관점에서 ViewController는 View 보다는 Controller의 개념에 가깝습니다. View + Controller로 사용하시는 분도 많이 계시지만 둘을 분리한 것보다 ViewController가 길어질 수밖에 없습니다. 예를 들어, 오토 레이아웃, addSubvi..

iOS/개념 & 개발 2022.05.17

[iOS/Swift] 앱스토어(App Store)에서 앱 최신 버전 가져오기

안녕하세요. 개발하는 정주입니다. 오늘은 앱스토어(App Store)에서 앱 버전 가져오기에 대해 포스팅하려고 합니다. 필요한 이유 많은 앱에서 버전 체크 기능을 구현합니다. 이때 필요한 정보가 현재 앱 버전과 앱 스토어의 앱 최신 버전입니다. 둘이 다르면 업데이트를 권장하는 등의 안내를 할 수 있는 것입니다. 앱 스토어에서 최신 버전 가져오는 방법 앱스토어에 올라가 있는 앱의 최신 버전을 읽어오는 방법에 대해 알아보겠습니다. Bundle ID와 Apple ID 앱 스토어에 앱 정보를 요청하기 위해서는 앱의 Bundle ID 혹은 Apple ID가 필요합니다. 두 개의 ID는 App Store Connect - 앱 정보에서 볼 수 있습니다. Bundle ID가 번들 ID이고 Apple ID가 Apple ..

iOS/개념 & 개발 2022.02.06

[iOS/Swift] Alert 확인/취소 액션 버튼 위치 정하기

안녕하세요. 개발하는 정주입니다. 오늘은 Alert 확인/취소 액션 버튼의 위치 정하기에 대해 포스팅하려고 합니다. Alert 버튼 위치를 고민하는 원인에 대해서는 지난 포스팅을 참고해 주세요. 2022.01.21 - [iOS/iOS 프로젝트] - [iOS/Swift] 작심삼일 개발 일지 - 2 [iOS/Swift] 작심삼일 개발 일지 - 2 안녕하세요. 개발하는 정주입니다. 오늘은 작심삼일 개발 일지 - 2에 대해 포스팅하려고 합니다. https://github.com/jeongju9216/ThreeDayHump GitHub - jeongju9216/ThreeDayHump: "작심삼일" iOS 애플리케.. jeong9216.tistory.com 목차 Human Interface GuideLine 애플에..

iOS/개념 & 개발 2022.01.29

[iOS 에러/Swift] Unable to process request - PLA Update available 해결 방법

안녕하세요. 개발하는 정주입니다. 오늘은 Unable to process request - PLA Update available 해결 방법에 대해 포스팅하려고 합니다. 목차 에러 상황 앱을 TestFlight에 업로드하려고 하니 Unable to process request - PLA Update available라는 에러가 나왔습니다. 처음 앱을 올려보고 있었는데 시작부터 에러가 나오니 참 당황스러웠습니다. 오늘은 해당 에러를 해결하는 방법을 알아보도록 합시다. 해결 방법 App Store Connect에서 프로그램 라이선스를 동의해주면 됩니다. App Store Connect 접속 App Store Connect에 들어가서 자신의 계정으로 로그인해줍니다. 그럼 상단에 사용권 계약이 업데이트되었다는 팝..

iOS/개념 & 개발 2022.01.25

[iOS/Swift] 오늘 날짜인지 확인하는 방법

안녕하세요. 개발하는 정주입니다. 오늘은 오늘 날짜인지 확인하는 방법에 대해 포스팅하려고 합니다. 목차 서론 작심삼일 프로젝트를 진행하며 Date가 오늘인지 아닌지 확인하는 기능이 필요했습니다. 과거인지 미래 인지도 상관없고 입력한 Date가 딱! 오늘인지만 확인하면 됐었습니다. Foundation 프레임워크의 Calendar를 이용해 아주 쉽게 구현할 수 있습니다. Calendar Calendar 클래스에서는 current라는 Type Property가 존재합니다. 현재의 gregorian 달력(?)을 기기의 locale로 제공해주는 것이죠. 이를 dump로 출력해보면 아래와 같습니다. 이제 이 객체를 이용해 Date 비교를 하면 됩니다. Calendar에서는 날짜 비교를 위한 다양한 메서드도 제공합니..

iOS/개념 & 개발 2022.01.22

[iOS/Swift] 네이버 지도(Maps) 사용하기

안녕하세요. 개발하는 정주입니다. 오늘은 대한민국 대표 지도인 네이버 지도에 대해 포스팅하려고 합니다. 목차 지원 OS 버전 네이버 지도 SDK는 iOS 버전 9 이상에서 사용할 수 있다고 합니다. 요즘엔 iOS 9 미만을 사용하는 경우는 없지만 혹시 몰라 기재합니다. 클라이언트 ID 발급 네이버 지도 SDK API를 사용하기 위해서는 애플리케이션을 등록하여 클라이언트 ID를 발급받아야 합니다. 네이버 지도 SDK 위치 네이버 클라우드 사이트(https://www.ncloud.com)에 접속하여 회원가입, 로그인을 합니다. 로그인 후 콘솔에 들어갑니다. 네이버 지도는 Products & Services에서 AI-Application Service 하위의 AI·NAVER API에 포함되어 있습니다. 해당 ..

iOS/개념 & 개발 2022.01.11

[iOS/Swift] CocoaPods 사용하기

안녕하세요. 개발하는 정주입니다. 오늘은 CocoaPods에 대해 포스팅하려고 합니다. 목차 CocoaPods란? 코코아팟 사이트(https://cocoapods.org)에는 아래처럼 설명이 나와 있습니다. CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 87 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly. 코코아팟이란 Swift 및 Objective-C 코코아 프로젝트의 종속성 관리자로 쉽고 편하게 프로젝트를 확장할 수 있게 도와줍니다. 네이버 지도 ..

iOS/개념 & 개발 2022.01.10

[iOS/Swift] 폰트(Font) 추가하는 방법

안녕하세요. 개발하는 정주입니다. 오늘은 Xcode에서 폰트를 추가하는 방법에 대해 포스팅하려고 합니다. 폰트 파일은 각자 준비해야 합니다! 목차 폰트 파일 복사하기 폰트를 적용하기 위해서는 Xcode에 폰트 파일을 복사해야 합니다. 폴더 만들기 프로젝트에 폰트 파일을 넣을 폴더 하나를 생성합니다. 폰트 파일 복사하기 폰트 파일을 드래그 & 드롭하면 위와 같은 팝업이 나옵니다. 여기에서 Add to targets에 폰트를 추가할 프로젝트를 꼭 선택해야 합니다. Finish를 누르면 폰트 파일이 정상적으로 복사된 것을 볼 수 있습니다. 폰트 등록하기 폰트 파일을 추가했으면 info.plist에 폰트를 등록해야 합니다. info.plist 파일에 "Fonts provided by application" 속성..

iOS/개념 & 개발 2022.01.09

[iOS/Swift] 런치 스크린 (Launch Screen) / 스플래시 화면

[iOS/Swift] 런치 스크린(Launch Screen) / 스플래시(Splash) 화면 안녕하세요. 개발하는 정주입니다. 오늘은 런치 스크린에 대해 포스팅하려고 합니다. 목차 런치 스크린(Launch Screen)이란? 공식 문서에서 런치 스크린(Launch Screen)는 아래처럼 정의되어 있습니다. Every iOS app must provide a launch screen, a screen that displays while your app launches. The launch screen appears instantly when your app starts up and is quickly replaced with the app’s first screen. 앱이 시작할 때 즉시 나타나고 앱의 ..

iOS/개념 & 개발 2022.01.02

[iOS/Swift] IBOutlet에서 옵셔널 강제 언래핑을 하는 이유

안녕하세요. 개발하는 정주입니다. 오늘은 IBOutlet에서는 강제 언래핑을 하는 이유에 대해 포스팅하려고 합니다. 목차 IBOutlet는 강제 언래핑? 스토리보드로 iOS를 개발할 때면 IBOutlet을 사용하게 됩니다. 그럴 때마다 드는 의문이 있었습니다. Swift에서는 옵셔널을 쓸 때 강제 언래핑은 삼가라고 합니다. 옵셔널 타입이 nil일 때 참조를 하게 되면 런타임 에러가 발생하기 때문입니다. 그런데 IBOutlet의 예제들, 심지어는 Xcode의 자동 완성조차 왜 강제 언래핑을 할까?라는 의문이 들었습니다. IBOutlet이란? 고전 공식 문서를 살펴보면 Outlet을 아래처럼 설명하고 있습니다. An outlet is a property that is annotated with the sym..

iOS/개념 & 개발 2021.12.31
반응형