본문 바로가기

Developer/iOS, Swift27

[Swift] 애플 아이디로 로그인 기능 구현하기 이번 포스팅에서는 애플 아이디로 로그인하는 기능에 대해 알아보겠습니다. 본 포스팅은 DeveloperFury님의 글을 참조했습니다. 또한 애플 개발자 계정에서 키값이나 identifier 등을 설정하는 과정은 생략합니다. 애플 id로 로그인? 보통 앱 사용할 때 구글이나 페이스북, 네이버, 카카오 등 소셜 로그인을 통해 간단하게 가입할 수 있습니다. 애플 id로 로그인하는 것도 이와 동일하며, 작년 개발자 포럼에서 발표된 사항으로 알고 있습니다. 앱 자체 순수 로그인 기능이 아닌, 제 3의 소셜 로그인 기능을 사용하는 앱의 경우, 의무적으로 애플 id로 로그인을 만들 것을 심사 지침에서 확인하실 수 있습니다. 즉, 애플id로 로그인 없이 제 3의 소셜 로그인 기능만으로는 앱을 배포할 수 없습니다. (조금.. 2020. 5. 11.
[Swift] 서버에서 FCM 접근, iOS로 PUSH 푸시 보내기 iOS와 FCM을 연동시키고, FCM 콘솔에서 테스트 메시지를 보내는 것까지는 자료가 많아서 금방 했습니다. 제가 얼마전에 올린 FCM 관련 포스팅도, 굳이 정리할 필요 없이 다른 분들이 정리를 잘해주셔서 그대로 링크 주소만 따왔었는데요. 오늘은 별도의 서버에서 FCM에 POST하여, iOS 디바이스에 푸시알람을 주는 방법에 대해 알아보겠습니다. 안드로이드와 iOS는 보내는 JSON 포맷이 다르다!! FCM 서버에 POST하는 JSON 포맷이 다릅니다. 먼저 안드로이드는 다음과 같습니다. 1234567891011121314import requestsimport json url = "https://fcm.googleapis.com/fcm/send" data = { "to": "Android Device K.. 2020. 2. 27.
[Swift] 아래로 당겨서 새로고침 기능 (Scroll 후 Refresh하기) 흔히 많이 사용하는 TableView나 CollectionView 등에서 아래로 스크롤 시 새로고침 기능이 있다는 것을 잘 알고 계실겁니다. 이미 수 많은 앱에서 사용하고 있는 대표적인 기능 중 하나인데요. 사용 방법은 다음과 같습니다. 12345678910111213141516171819202122232425262728293031private var refreshControl = UIRefreshControl() override func viewDidLoad() { super.viewDidLoad() loadServer() // 서버 데이터 로드 collectionView.refreshControl = refreshControl refreshControl.addTarget(self, action: #s.. 2020. 2. 26.
[Swift] UIActivityIndicator 예제 (로딩중 표시 띄우기) 이번 포스팅에서는 UIActivityIndicator을 사용하는 예제를 소개합니다. ActivityIndicator은 흔히 말하는 로딩중 이미지로, 안드로이드의 ProgressBar와 유사한 기능을 하는 것 같습니다. 사용 방법은 간단합니다. 아래처럼 activityIndicator을 선언하고, viewDidLoad에 subView로 추가합니다. 1234567891011121314151617181920lazy var activityIndicator: UIActivityIndicatorView = { // Create an indicator. let activityIndicator = UIActivityIndicatorView() activityIndicator.frame = CGRect(x: 0, y: .. 2020. 2. 25.
[Swift] 갤러리에 저장된 이미지 파일, 서버에 POST하기 앱에서 흔히 볼 수 있는 이미지 업로드 기능을 생각해보면, 먼저 사진첩 즉 갤러리에 접근해서 가져오는 것을 알 수 있습니다. 이번 포스팅에서는 갤러리에 접근하여 선택된 이미지 데이터를 불러오고, 간단한 전처리 방법 등을 통해 용량을 축소시킨 뒤 서버에 POST하는 방법에 대해 알아보겠습니다. 갤러리 띄우기 UIImagePickerController을 선언하고, viewDidLoad에 다음과 같이 delegate를 선언합니다. 12345678let picker = UIImagePickerController() override func viewDidLoad() { super.viewDidLoad() picker.delegate = self }Colored by Color Scriptercs 특정 버튼을 실행.. 2020. 2. 24.
[Swift] 이미지 라이브러리, KingFisher와 AlamofireImage 기존에는 AlamofireImage를 이용해서 주로 웹 이미지를 따왔습니다만, 쓰다보니 캐시처리를 할 필요가 있더라구요. Kingfisher은 Alamofire 대비 기본 캐싱을 제공하는 것 같습니다. 캐시 처리를 하지 않을 경우, 여러 이미지 셋을 불러올 때 뷰가 버벅거리게 됩니다. AlamofireImage는 캐시처리가 다소 어렵고 불편하게 되어 있는 반면, KingFisher은 자체 내장하고 있어 사용이 매우 편리합니다. Kingfisher import Kingfisher 1imgProfile.kf.setImage(with: url!)cs 기본 이미지뷰에 위와 같이 바로 처리가 가능합니다. 다만, AlamofireImage처럼 response에 따른 처리까지 가능한지는 아직 모르겠습니다. 분명 방법.. 2020. 2. 19.