프로젝트 만들어보기 16

[FirebaseAuth] 회원가입에러 코드 (Swift)

if let maybeError = error{ let err = maybeError as NSError switch err.code{ case AuthErrorCode.invalidEmail.rawValue: self.errorLabel.text = "이메일 형식이 잘못되었습니다." case AuthErrorCode.emailAlreadyInUse.rawValue: self.errorLabel.text = "이미 사용중인 이메일입니다." case AuthErrorCode.weakPassword.rawValue: self.errorLabel.text = "암호는 6글자 이상이어야 합니다" default: print("unknow error:\(err.localizedDescription)") } }

[iOS] Remote Notification (Firebase Cloud Messaging)

Remote Notification (원격 알림, 서버 설정) - 서버로부터 push를 앱에 띄우는 것 - 알림을 생성하고 사용자 장치에 푸시알림을 보내고 싶을때 (why? 중요한 정보를 제공하기 위해 ) - 앱이 실행중이 아닌 경우에도 앱을 사용하는 기기에 소량의 데이터를 푸시함 👉 localNotification(앱으로 부터 push를 앱에 띄우는)은 https://01pkd95.tistory.com/290 필요 요소 - Provider : 공급자 서버 (Firebase Cloud Messaging으로 대체) - APNs(Apple Push Notification Service): 애플 푸시 알림 서비스 - 사용자의 기기 - 사용자의 기기에서 실행중인 앱 순서) 1. 원격알림을 보낼수 있는 서버에서 ..

[iOS] 약 먹기 알람어플 (Swift)

💡배운점 - push 알림을 통해 사용자에게 중요한 정보를 전달할 수 있음(앱 사용량, 특정 행동 유도) - UserNotifications를 이용하여 서버 없이 알림 세부정보를 로컬로 구성해봄 👾 라이브러리/ 프레임워크 UserNotifications NotificationCenter UserNotification 을 이용해 Push 알림 보내는 법 1. 알림 보낼꺼라는 권한 요청 - Option에 UNAuthorizationOptions(alert, badge, sound) 를 넣어 줌 - completionHandler에는 유저가 허락했을 경우와 안했을 경우로 나뉨 - notification을 보내기 전에 어떤 핸들링을 할 것이지 설정 2 . Content 지정 (알림 내용) - title - 제목..

[iOS] 실시간 공지 팝업 만들기 (Swift)

💡배운점 Friebase Remote Config를 이용하여 복잡한 인프라를 설정하거나 새 버전을 출시하지 않고도 동적으로 기능을 켜거나 끄고, 세그먼트를 맞춤 설정하여 앱 동작과 모양을 변경할 수 있었음 Firebase A/B Testing을 이용하여 변경사항들을 미리 테스트하여 분석할 수 있었습니다. 👾 라이브러리 'Firebase Remote Config' 'Firebase A/B Testing https://firebase.google.com/products/remote-config?gclid=CjwKCAiA68ebBhB-EiwALVC-NnEtAacIMWZvv8ByqrKAuaEVJCpsORt9BzM2N1ne0EI6Y9GzkwzgLhoCEtEQAvD_BwE&gclsrc=aw.ds Firebase 원..

[iOS] Remote Config , A/B Testing (Firebase)

Firebase Remote Config (즉석에서 앱 제어 및 최적화) - 배포나, 업데이트 다운로드 없이 앱 동작과 모양을 변경할 수 있는 클라우드 서비스 ex) 공지사항 등에 사용할 수 있음 (평소에 숨겨 두었다가) - 기본 값 설정 후 값 재정의 , 클라우드 기반 key - value 저장소 기본 key, value 설정 Description - key,value 가 무엇인지 설명 주요 기능 - 앱 사용자층에 변경사항을 빠르게 적용 - 업데이트 없이 앱의 UI/UX 변경 지원 - 사용자층의 특정 세그먼트에 앱 맞춤설정 - 앱 버전, 언어 등으로 분류된 사용자 세그먼트 별 환경 제공 조건 -플랫폼, 언어, 국가, 지역, 잠재 사용자, 임의 백분위수의 사용자, 날짜,시간 설치 ID 조건을 통해서 특정..

[iOS] 신용카드 추천 리스트 만들기 (Kingfisher / lottie / Realtime Database / Cloud Firestore)

💡배운점 별도의 서버 개발 없이 SDK를 통해서 클라이언트가 직접 데이터 베이스 접근할 수 있었음 Kingfisher를 통해 url로부터 이미지를 다운 후 캐시에 저장하면 빠르게 요청할 수 있었음 *캐시 - 데이터나 값을 미리 복사해 놓는 임시 장소 Real Time Database 에서 JSON 파일 및 데이터를 읽기 / 쓰기 / 삭제하는 법 Cloud Firestore에서 collection, document의 데이터를 읽기 / 쓰기 / 삭제 하는 법 👾 라이브러리 'Kingfisher', '~> 7.0' 'lottie-ios' 'Firebase/Database' 'Firebase/Firestore' 'FirebaseFirestoreSwift' https://github.com/onevcat/King..

[iOS] 코로나 어플만들기 - COVID19 (Swift)

👾 라이브러리 Alamofire corona-19API (굿바이코로나) Charts (도넛 모양 차트 ) https://github.com/Alamofire/Alamofire GitHub - Alamofire/Alamofire: Elegant HTTP Networking in Swift Elegant HTTP Networking in Swift. Contribute to Alamofire/Alamofire development by creating an account on GitHub. github.com https://github.com/dhlife09/Corona-19-API?utm_source=keygen-email GitHub - dhlife09/Corona-19-API: 코로나바이러스감염증-19..

[iOS] 날씨 앱 만들기 (UIKit)

@IBOutlet weak var weatherStackView: UIStackView! 도시이름, 날씨, 기온, 최고/저기온을 합친 StackView -> Hidden 속성을 주어 날씨를 가져왔을때 보여주기 위해 Outlet 설정 @IBOutlet weak var cityNameTextField: UITextField! -> TextField에 도시이름을 검색할 수 있도록함 @IBOutlet weak var weatherDescriptionLabel: UILabel! -> 날씨 @IBOutlet weak var cityNameLabel: UILabel! -> 도시이름 @IBOutlet weak var minTempLabel: UILabel! -> 최저기온 @IBOutlet weak var maxTemp..

[iOS] TodoList 만들기 3/3 (.setEditing/commit editingStyle forRowAt/moveRowAt)

setEditing 메서드를 이용해 Edit 버튼을 누를경우 편집모드로 전환하고 commit editingStyle forRowAt , moveRowAt을 이용해 cell을 삭제하고 순서를 변환을 가능하게 함 배운것들 1 . strong Outlet 변수 strong Outlet 변수 editButton추가 NavigationItem이 done이 되면 weak에 의해 메모리 해제가 일어나 더이상 재사용할 수 없음 2.Selector - viewDidLoad에서 BarbuttonItem 생성 - selector안에 버튼을 눌렀을 경우 호출되는 메서드 doneButtonTap 추가 objc) selector는 동적호출을 목적으로 매 class를 가리키는참조타입 swift) 구조체형식으로 정의되고 해당값의 값..

[iOS] TodoList 만들기 2/3 (UserDefaults/didSelectRowAt)

TextField를 이용해 할일들을 테이블뷰에 전달하도록 하였는데 앱을 껐다가 키면 넘겨준 정보들이 모두 날라가게 됨 그래서 UserDefaults라는 로컬 저장을 사용함 UserDefaults - 런타임환경이 동작하면서 앱이 실행되는 동안 기본저장소에 접근해 데이터를(키-값으로 ) 기록하고 가져오는 역할을 하는 인터페이스 - 싱글톤패턴으로 앱전체 하나의 인스턴스만 존재하게 됨 - 여러가지 데이터타입을 저장할 수 있음(Float,Int,Double,,Bool,URL,NSData,NSString,NSNumber 등) UserDefaults에 할일 저장하는 메서드 만들기 - tasks 배열을 매핑하여 딕셔너리 형태로 바꿔줌 - UserDefaults.standard로 UserDefaults에 접근하도록함 -..