[iOS/Swift] 네이버 지도(Maps) 사용하기
·
iOS/개념 & 개발
안녕하세요. 개발하는 정주입니다. 오늘은 대한민국 대표 지도인 네이버 지도에 대해 포스팅하려고 합니다. 목차 지원 OS 버전 네이버 지도 SDK는 iOS 버전 9 이상에서 사용할 수 있다고 합니다. 요즘엔 iOS 9 미만을 사용하는 경우는 없지만 혹시 몰라 기재합니다. 클라이언트 ID 발급 네이버 지도 SDK API를 사용하기 위해서는 애플리케이션을 등록하여 클라이언트 ID를 발급받아야 합니다. 네이버 지도 SDK 위치 네이버 클라우드 사이트(https://www.ncloud.com)에 접속하여 회원가입, 로그인을 합니다. 로그인 후 콘솔에 들어갑니다. 네이버 지도는 Products & Services에서 AI-Application Service 하위의 AI·NAVER API에 포함되어 있습니다. 해당 ..
[iOS/Swift] CocoaPods 사용하기
·
iOS/개념 & 개발
안녕하세요. 개발하는 정주입니다. 오늘은 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/Swift] 폰트(Font) 추가하는 방법
·
iOS/개념 & 개발
안녕하세요. 개발하는 정주입니다. 오늘은 Xcode에서 폰트를 추가하는 방법에 대해 포스팅하려고 합니다. 폰트 파일은 각자 준비해야 합니다! 목차 폰트 파일 복사하기 폰트를 적용하기 위해서는 Xcode에 폰트 파일을 복사해야 합니다. 폴더 만들기 프로젝트에 폰트 파일을 넣을 폴더 하나를 생성합니다. 폰트 파일 복사하기 폰트 파일을 드래그 & 드롭하면 위와 같은 팝업이 나옵니다. 여기에서 Add to targets에 폰트를 추가할 프로젝트를 꼭 선택해야 합니다. Finish를 누르면 폰트 파일이 정상적으로 복사된 것을 볼 수 있습니다. 폰트 등록하기 폰트 파일을 추가했으면 info.plist에 폰트를 등록해야 합니다. info.plist 파일에 "Fonts provided by application" 속성..
[iOS/Swift] 런치 스크린 (Launch Screen) / 스플래시 화면
·
iOS/개념 & 개발
[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. 앱이 시작할 때 즉시 나타나고 앱의 ..
[Swift] 공식 문서 - 열거형 (Enumerations)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 열거형 (Enumerations)를 정리해보겠습니다. * 완벽한 번역이 아닌 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 열거형 타입은 ‘복수형 (plural) 보단 단수형 (singular)’ 이름을 부여해야 명확하다는 점 CaseIterable를 채택함으로서 모든 케이스 집합체를 가질 수 있다는 점 Associated Values에 대한 내용 case 이름 앞에 var 나 let annotation을 하나만 적어도 된다는 점 원시 값으로 문자열을 사용할 땐 그 case 이름에 있는 문장이 각 case 의 암시적인 값이 된다는 점 열거형 initializer는 nil..
[Swift] 공식 문서 - 클로저 (Closures)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 클로저 (Closures)를 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 전역 함수와 중첩 함수가 클로저라는 사실 sorted 메서드가 클로저를 기반으로 동작된다는 사실 클로저의 인자, 반환값 생략할 수 있는 이유가 Swift의 타입 유추라는 점 => 생략 가능하다는 것은 알고 있었지만 이번 포스팅을 통해 이유를 알게 되었다. ">" 연산자 메서드에 문자열별 구현이 되어 있어 sorted()에 클로저 대신 쓸 수 있다는 점 클로저는 참조 타입이라는 점 값이 캡처가 되면 클로저와 인스턴스 사이에 강한 참조 사이클이 생성된다는 점 캡처로 생..
[Git] .gitignore 적용하기
·
Git
안녕하세요. 개발하는 정주입니다. 오늘은 gitignore을 적용하는 방법에 대해 포스팅하려고 합니다. 목차 .gitignore이란? .gitignore파일이란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일입니다. 맥의 .DS_Store, Xcode의 .xcodeproj처럼 관리가 필요가 없는 파일을 .gitignore 파일에 지정하여 관리하지 않을 수 있습니다. .gitignore 작성하기 git 폴더의 최상위 경로에 .gitignore 파일을 생성하고 파일명을 기재하면 됩니다. 저는 간단하게 .DS_Store과 폴더 icon 파일인 Icon을 등록했습니다. 참고로 .gitignore 파일은 기본 ls 명령어로는 볼 수 없고 a 옵션을 줘야 볼 수 있습니다. 이미 올린 파일 처리하기 이미 gi..
[Swift] 공식 문서 - 함수 (Functions)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 함수 (Functions)를 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 다른 함수 내에 함수를 정의할 수 있다는 점 Void가 빈 튜플이라는 점 반환되는 튜플의 옵셔널을 튜플 전체를 옵셔널로 감싸서 표현한다는 점 반환값이 있는 한 줄로 된 함수는 return을 생략해도 된다는 점 가변 파라미터가 배열(array)로 사용 가능하다는 점 in-out 파라미터는 기본값 설정이 안 된다는 점 목차 서론 함수 (Functions) 는 특정 작업을 수행하는 코드 모음 입니다. 무슨 동작을 하는지 함수에 특정 이름을 줄 수 있으며 이름은 필요할 때..
[Swift] 공식 문서 - 제어 흐름 (Control Flow)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 제어 흐름 (Control Flow)을 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 Dictionary로 for-in 루프를 쓸 때 순서가 보장이 안 된다는 점 for-in에서 임시 값이 상수로 선언된다는 점 switch에서 실행된 부분을 선택하는 절차를 switching이라고 한다는 점 switch에서 튜플로 case를 넣을 수 있다는 점 switch에서 값 바인딩이 가능하다는 점 switch에서 값 바인딩을 포함한 혼합 케이스에 대한 내용 fallthrough 키워드는 switch 케이스 실행을 위한 케이스 조건을 확인하지 않는다는 ..
[Xcode] Snippet 등록하기 - 나만의 단축어 등록하기
·
iOS/Xcode
안녕하세요. 개발하는 정주입니다. 오늘은 Snippet을 등록하는 방법에 대해 포스팅하려고 합니다. 이제 시작합니다. 목차 Snippet 이란? Snippet이란 단어는 생소할 수 있지만 사실은 무척이나 익숙한 기능입니다. 바로 코드 자동완성 단축어이죠. 가장 대표적인 예시로는 func가 있습니다. func를 입력하면 Xcode에서 자동완성 목록이 나옵니다. 이 중 하나를 자동완성이 되는 것은 매우 익숙하실 것입니다. 이런 자동완성 키워드를 Snippet이라고 합니다. 이번 포스팅에서는 이 자동완성 키워드를 직접 만들어보겠습니다. Snippet 만들기 Snippet을 만들기 위한 창은 다양한 경로로 진입할 수 있습니다. 첫 번째는 Swift 코드 구역에서 마우스 우클릭을 해서 Create Code Sni..
[iOS/부스트 코스] Weather Today(4) - 코드 리뷰
·
iOS 프로젝트
안녕하세요. 개발하는 정주입니다. 오늘은 Weather Today의 코드 리뷰에 대해 포스팅하려고 합니다. 목차 화면 1 화면 1에서 지적받은 부분은 한 곳이었습니다. let country = self.countries[indexPath.row] cell.textLabel?.text = country.name let flagName = "flag_\(country.assetName)" cell.imageView?.image = UIImage(named: flagName) 위 코드는 제가 원래 작성했던 코드입니다. 이 코드의 문제는 View Controller에서 데이터의 가공이 이루어졌다는 점입니다. 따라서 이 코드는 flagName을 Computed Property로 수정했습니다. let assetNa..
[iOS/부스트 코스] Weather Today(3) - 기능 구현
·
iOS 프로젝트
안녕하세요. 개발하는 정주입니다. 오늘은 Weather Today의 기능 구현에 대해 포스팅하려고 합니다. 이번 기능 구현에서도 Clean Code에 유념하여 코드를 작성하였습니다. 목차 JSON 파싱 이번 프로젝트에서는 JSON 파싱이 기본적으로 들어갑니다. 따라서 Assets의 JSON 파일을 읽어와 파싱 해야 합니다. 이번 포스팅에서는 화면 1의 JSON 파싱만 작성해보겠습니다. [ {"korean_name":"한국","asset_name":"kr"}, {"korean_name":"독일","asset_name":"de"}, {"korean_name":"이탈리아","asset_name":"it"}, {"korean_name":"미국","asset_name":"us"}, {"korean_name":"프..
[iOS/부스트 코스] WeatherToday(2) - 화면 구성
·
iOS 프로젝트
안녕하세요. 개발하는 정주입니다. 오늘은 WeatherToday 화면 구성에 대해 포스팅하려고 합니다. 목차 전체 스토리보드 전체 스토리보드 모습입니다. 화면 이동을 위해 내비게이션 컨트롤러를 추가하였습니다. Navigation Bar 내비게이션 바부터 설정하였습니다. 내비게이션 바를 구현하며 힘들었던 점은 버전별로 동작이 다르다는 것이었습니다. iOS 15 이상에서 UIKit의 scrollEdgeAppearance에는 약간의 변화가 생겼습니다. 바로 기본적으로 투명한 배경을 가진다는 것인데요. 따라서 scrollEdgeAppearance 색을 따로 지정하지 않는다면 윗부분에는 색이 적용이 되지 않습니다. 이것을 해결하는 방법은 비교적 간단합니다. 바로 scrollEdgeAppearance을 설정해주면 ..
[Swift] 공식 문서 - 문자열과 문자 (Strings and Characters)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 문자열과 문자 (Strings and Characters)를 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 Swift의 String과 Character 타입은 유니코드 호환으로 텍스트 처리를 빠르게 하였다는 점 Multiline String 관련 문법 String의 isEmpty가 Property라는 점 Extended Grapheme Clusters의 문법 여러 개의 문자를 합쳐 하나의 그래픽으로 나타낸다는 점 똑같이 보이는 문자라도 다른 양의 메모리가 필요할 수 있다는 점 SubString은 문자열을 참조하는 구조라는 점 서론 문자열은..
[Swift] Swift 공식 문서 - 기본 연산자(Basic Operators)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 기본 연산자(Basic Operators)를 정리하려고 합니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 목차 새로 배운 점 Swift가 C++로 이루어진 만큼 C와 연산자가 유사한 부분이 많다는 점 튜플의 연산 서론 연산자는 값을 할당, 연산, 결합하는 특수 기호입니다. 예를 들어, 덧셈 연산자(+)는 i = 1 + 2에서와 같이 두 숫자를 더하고 논리 곱 연산자(&&)는 entryDoorCode && passedRetinaScan과 같이 두 개의 Boolean 값을 결합합니다. Swift는 기본적으로 C언어의 연산자를 지원하며 코딩 오류를 줄이기 위해 몇 가지 ..
유정주