애플의 Face ID 를 활용한 샘플 프로젝트와 개발자 문서를 정리해봤다. iOS) Face ID & Touch ID - Biometrics Authentication(생체인식 인증) 자, 이제 카카오톡 QR코드 위젯에 적용해보자. 내용 앱 접근 시 Face ID 를 통해서 인증을 필요로 한다. 시작하기 🔓 프로젝트 설정 🔓 UI 구성 기기에서 Face ID 를 지원하면 Face ID 버튼을 보여줌. 🔓 Face ID 적용 mvvm 패턴에서 Face ID 인증 절차를 가지는 Service 클래스를 만들고 로직을 구성하였다. FaceIDAuthenticationViewController private func setFaceIDAuthentication() { faceIDButton.isHidden = se..
우선 Local Authentication 에 대해서 알아보자 시작 전 😃 Local Authentication Authenticate users biometrically(생체인식) 또는 이미 알고 있는 passphrase(암호)로 사용자를 인증합니다. Overview 많은 사용자가 TouchID 또는 FaceID 와 같은 생체인식에 의존해서 장비에 손쉽게 접근할 수 있다. 대체 옵션으로 생체 인식이 없는 경우 암호가 비슷한 용도로 활용된다. LocalAuthentication 프레임워크를 사용하여 앱에서 이러한 메커니즘을 활용하고 이미 구현한 인증 절차를 확장할 수 있다. 보안을 극대화하기 위해서 underlying authentication data(기본 인증 데이터)에 접근할 수 없다. 예를들어 지..
📌 UIImage 를 Data 로 변환해서 UserDefaults 에 저장하는 것은 부적합하다? UIImage 를 Data 로 변환하는 것에 의문을 가진 게시글이 있었다. 참고해보자. How to Save an Image in User Defaults in Swift 그 이유는 UserDefaults 를 이미지 데이터와 같이 대량의 데이터를 저장하는데 사용하기에는 부적합하다는 것이다. 그리고 나는 이러한 문제를 바로 최근에 직면했었다. iOS) UserDefaults 에 image 저장하기 📌 그렇다면? 위의 글에서는 이렇게 제안한다. application's sandbox 에 이미지를 저장하고 UserDefaults 에 이미지의 위치를 저장하는 것이다. 즉, FileManager 를 사용해서 이..
내용 카카오톡 QR코드, 프로필 위젯을 만들어보겠다. 위젯과 앱간의 프로필(이름, 이미지) 데이터 공유로 다음과 같은 프로필 위젯 만들기 시작전 위젯은 기능이 제한적이며 interactive 하지도 않지만 우리는 앱과 위젯이 데이터를 공유하기를 원할수도 있다. 🤒 App 과 Extension 간의 관계 App Extension Programming Guide 를 살펴보면 App 과 Extension 간의 관계를 볼 수 있다. extension's bundle 이 containing app's bundle 내에 중첩되더라도 실행중인 app extension 과 containg app 은 서로의 contatiner 에 접근할 수 없다. 하지만 데이터 공유를 활성화 할 수 있다. containin app 과 ..
내용 User Defaults 는 NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary 의 인스턴스여야 한다. 만약에 이미지 데이터를 저장하기 위해서는 Data 로 변환을 해주어야 한다. 자, UIImage 를 Data 로 변환해보자. (Data 는 구조체이고 NSData 는 Data 와 연결되는 클래스다. 그래서 개발자문서에서는 인스턴스의 조건에 NSData 를 쓴것이고 구글링하면 대부분의 문서에서는 Data 로 변환해야한다고 편하게 말하는 듯 하다.) 참고 : iOS) User Defaults vs Core Data Apple Developer Documentation 📌 UIImage 저장하기 // ✅ UIImage convert to NSData ..
😇 본격적으로 클론코딩을 해보자 1️⃣ 앱 이름 변경 앱 이름 : 1번 결정. [General] → [Identity] → [Display Name] 에서 다음과 같이 설정해준다. 2️⃣ 여러가지 위젯 생성 위의 코드를 보면서 의문을 가졌다. 그러면 아래처럼 이름도 설명도 크기도 다른 위젯들을 어떻게 추가할 수 있을까?(애니메이션은 참 좋다 크-) 📌 WidgetBundle 단일 widget extension 에서 여럿 위젯을 노출시키는데 사용되는 container. 여러 유형의 위젯을 지원하려면 WidgetBundle 을 채택하는 구조체에 @main 속성을 추가하십시오. apple developer's example code @main struct GameWidgets: WidgetBundle { va..
내용 카카오톡에서 qrcode 를 위젯으로 제공하고 있다. 물론 홈으로 가져올 수도 있다. 귀엽다... 구현해보자 😇Widget?! Widget 은 프로토콜이다. (히익!) Home 화면(iOS)이나 Notification Center(macOS) 에 표시할 위젯의 구성 및 내용이다. Overview 위젯은 바로 앱의 관련 콘텐츠를 한눈에 볼 수 있도록 표시합니다. 사용자는 개별 요구 사항에 맞게 추가, 구성 및 정렬할 수 있다. 여러 유형의 위젯을 제공할 수 있다. 위젯에는 세가지 주요 구성요소가 있다. configuration : 위젯이 구성할 수 있는지 여부를 결정하고, 위젯을 식별하고, SwiftUI 뷰를 정의한다. timeline provider : 시간이 지남에 따라 위젯의 보기를 업데이트하는..
내용 MVVM 패턴을 적용해보자 데이터바인딩 방법은 Observable 클래스 사용 QR코드 뷰와 뷰모델만 소개해보겠다. View import UIKit import SnapKit class QRCodeViewController: UIViewController { // MARK: - Properties // ✅ view model let viewModel = QRCodeViewModel() let closeButton = UIButton() let switchShakeButton = UIButton() let privateQuestionButton = UIButton() let titleLabel = UILabel() let subtitleLabel = UILabel() let privatetextLab..
- YPImagePicker
- watchOS
- Algorithm
- WidgetKit
- UserDefaults
- Widget
- CloneCoding
- Objective-C
- IOS
- projectsetting
- WWDC22
- configurable widget
- Firebase
- MVVM
- async/await
- RxCocoa
- WWDC
- rxswift
- containerBackground
- Notification
- 서버통신
- urlsession
- github
- MOYA
- Protocol
- OpenSourceLibrary
- Swift
- SwiftUI
- APNS
- 2022 KAKAO TECH INTERNSHIP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Total
- Today
- Yesterday