본문 바로가기

전체 글

(50)
Swift - Constants(상수) 다루기 with Static 키워드(typeProperty, type Method) 상수(let)는 계속해서 변하지않는 하나의 같은 값을 사용하는 것이기 때문에 따로 상수 데이터들을 정리한 파일을 만들어 관리한다. 이렇게 하면 String 등에서 철자 하나로 오류가 나는 것을 방지 할 수 있다. 여기서 핵심은 static 키워드를 사용하여 typeProperty를 만드는 것이다. 이렇게 함으로써 인스턴스를 생성하지 않고 바로 타입에서 타입프로퍼티를 사용할 수 있다. 예제) Struct Foo { // typeProperty static let myName = "tonyWest" static let myHeight = 189 static let pi = 3.14 static let address = "saemoonangil1" } // 인스턴스 생성없이 타입으로 바로 사용 가능 Foo.m..
Ios - Firebase의 Authentication 사용하기 Firebase Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다. firebase.google.com Firebase는 Backend as a Service — BaaS 이다. 모바일 애플리케이션을 위한 인증, 데이터베이스 등의 서비스를 제공하는데 이번에는 인증(Authentication)에 대해 정리해본다. 1. firebase 페이지에서의 준비 작업들을 진행한다. 2. AppDelegate.swift 파일에서 didFinishLaunchingWithOptions: 메소드의 내부에 FirebaseApp.configure() 코드를 작성한다. func application(_ application: UIApplicati..
Ios - CocoaPods CocoaPods는 애플의 macos, ios 등의 앱을 제작하기 위한 cocoa 프레임워크의 dependency manager이다. 이것을 통해 우리는 ios 앱을 제작할 때 필요한 라이브러리들을 쉽게 추가하고 업데이트하고 삭제할 수 있다! 설치 및 세팅은 터미널을 이용해 단 두줄이면 충분하다! // cocoapods를 설치한다. $sudo gem install cocoapods // cocoapodsd에 등록된 모든 라이브러리들을 setup한다. $pod setup --verbose
Ios - CoreLocation 임포트 import CoreLocation locationManager 인스턴스 생성 컨트롤러 클래스 내부에 let locationManager = CLLocationManager() 권한 획득 viewDidLoad() 안에 locationManager의 requestWhenInUseAuthorization() 메소드 선언 override func viewDidLoad() { super.viewDidLoad() locationManager.requestWhenInUseAuthorization() } 그리고 프로퍼티 리스트(.plist)에 권한 설정을 추가합니다. key값으로 privacy-When In Use Usage Description을 선택하고 value에 해당 권한을 얻기 위한 이유를 입력합니다..
Swift - for loop Swift3부터 아래와 같은 C 스타일의 for문은 사용이 불가하다 // C 스타일의 for문 for(int i=0; i
Swift - Extension struct의 extension - 한 구조체에 대한 여러개의 프로토콜 확장을 개별적인 코드 블록으로 나눌 수 있게 해줍니다. 또는 구조체에 정의된 메소드들의 오버로딩의 작성도 용이하게 만들어 줍니다. class의 extension - 한 클래스에 대한 여러개의 클래스의 상속이나 프로토콜 확장 등을 개별적인 코드 블록으로 나눌 수 있게 해줍니다. 또는 클래스에 정의된 메소드들의 오버로딩의 작성도 용이하게 만들어 줍니다. protocol의 extension - extension을 통해 protocol의 default implementation을 설정 할 수 있습니다. // 프로토콜 선언 protocol Dog{ func say() } // 확장 키워드를 통해 프로토콜에 정의된 메서드의 디폴트 실행문 작성 ..
Ios - API와 찰떡궁합 DispatchQueue.main.async Networking 같이 작업시간이 비교적 긴 작업은 DispatchQueue.main.async를 이용해 다른 스레드를 만들어 비동기 처리 해줍니다. 비동기 처리를하지 않으면 Networking이라는 긴 작업 시간 동안(물론 몇 초일찌라도) 앱은 다른 동작을 할 수 없는 프로징 상태에 있게 됩니다. 네트워크 작업이 처리 될 때까지 멈춰 있게 되는 것이죠. 따라서 아래와 같은 형태의 클로져 구문아래 api로 받은 데이터로 처리할 작업들을 비동기로 작업하게 끔 만들어주면 앱이 프로징 상태에 있지 않고 원할히 동작하며, 완료된 네트워크 작업의 데이터 또한 그때 그때 반영해 줄 수 있습니다. 예) api로 받은 자료를 UI에 반영하는 것. 사진, 텍스트 등. 또는 화면 전환시 용량이 큰 파일을 저장하고 넘어가..
Swift - Double형 데이터를 String으로 포멧 지정하여 나타내는 법 let foo: Double var bar: String bar = String(format: "%.1f", foo) // 소수점 첫째자리까지 나타내기