애플 로그인 구현하기 (Sign in with Apple) 애플 로그인이란?? 앱을 다운받고 실행하면 초기화면에 다음과 같은 버튼을 본적이 있다. 요녀석들! 혹은 카카오, 네이버, Google 로 시작하기 같은 버튼등 편리한 로그인 기능이 있는데 그중 apple 아이디로 회원가입,로그인 기능을 얘기한다. apple에서는 유저의 어떠한 개인정보도 드러내지 않고 로그인할수있도록 했다. (일부앱은 이름이나 이메일을 요구할수도 있다.) 위와같이 이메일을 숨길수도 있는데 이때 숨김옵션을 사용하게되면 실제이메일을 유니크한 랜덤 주소로 만들어준다. 애플은 아무것도 track 하지 않으므로 유저의 개인정보를 보호할수 있도록한다. 구현하기 1. 프레임워크 import하기. import AuthenticationServi..
Launch Screen 런치 스크린(Launch Screen)이란? 공식문서에 아래와 같이 정의 되어있다. 앱이 시작할 때 즉시 나타나고 앱의 첫 번째 화면으로 빠르게 교체되는 화면으로 앱이 빠르고 반응이 좋다는 인상을 줄 수 있다고 한다. 앱의 데이터를 로딩하는 동안 빈 화면을 보여주지 않기 위해 나타내는 화면으로 표현될 수도 있다. 앱의 아이덴티티를 나타낼 수 있는 화면이기도 하다. 앱만의 아이콘, 이미지를 이용해 유저에게 강한 인상을 심어줄 수 있다. iOS에서는 launch Screen, 안드로이드 에서는 splash라는 표현을 쓰는것 같다. 런치스크린을 만들때는 다음과 같은 지침을 따라야한다. UIKit만을 사용해야 한다. 단 하나의 UIView나 UIViewController 객체만을 사용해..
APIKey를 Github에 노출되지 않도록 해야한다! 혹시나 노출되어 법적문제가 발생할수도 있다는...말을 어디선가 들었다..! APIKey 소중하니까 숨겨보도록하자..! APIKEY 숨기는법 1. PropertyList 먼저 PropertyList 파일을 하나 생성해준다! 파일명은 현재 사용하고 있는 API이름을 따서 MalrangMarketInfo 라고 만들어둡니다! 파일에 API_KEY라는 이름의 Key를 하나 추가합니다! VendorId와 Secret은 무시해주세요! Value에는 사용할 APIKEY값을 입력해주면 됩니다! 2. Bundle Extension PropertyList 파일 작업이 끝나고나면 이제 .swift 파일을 하나 만들어줍니다! 네이밍은 Bundle+Sugar 라고 작성해 두..
Cache, NSCache, URLCache Cache(캐시) Cache 란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소를 가르킨다. IOS 파일 시스템에서는 Library 내부에 위치하며 백업이 불가능하다. 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. 반복적으로 서버에서 동일한 데이터를 받아와야 하는경우 캐시를 활용하면 효율적이게 된다. Cache 를 사용한다는것은 반복적으로 동일한 데이터를 서버에서 불러오는 경우 서버에 데이터를 요청하는 것이 아니라 메모리에 데이터를 저장했다가 불러다 쓰는것을 의미한다. 서버에서 데이터를 받아오는것보다 메모리에서 가져오는것이 더빠르기때문에 성능의 이점이 있다. 이때 원하는 데이터가 캐시에 존재할경우 Cache Hit 이라고하며 원하는 데이..
App Bundle의 구조와 역할 Bundle 번들은 크게 App Bundle, FrameWork Bundle, Loadable Bundle 세가지로 나눌 수 있다. 1. App Bundle 실행될수 있는 executable과 executable을 설명하는 Info.plist 파일 그리고 executable에서 사용되는 launch 이미지를 포함한 asset과 자원, 인터페이스 파일, string파일, 데이터 파일로 이루어져 있다. 2. FrameWork Bundle dynamic shared library 라 불리는 동적 공유 라이브러리에서 사용되는 코드와 자원을 포함하고 있다. 3. Loadable Bundle 앱의 기능성을 확장시켜주는 실행 가능한 코드와 자원을 포함하고 있고 플러그인이 대표적인 예..
ARC, RC, 강한 순환 참조에 대해서 설명하시오. 🔑 핵심 내용: ARC는 컴파일 타임에 retain, release 코드를 삽입 하여 메모리를 관리한다. ARC ARC(Automatic Reference Counting)란 앱의 메모리 사용량을 추적하고 관리하는 도구로써 참조 타입 인스턴스가 더이상 필요하지 않을때 인스턴스에 할당된 메모리를 자동으로 해제 하여 메모리를 관리 합니다. 예전 Obj-C 에서는 retain, release 키워드를 작성하여 참조타입의 RC증가 및 감소 하도록 관리 하였는데, ARC는 retain, release 키워드를 컴파일타임에 자동으로 삽입하도록 하여 개발자가 메모리 관리 이슈를 줄이고 코딩 자체에 집줄 할 수 있도록 도와주는 역할을 하게 되었습니다. RC refe..
Reactive programming란 🔑 핵심 키워드: 비동기적 데이터 흐름과 변화의 전파에 중점을둔 프로그래밍 반응형 앱을 만들기 위한 비동기적 데이터 흐름과 변화의 전파에 중점을둔 프로그래밍 페러다임입니다. Reactive programming을 위해서 Swift는 Combine이라는 framework를 제공하고 있으며, Third party framework로 Rx등이 있습니다. 꼬리질문 비동기 프로그래밍이란 무엇인가요? 🔑 핵심 키워드: 여러 작업을 동시에 작업하는 것, Rx또는 Combine등 프레임워크는 비동기 작업의 콜백처리를 쉽게 할 수 있게 해준다. 비동기 프로그래밍이랑 여러 작업을 동시에 작업하는 것입니다. 동시에 작업을 처리할 수 있도록 쓰레드를 나눠 작업합니다. Swift는 비동기..
Underline SegmanetControl 포폴용으로 마켓 앱을 만들고 있는데 오늘의집의 앱의 상단에 위치한 누르면 underline이 움직이는 요거 만들고 싶었습니다. 먼저 SegmentControl을 상속받는 CustomSegmentControl 을 만들어줍니다! private enum SegmentType: String, CaseIterable { case latelyProduct = "최근 상품" case popularProduct = "인기 상품" static var value: [String] { return Self.allCases.map { $0.rawValue } } } final class UnderlineSegmentControl: UISegmentedControl { init()..