Danny의 iOS 컨닝페이퍼
반응형
article thumbnail
[iOS/Swift] 개발 환경에 따라 각각의 다른 plist의 저장된 API Key 값 받아오기
UIKit/Cheat Sheet 2023. 2. 10. 05:01

개발 환경에 따라 서로 다른 plist 값 읽는 방법 plist 생성 Debug , Production(Release) 모드에서 서로 다른 값을 받기 위해 plist 2개를 준비합니다. 코드 /// plist를 읽을 수 있게 초기화 시킴 class BaseENV { let dict: NSDictionary init(resourceName: String) { guard let filePath = Bundle.main.path(forResource: resourceName, ofType: "plist"), let plist = NSDictionary(contentsOfFile: filePath) else { fatalError("Couldn't find file '\(resourceName).plist'."..

article thumbnail
[iOS/Swift] Quick Help 생성 방법 (문서화, 마크업, 주석)
Etc. 2023. 2. 9. 23:12

Quick Help (설명서) Quick Help는 코드 기능 설명서입니다. 간단한 예시로 만약 오래전 만든 코드를 지금 다시 보게 된다면 무슨 기능을 했는지 헷갈리거나 협업 시 나는 알고 있지만 다른 팀원들이 코드의 기능을 헷갈려할 때 이와 같은 상황에서 손쉽게 코드의 기능을 알 수 있는 일종의 설명서입니다. 일단 퀵 헬프가 뭔지 보고 가시죠. 아래 그림과 같이 코드에 대한 정보를 나타내는 창입니다. (Summary, Discussion, Parameters...) 이것들을 작성하는 방법에 대해 알아봅시다. Quick Help 단축키 사용법 일단 기본적으로 Xcode 내부에서 자동으로 퀵 헬프를 만들어주는 단축키가 존재합니다. 만들고 싶은 코드를 클릭한 뒤 command + option + / 를 사용..

article thumbnail
[iOS/Swift] UIColor (RGB대신 HEX Color 이용하기)
UIKit/Cheat Sheet 2023. 2. 9. 17:11

UIColor 주로 UIColor를 생성 시 컬러를 지정하는 방법은 Red, Greed, Blue로 0~255까지의 숫자로 표현하는 RGB컬러를 사용합니다. UIColor(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) 보통 인터넷에서 색상을 찾을 때 RGB컬러대신 Hex Code Color로 주로 표기가 돼있는데요. 여기서 Hex Color Code란? RGB 방식의 색상 코드 표기법입니다. # 뒤에 붙는 여섯 자리 혹은 세 자리 숫자로 색상을 표기하는 방식이죠. 6자리인 경우 두 자리씩 끊어서 각각 Red, Green, Blue를 나타낸다고 하네요. 자세한 건 패스... UIColor Extenstion 기존 UIColor 사용 시, 마음에..

article thumbnail
[iOS/Swift] 프로토콜 CaseIterable (열거형에서 모든 case를 배열로 다루기)
Xcode/Swift 문법 2023. 2. 9. 00:38

프로토콜 CaseIterable 공식문서 는 이쪽에 있습니다. 설명이 친절하니 한 번은 들어가서 보세요. 일단 결론은 열거형의 각각 모든 case들을 한데 묶어서 컬렉션인 배열로 만들어 줍니다. 각가의 요소를 배열로 바꾸어 준다니 유연하게 사용이 가능해질 거 같네요! 내부 구조를 한번 봅시다. public protocol CaseIterable { /// 타입의 모든 값을 콜렉션(배열로) 나타내는 타입입니다. associatedtype AllCases : Collection = [Self] where Self == Self.AllCases.Element /// 콜렉션(배열)의 모든 값을 나타냅니다. static var allCases: Self.AllCases { get } } 사용하는 곳을 열거형이라 ..

article thumbnail
[iOS/Swift] 이니셜라이저(init)와 고차함수
Xcode/Swift 문법 2023. 2. 8. 06:05

이니셜라이저 예제 아직 다루지 않은 이니셜라이저 관련 내용인데 몰랐던 내용을 예제와 함께 간단히 써볼게요. init 사용 및 고차함수 관련 내용입니다. 신기방기합니다. 문법은 다음기회에... 정리해서 올릴게요 오늘부터 저는 커피 장사를 하고 있습니다. 일단 장사를 하기 앞서 커피 메뉴판을 만들어 줬어요. struct Menu { let coffee: String let size: String } 메뉴도 만들었으니 손님 이름과 함께 주문을 받아야겠죠? struct CoffeeOrder { let name: String let order: Menu } 그런데 갑자기 손님이 들이닥쳐서 많은 주문을 처리하기 힘들어서 한눈에 보기 위해 주문 리스트도 만들어 줬어요. struct CoffeeOrderList { l..

article thumbnail
[iOS/Swift] UINavigationBar 사용 방법
UIKit/Swift 2023. 2. 7. 16:35

이번글은 스토리보드 대신 코드로 작성할 때 내비게이션 바의 모양 및 기타 설정 관련한 일종의 Cheat Sheet을 써보겠습니다. 설명은 이전글 [iOS/Swift] UINavigationController 살펴보기 를 참고해 주세요. UINavigationController 생성 방법 UINavigationBar를 사용하기 위해선 일단 UINavigationController를 생성해야 됩니다. SceneDelegate에서 작성 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene ..

article thumbnail
[iOS/Swift] UINavigationController 살펴보기
UIKit/Swift 2023. 2. 6. 18:15

UINavigationController의 동작 방식 내비게이션 컨트롤러란 계층으로 구성된 스택 기반의 뷰 컨트롤러입니다. 아이폰 유저라면 이미 모두 한 번쯤은 이미 사용해 봤을 거예요. 그림을 보며 동작방식을 이해를 해봅시다. 처음 보이는 [Setting 컨트롤러]는 Root View 컨트롤러입니다. [Setting 컨트롤러]에서 General을 선택하면, 대리자를 통하여 재정의한 push 동작에 의해 새로운 [General 뷰 컨트롤러]를 생성하고 [Setting 뷰 컨트롤러] 위에다 쌓는 형식이죠. 스택을 어떻게 쌓는지 간단히 알아봅시다. (push or show) 내비게이션 스택은 순서가 필요하니 배열을 사용합니다. 배열 viewControllers내부에 뷰 컨트롤러들을 저장하죠. 내비게이션 스택..

article thumbnail
[iOS/Swift] 상태창(StatusBar) 색상 변경 방법 (시계, 배터리...색)
UIKit/Cheat Sheet 2023. 2. 5. 01:55

상태창(StatusBar) 색상 변경 방법 1. Project --> General --> Deployment Info 찾아가기 2. Status Bar Style을 원하는 색상으로 선택 Dark Content : 검은색으로 표시됨 Light Content : 흰색으로 표시됨 3. Info.plist 설정하기 View controller-based status bar appearance를 추가한 뒤, Value값을 No로 설정하기 코드로 변경하는 방법 View controller-based status bar appearance의 기본값은 YES를 갖고 있습니다. 그러므로 만약, Info.plist에서 생성을 해줬다면, 값을 YES로 변경하거나 제거해 주세요. ViewController에서 preferr..

article thumbnail
[iOS/Swift] 동시성(Concurrency) 프로그래밍
Xcode/Swift 문법 2023. 2. 4. 01:09

동시성(Concurrency) 프로그래밍 만약 하나의 쓰레드에서 여러 작업(Task)을 실행하게 된다면 속도 및 성능 저하와 같은 문제가 발생하게 될 거예요. 간단한 예시로 Swift는 화면을 그릴 때(화면을 업데이트할 때) 메인 쓰레드에서 작업을 하게 됩니다. 그러면 메인 쓰레드 쪽에 작업이 많이 쌓여 있다면 화면 업데이트하는데 문제가 생기겠죠?! 이것을 해결하기 위해 나온 게 동시성입니다. 다른 쓰레드로 뿌려줘서 메인 쓰레드의 일을 분산시켜 주는 거죠. 위의 그림과 같이 작업(Task)을 큐(Queue)로 보내주기만 하면 OS(운영체제)에서 자동으로 다른 쓰레드로 분산시켜 줍니다. 우리는 작업을 효율적으로 하기 위해선 어떤 큐(Queue)를 사용할지 고민만 하면 됩니다. 큐(Queue)의 종류 Dis..

article thumbnail
[iOS/Swift] 형 변환 (Type Casting)
Xcode/Swift 문법 2023. 1. 31. 02:38

형 변환 (Type Casting) Swift에서 타입 캐스팅은 is 및 as연산자로 나눠줄 수 있습니다. is 연산자를 통하여 인스턴스에 대한 타입을 확인을 할 수가 있고 as 연산자는 클래스의 계층구조(Superclass나 Subclass)에서 변환할 타입의 인스턴스로 리턴합니다. 또한, 타입 캐스팅을 이용하여 특정 프로토콜을 따르는지 확인할 수도 있습니다. is 연산자 - Type Checking 간단히 영어 표현식으로 생각해 보면 "is"는 "~은 ~이다"라고 사용이 되죠? 영어를 읽는다 생각하고 아래 예제를 읽어보면 사용방법이 확 이해가 가실 거예요. var score: Int = 100 score is Int "score" 는 "Int" 타입이다. // true score is Double "..

반응형