iOS 70

[iOS-Error] 파이어베이스 로그인 에러처리

일단 파이어베이스에서 이메일-비밀번호 구글 로그인을 했을때 에러를 처리하는 방법인데 다른 곳에서도 사용할 수 있을듯 해서 간단하게 포스팅합니다. // 신규 사용자 생성 Auth.auth().createUser(withEmail: email, password: password) { [weak self] authResult, error in guard let self = self else {return} // 에러 처리 if let error = error { let code = (error as NSError).code // 에러 의 code=?? 중 ??을 저장 switch code { case "숫자-에러코드": // 이미 가입한 계정일때 에러 // 에러 상황별 코드 default: // localiz..

iOS/Errors 2022.02.12

[iOS] textField Delegate와 최초 커서 설정

textField delegate Apple 공식문서 블로그 textField 연관 글 - textField 이벤트 추가 textField의 @IBOulet에 delegate를 주어 여러 동작을 수행할 수 있습니다. 다음의 textField를 연결했다 가정하고 진행 하겠습니다. @IBOutlet weak var exampleTextfield: UITextField! viewDidLoad에 delegate로 위임해줍니다. exampleTextField.delegate = self 이제 UITextFieldDelegate 프로토콜을 채택해 텍스트 필드의 여러 이벤트를 처리할 수 있습니다. extention으로 추가해주고 두가지 이벤트를 예로 들면 다음과 같습니다. extension "뷰 컨트롤러": UITe..

iOS/SwiftUI 2022.02.12

[iOS] 파이어베이스 구글 로그인 인증(firebase google login)

강의를 듣다가 파이어베이스 로그인 방법이 달라졌져서 한참 헤멘것 같습니다. 그래서 삽질을 통해 개인적으로 방법을 찾아 정리해 봤습니다. 파이어베이스를 이용해 구글 로그인 등 다양한 로그인을 진행할 수 있습니다. 아래는 파이어베이스에서 지원하는 로그인입니다. 그러면 대표적으로 구글 로그인을 하는 방법을 알아보도록 하겠습니다. 다음 공식문서 두개를 보면서 했습니다. Google Sign-in for iOS Firebase iOS google Sign-in 전체흐름은 다음과 같습니다. 1. 파이어베이스에 프로젝트 추가 2. Xcode 사전 작업 파이어베이스 SDK 추가(cocoapod 사용 예정) 3. 로그인 구현 4. 로그아웃 구현 1. 파이어베이스에 프로젝트 추가 파이어베이스 -> 콘솔 -> 프로젝트 추가..

iOS/Swift 2022.02.12

[iOS] cocoaPod으로 라이브러리 사용

라이브러리를 편리하게 사용하기 위해서 node에서는 npm이나 yarn을 python에서는 pip를 사용하는 것 처럼 ios에서는 cocoapod을 이용합니다. 사용방법을 알아보겠습니다. 공식 페이지 1. cocopod 설치 저는 개인적으로 Homebrew에서 cocoapod을 설치해 관리했습니다. // terminal에서 설치 $ sudo gem install cocoapods // Homebrew로 설치 $ brew install cocoapods 2. Podfile 만들고 라이브러리 추가하기 프로젝트 폴더를 터미널로 열고 다음을 입력합니다. cd 명령으로 이동해도 되고 프로젝트 폴더를 terminal 아이콘에 끌어 놓으면 바로 갈 수 있습니다. $ Pod init 이제 프로젝트 폴더에 Podfile..

iOS/Swift 2022.02.11

[iOS] iOS에서 JSON 파일 사용하는 방법

자바스크립트에서는 JSON 파일이 정말 편리하고 좋았는데 iOS에서는 바로 사용을 할 수 없다니 충격이었습니다. 아무튼... struct를 이용해 사용할 JSON 처럼 만들고 변환해 사용해야 합니다. (참고로 JSON을 그대로 Print 해봤더니 byte 크기만 출력 되었습니다.) 1. 구조 잡기 2. 디코딩 다음과 같은 JSON을 가지고 왔다고 가정하고 이를 iOS에서 사용해 보겠습니다. { "Sample1": 1, "Sample2" { "Sample2-1": "sm2-1", "Sample2-2": 22 } "Sample3": [ { "Sample3-1": "sm3-1", "Sample3-2": 32 } ] } 이러한 JSON은 Swift struct로 다음과 같이 표현할 수 있습니다. 1. 구조 잡기..

iOS/Swift 2022.02.09

[iOS] iOS HTTP 통신 허용 방법

웹에서 API를 사용할 때 http통신을 해도 별 문제가 없었지만 iOS에서 http 요청을 보내니 다음과 같은 Error 메세지가 출력 되었습니다. App Transport Security has blocked a cleartext HTTP connection since it is insecure. Use HTTPS instead or add Exception Domains to your app's Info.plist. 애플에서 막아두어서 발생하는 일인데 HTTPS를 사용하는 통신을 하거나 사용할 HTTP를 허용해야 합니다. 일단 저는 API를 사용해야 하니 HTTP를 허용하는 방법을 포스팅 하겠습니다. 1. 먼저 프로젝트의 Info.plist 파일을 엽니다. 2. Information Property..

iOS/Swift 2022.02.09

[IOS] UICollectionView 기본 사용

collectionView의 사용은 tableView와 비슷합니다. cell의 틀을 만들어두고 이를 가져와 사용합니다. cell은 xib또는 스토리보드에서 만들어 사용합니다. 일단 extension을 사용하기 위해 위임을 해주어야합니다. 이 작업을 하지 않으면 작동이 안됩니다. // viewDidLoad에 작성 self.collectionView.collectionViewLayout = UICollectionViewFlowLayout() self.collectionView.delegate = self self.collectionView.dataSource = self 이제 extension으로 다음을 추가하고 원하는 대로 커스텀 하시면 됩니다. (extension이 아니라 그냥 protocol을 채택해도..

iOS/Swift 2022.02.07

[IOS] datePicker() 를 TextField에서 사용과 TextField에 이벤트 추가

스토리보드에서 datePicker Object를 사용하면 화면을 넓게 차지합니다. 그래서 TextField를 클릭하면 datePicker가 나오도록 해보겠습니다. // datePicker 객체 생성 private let datePicker = UIDatePicker() // datePicker를 원하는 유형으로 설정 // 고를 데이터 self.datePicker.datePickerMode = .date // 선택 방식 self.datePicker.preferredDatePickerStyle = .wheels // 언어 설정 self.datePicker.locale = Locale(identifier: "Korean") // 이 코드로 textField에 datePicker를 넣을수 있다. // dateT..

iOS/UIKit 2022.02.07

[IOS] dateFormatter( )로 Date( )를 String으로 만들기

보통 원하는 시점을 담고있는데 Date() 객체를 원하는 String으로 바꿔 사용하는 방법을 정리하겠습니다. // DateFormatter를 가져와 커스텀 let formatter = DateFormatter() // String으로 구성 // ex) yyyy 하면 2022가 나오고 yy로 하면 22로 출력되는 방식 formatter.dateFormat = "yy년 MM월 dd일E " // 언어 설정(안해도 한국어로 나오긴 했습니다.) formatter.locale = Locale(identifier: "ko_KR") // String으로 담아 사용 let exString = formatter.string(from: 원하는 Date객체) 원하는 대로 변경해서 사용하시면 되겠습니다.

iOS/UIKit 2022.02.07

[IOS] 이벤트 관찰 NotificationCener

APPLE_공식문서 약간 react의 redux에서 subscribe 같은 느낌을 받았습니다. 미리 NotificationCenter에 특정 이벤트를 지정해두고 이에 맞는 이벤트가 발생하면 그를 수행할 수 있게 해줍니다. 예시 A viewController에서 알림을 등록하고 B ViewController에서 알림을 구독하면 이벤트가 발생했을때 B에서 이를 인식해 selector가 실행됩니다. 알림(이벤트) 등록 NotificationCenter.default.post( // 센터에서 사용할 이름 name: NSNotification.Name("이벤트 이름"), // 전달할 객체 object: 이벤트에서 사용할 객체라고 보면 된다., // 연관되어 넘겨줄 값 dictionary userInfo: ["키"..

iOS/Swift 2022.02.07