시작Kakao 로그인에 이어서 Naver 로그인도 구현해 봅시다. Naver 개발 문서는 정말 친절하지도 않고설명도 Obj-c로 구현돼 있어서 짜증 나고 어려웠던 거 같습니다. 막상 해보니 구현 방법은 Kakao 로그인이랑 비슷하긴 하네요.만약, 소셜로그인을 구현이 처음이시라면Kakao 로그인을 구현해 보고 Naver 로그인을 해보시는 걸 추천드립니다. Naver Dev. 사이트 설정 처음해야 할 일은 애플리케이션 등록 입니다. 아래 그림과 같이 먼저 애플리케이션 이름을 설정합니다.다음으로 사용할 API를 설정해 주세요. 개발 환경 iOS를 선택합니다.여기선 테스트 목적으로 사용했기 때문에, 다운로드 URL은 때문에 아무 주소나 적어줬습니다.(이미 앱스토어에 올라가 있다면 그 주소를 사용해 줍시다) 그..
시작애플 로그인에 이어 카카오 로그인 연동도 도전해보려 합니다.초기 설정들은 카카오 Doc 에 아주 자세히 나와있으므로, 간단히 넘어갈 예정입니다. 초기 설정일단 가장 먼저 해야 할 일은 Kakao Dev에서 내 애플리케이션 을 추가해줘야 합니다. 다음으로 위의 문서를 따라 로그인 활성화, RedirectURL, 동의 항목 등 필수 항목들을 설정해 주세요. 카카오 소셜 연동을 하기 앞서 필요한 기본 설정들은 끝났습니다. Kakao SDK(Software Dev Kit) 설치다음으로 Kakao SDK가 필요합니다. 아래 이미지처럼 카카오에서 제공하는 모듈은 이런 기능들을 갖고 있습니다.자세한 내용을 확인하고 싶다면, Kakao SDK 문서 를 참고해 주세요. 위에 보시다시피 Kakao SDK에 많은 모..
시작타 플랫폼 소셜로그인을 사용할 경우, 심사 지침에 따라 Apple 로그인을 필수적으로 구현을 해줘야 한다고 합니다.그래서 오늘은 Apple 로그인을 구현하는 방법을 알아보려 합니다. Capability 추가Apple 로그인 기능을 사용하기 위해, 가장 먼저 해야 할 일은 Capability에서 Sign in wiht Apple을 추가해줘야 합니다.이렇게 해주면 초기설정 완료 로그인 버튼 생성기본적으로 애플에서 제공하는 로그인 버튼 클래스가 존재합니다.당연히 커스텀으로도 구현할 수 있습니다. 여기서 중요한 게 디자인의 직관성을 위해, 애플이 로그인 버튼 관련 여러 가이드라인 을 만들어 놨습니다.제공되는 버튼 및 커스텀 버튼을 사용하기 전에, 꼭 HIG를 숙지해서 작업해 주도록 합시다 오늘은 제공되는..
목차 FlexLayout, PinLayout을 사용해 보자! FlexLayout 모든 메서드들을 알아보자! PinLayout 메서드를 알아보자! (+ ScrollView)! 개인적으론 snapKit이 직관적이고 쉬운 것 같은데, 생각보다 FlexLayout + PinLayout도 많이 사용하는 것 같더라고요. 이제 거의 다 왔습니다. 빠르게 마무리 지어보고 사용하다가 팁이나 문제가 생기면 바로 새로운 글을 올려보겠습니다. PinLayout의 사용 시점은 레이아웃이 다 잡히는 시점(슈퍼뷰의 위치 및 크기를 알 수 있는 시점)인 viewDidLayoutSubViews(), layoutSubViews()에서 사용해줘야 합니다. 그 이유는 장치 회전 및 컨테이너 크기를 동적으로 조절하기 위해서 위와 같은 시점에..
목차 FlexLayout, PinLayout을 사용해 보자! FlexLayout 모든 메서드들을 알아보자! PinLayout 메서드를 알아보자! (+ ScrollView)! 메서드들도 많고 CSS를 사용해 보지 않아서 그런가 생소한 단어들도 보이네요 ㅠ.ㅠ 뭔가 느낌은 알 것 같은데, 그래도 일단은 한 번씩은 써봐야 이해되겠죠?! 자, 이전 글 의 예제로 시작해 봅시다. import UIKit import FlexLayout import PinLayout class ViewController: UIViewController { private let containerView = UIView() private let label1: UILabel = { let label = UILabel() label.bac..
목차 FlexLayout, PinLayout을 사용해 보자! FlexLayout 모든 메서드들을 알아보자 PinLayout 메서드를 알아보자! (+ ScrollView)! FlexLayout이란? FlexLayout은 CSS의 Flexbox를 영감을 받아서 만들어진 레이아웃 라이브러리라고 합니다. Auto Layout, UIStackView보다 8~12배 정도 렌더링 성능이 빠릅니다. SwiftUI와 마찬가지로 선언형이고 구문 연결(Chain-able)이 가능합니다. 일단, GitHub 문서 를 간단히 살펴보니, Flexbox와 동일한 역할을 하는 Container를 만들어 초기화시켜 주네요. 이 Container는 UIStackView와 비슷하게 동작하는 것 같은데, 같이 한 번 살펴봅시다. PinLa..
시작 이전 글에서 [iOS/Swift] MVVM 패턴의 Data Binding에 대해서 알아보자! (Closure, Observable, Combine) 간단하게 바인딩을 하는 법을 알아봤습니다. 이전 글의 방법은 'ViewModel -> View 바인딩'으로 어디선가 데이터를 받아오면, ViewModel의 데이터들이 View와 결합되어, 즉시 View에 업데이트 되게 만들었고 이번에 공부해 볼 것은 'View -> ViewModel 바인딩' 에 대해서 알아보려고 합니다. 말 그대로 이번엔 View(사용자)에서 입력 받은 데이터를 즉시 ViewModel에 결합시키는 방법을 배워봅시다. 일단, 들어가기 전에 간단히 로그인 화면을 생각해 봅시다. 로그인 화면은 먼저 사용자가 ID와 Password를 입력을 ..
subscript란? 공식문서에서는 클래스, 구조체, 열거형 등 시퀀스의 멤버 요소에 접근할 수 있는 기능(문법)이라고 합니다. 공식문서 에 문법에 대한 자세한 내용은 나와있으니, 문법은 여기서 참고합시다! 다시 설명하면 클래스, 구조체, 열거형 등에서도 배열이나 콜렉션에서 사용되는 "[]" subscript 문법(첨자)을 통해 접근할 수 있게 도와준다네요. 그리고 subscript을 사용자의 요구사항에 맞게 정의할 수 있다고 하는데, 어떤 방식으로 사용할 수 있는지 간단히 알아봅시다. 사용자가 만든 모델에 쉽게 접근 가능 먼저, 이름과 나이로 간단한 모델(Model)을 만들어 줬고 클래스인 ModelManger를 통해 모델 데이터를 사용하기 편리하게 만들어 줬습니다. 추가로 subscript 문법을 사..
앱 이름 변경하기 info.plist를 수정을 통해, 간단히 앱 이름을 변경할 수 있습니다. 앱 이름 현지화 나라마다, 앱의 이름을 달리 해줘야 할 때 사용 ex. 영어권 문화에서도 앱을 출시했는데, 만약 한국어로 돼있다면 곤란하겠죠. 구현하기 1. Strings File을 생성하고 이름을 'InfoPlist.strings'로 저장해 주세요. 2. 만들어준, InfoPlist 파일의 인스펙터 창에서 'Localize' 버튼을 눌러 줍니다. 3. 프로젝트 설정으로 들어가 Localizations에서 한국어를 추가해 줍니다. 그러면 이와 같이, 하위 파일이 지역별로 나뉘어 생성됩니다. 4. 다시 'InfoPlist.string' 파일로 돌아와서 'Korea'가 체크 돼있다면, 사용 준비 완료! 5. 각 지역..
앱 추적 투명성(App Tracking Transparency) iOS +14.5부터 도입된 개인 정보 보호 관련 기능입니다. 앱에서 자신의 정보를 수집하거나 추적할 여부를 사용자에 물어보는 기능입니다. iOS +14.5 부터, ATT(App Tracking Transparency)가 도입되서 사용자가 추적을 허락할 때만, 광고 추적 식별자인 IDFA(Identifier for Advertisers)를 이용할 수 있게 됬습니다. 여기서, 광고 추적 식별자 IDFA(Identifier for Advertisers)는 사용자에게 맞춤형 광고를 보여주는 기능입니다. 자세한 내용은 공식 문서 를 참고해주세요. 앱 추적 권한 요청하기 먼저, info.plist에서 권한 요청 설정을 해줘야 합니다. 구현하기 참고로..