분류 전체보기

    [RxSwift] RxSwift란?

    RxSwift란? ✨ 간단하게 알아보기 Bindings : Dispatch Queue를 이용했던 것을 bind를 이용해 자동적으로 처리 Observable .combineLatest( firstName.rx.text, lastName.rx.text ) { $0 + " " + $1 } .map { "Greetings, \\($0)" } .bind(to: greetingLabel.rx.text) .disposed(by: disposeBag) 재시도 ex) api 통신 실패했을때 재시도 용이 func doSomethingIncredible(forWho: String) throws -> IncredibleThing doSomethingIncredible(“me") .retry(3) Delegate : 훨씬 더 ..

    [iOS] 클로저에서 [weak self] 알아보기

    capture와 escaping capture: 클로저 내부에서 밖에 있는 scope의 instance를 참조하는 것 escaping: 클로저 외부에서 해당 클로저 자체를 참조하고 있는 것 Escaping closure : 함수의 인자로 전달된 클로저가 함수가 반환된 후 실행 되는 클로저 // 함수의 return보다 completion이 늦게 실행되는 경우 (escaping closure) func someFunction(completion: @escpaing () -> Void = {}) { self.someDelayProcess { completion() } print("someFunc!") return } Weak reference(약한 참조) : Retain Cycle(순환 참조)로 인한 메모리 ..

    [iOS] APN, FCM 정리

    APN : Apple Push Notification Service 보안관리 1️⃣ connection trust provider to apns connection trust : 서버측 token -base: 유효한 인증키인지 판단 certificate-base: ssl 인증서 Apns to device connection trust: 클라측 : 승인된 장치만 알림을 받을 수 있도록 하는 것 2️⃣ Device token trust : 오직 apns만 장치 토큰을 읽을 수 있다. 디바이스나 앱의 상태가 변경되었을때 새로 발급 → 항상 고유한 상태 유지 새로운 폰 백업으로 복원 iOS 버전 업그레이드 Firebase Cloud Messaing : 손쉽게 원격 알림을 구축할 수 있는 서비스 → 서버의 역할을..

    [iOS] UIStackView 정리

    stackView Axis : stackView 방향을 결정(가로 또는 세로) stackView Distribution : stackView 안에들어갈 뷰들의 사이즈를 어떻게 분배할지 설정하는 속성 stackView Alignment : stackView의 subView들을 어떤식으로 정렬할지 결정하는 속성 stackView Spacing : stackView 안에 들어가는 뷰들의 간격을 조정하는 속성

    [iOS] Xcode error 대처 방법

    1. Xcode에서의 디버그 방법 Break Point 1. Break Point 활성화/비활성화 설정 2. 앱 실행을 다시 시작 3. Step Over: 코드 한 줄만 실행 4. Step In: 함수 내부로 들어가기 5. Step Out: 함수 외부로 나오기 * Variable View : break point가 설정된 타이밍의 변수의 값(상태)들을 확인 가능하다. * Console 화면(LLDB) LLDB -> 디버깅의 기초, 앱의 현재 상황 확인 View Hierarchy -> view의 디버깅 Memory Checker -> Memory leak 디버깅

    [iOS] AppDelegate와 SceneDelegate, App의 생명주기

    AppDelegate와 SceneDelegate iOS 13부터 바뀐점 바뀌기 이전(~iOS12) 바뀐 후 (iOS13) 1. iOS12까지는 대부분 하나의 앱에 하나의 window였지만 iOS 13부터는 window의 개념이 scene으로 대체되고 하나의 앱에서 여러개의 scene을 가질 수 있음 2. AppDelegate의 역할 중 UI의 상태를 알 수 있는 UILifeCycle에 대한 부분을 SceneDelegate가 하게 됨 3. 그리고 AppDelegate에 Session Lifecycle에 대한 역할이 추가됨 Session LifeCycle에는 두 메소드가 존재한다. 각각의 메소드는 Scene Session이 생성되거나 삭제될 때 AppDelegate에 알리는 역할을 한다. Scene Sess..

    [iOS] ViewController 생명 주기

    ViewController 생명 주기 1. LoadView : 화면에 띄워줄 뷰를 만드는 메소드, 뷰를 만들고 메모리에 올림 2. ViewDidLoad : 뷰 컨트롤러가 메모리에 올라간 뒤에 호출됨, 뷰가 생성 될 때 시스템에 의해 자동으로 호출됨 3. ViewWillappear : 뷰 컨트롤러의 화면이 올라오고 난 후 뷰가 화면에 나타나기 직전에 호출됨 4. ViewDidappear : 뷰가 데이터와 함께 완전히 화면에 나타나고 호출됨 5. ViewWillDisappear : 뷰가 사라지기 직전에 호출됨 6. ViewDidDisappear : 뷰 컨트롤러가 화면에서 제거되면 호출됨 * 호출 순서 [화면 1] -> [화면 2] -> [화면 1] [출처] https://tono18.tistory.com/11

    [iOS] Frame & Bounds

    공통점 x좌표, y좌표, width(너비), height(높이)를 가짐 차이점 Frame SuperView(상위뷰)의 좌표시스템 안에서 View의 위치와 크기 이때 상위뷰는 최상위 뷰가 아니라 현재 뷰의 상위뷰 뷰의 위치와 크기를 정해줄때 사용 Bound View의 위치와 크기를 자신만의 좌표시스템 안에서 나타냄 바운드를 변경하는 것은 해당 위치에서 View를 다시 그리라는 의미 스크롤뷰가 스크롤하는 것은 바운드값을 변경해서 뷰가 그려질 위치를 지정하는 것 default값 = (0, 0) [출처] https://memohg.tistory.com/124#%23%20Frame%20%EA%B3%BC%20Bound https://suragch.medium.com/frame-vs-bounds-in-ios-1079..