기록하는 습관을 통해 성장하자.
-
[iOS] 타사 SDK 요구 사항 변경 예정
Upcoming third-party SDK requirements 24년 5월 1일부터 앱스토어 커넥트에 제출되는 앱은 privacy manifest 가 제공되지 않으면 리젝됨. 타사 SDK는 개발자나 사용자도 모르게 개인정보 보안을 취약하게 만들 수 있음. 타사 SDK 를 대상으로 한 개인정보 보호 매니페스트 및 서명 기능 도입 Privacy manifests 타사 코드가 앱에서 개인정보를 어떻게 처리하는지 하나의 표준 형식으로 요약한 파일 외부 SDK 와 이를 사용하는 앱에서 수집되는 데이터 목록을 공개하고 개인정보 처리 방침을 기재해야 함. PrivacyInfo.xcprivacy 파일 생성 Choose File > New File > select App Privacy File type 이 파일은 ..
2024.03.22
-
[iOS] WKWebView 정리 Swift
WKWebView를 사용하면서 설정했던 것들을 기록합니다. WKWebView 특징 기존의 UIWebview를 대신하여 사용하며 iOS 9 이상의 버전을 필요로 합니다. 또한, 자바스크립트 엔진인 Nitro를 사용해서 UIWebView보다 성능이 더 좋습니다. 로컬로 저장된 파일에 대한 Ajax 요청을 지원하지 않습니다. 쿠키 허용 설정 및 고급 캐시 설정 지원을 하지 않고 앱 종료 시 HTML5 로컬 스토리지가 삭제됩니다. 기본 설정 import UIKit import WebKit class ViewController: UIViewController { var webView: WKWebView! override func loadView() { let webConfiguration = WKWebViewCo..
2022.02.04
-
[Swift] 알고리즘에 필요한 Tip 정리
스위프트 알고리즘을 시작하면서 필요한 내용을 정리한 것을 올립니다! 시간 날 때마다 계속 추가할 예정..! 기본 입력 받기 (input의 타입은 String) var input = readLine()! Int형 한 개의 숫자 입력 받기 var num = Int(readLine()!)! "1 2 3 4 5"와 같은 공백 있는 숫자 입력 받기 // split - ReturnType: [SubString] var nums = readLine()!.split(separator: " ").map {Int($0)!} // components - ReturnType: [String] var nums = readLine()!.components(separatedBy: " "). map {Int($0)!} "12345"..
2021.01.22
-
[RxSwift] Time Based Operators
Time Based Operators 에 관해 정리한 내용을 기록합니다. Time Based Operators Interval 주어진 시간 간격을 두고 주기마다 방출되는 Operator completed 되지 않고 무한한 시퀀스를 생성한다. disposed 하지 않으면 구독 이후 계속 반복하여 방출한다. public static func interval(_ period: RxTimeInterval, scheduler: SchedulerType) -> Observable { return Timer( period: period, // 이벤트가 방출되는 주기 scheduler: scheduler // 스케쥴러 설정 ) } Observable .interval(.seconds(3), scheduler: Main..
2022.07.18
-
[iOS] FSCalendar Custom Header Swift
FSCalendar에서 스와이프를 통해 달을 변경할 수 있지만, 따로 헤더에 버튼 부분이 없기 때문에 방법을 공유하고자 기록하겠습니다. 우선 아래와 같이 스토리보드에서 calendarView 위에 버튼, 라벨, 버튼으로 되어 있는 스택뷰를 추가한다. 그리고 해당 뷰컨트롤러에 아래 코드와 같이 연결해준다. @IBOutlet weak var calendarView: FSCalendar! @IBOutlet weak var headerLabel: UILabel! @IBAction func prevBtnTapped(_ sender: UIButton) { scrollCurrentPage(isPrev: true) } @IBAction func nextBtnTapped(_ sender: UIButton) { scrol..
2021.03.10
-
[iOS] UNUserNotificationCenter를 이용해서 로컬 푸시하기!
iOS앱에서 로컬 노티피케이션을 푸시하기 위해서 UNUserNotificationCenter를 사용해보겠습니다. UNUserNotificationCenter는 앱 또는 앱의 확장에 대한 알림과 관련된 활동을 관리하기 위한 중심 객체라고 합니다. alert, badge, sound를 통해 사용자에게 알림을 주고 알림을 스케쥴링할 수 있습니다. 먼저 사용자에게서 권한을 얻어야 합니다. func requestNotiAuth() { let authOptions = UNAuthorizationOptions(arrayLiteral: .alert, .badge, .sound) UNUserNotificationCenter .current() .requestAuthorization(options: authOptions)..
2021.01.05
-
[iOS/Xcode] 소스코드 공백 표시
Xcode에서 소스코드의 공백을 표시하는 방법에 관해 기록합니다. Editor 탭의 Invisible을 클릭하시면 간단하게 설정할 수 있습니다. 아래 사진과 같이 공백을 표시하는 설정할 수 있습니다.
2021.12.10