분류 전체보기
-
App Tracking TransparencyiOS 2021. 10. 16. 10:51
안녕하세요. 그린입니다🟢 이번 포스팅에서는 App Tracking Transparency에 대해 학습해보겠습니다🧑🏻💻 우선 App Tracking Transparency가 무엇인지 알아보시죠! App Tracking Transparency? 앱 추적 투명성이라고 해석할 수 있습니다. iOS 14.5부터 애플에서 App Tracking Transparency 프레임워크가 추가되었어요. 기존에는 앱에서 사용자의 IDFA(IDentifier for Advertising)이라 불리는 광고 ID에 아무 제약없이 접근하여 수집할 수 있었어요. 그런데 아시다시피 요즘은 워낙 이런 개인정보추적에 민감하다보니 앱의 최초 실행 시 해당 앱이 추적하는것에 대한 허가를 사용자가 선택 할 수 있게되었습니다. 당연히 애플 정책..
-
RxSwift - ZipRxSwift 2021. 10. 13. 20:12
안녕하세요. 그린입니다🟢 이번 포스팅에서는 RxSwift의 Zip에 대해 학습해보겠습니다💁🏻 이전에 CombineLatest에 대해서 학습해본적이 있습니다. 그때 CombineLatest는 두가지의 옵저버블 방출을 통해 합쳐서 보내준다는점에선 Zip과 동일합니다. 다만 CombineLatest는 합성 후 그다음 다른 옵저버블의 방출이 들어온다면 또 합성하여 뿌려주는 특성이 있었습니다. 그러면 Zip은 어떻게 다른건지 알아보시죠🧐 Zip Zip이란? 정의한 함수를 통해 여러 Observable의 방출을 결합하여 이 조합에 의해 단일 항목으로 방출해줍니다. 아래 그림과 같은 플로우입니다. 자 위 플로우를 보면 첫번째 옵저버블의 흐름에서는 1,2,3,4,5가 방출되고 두번째는 A,B,C,D가 방출됩니다. 여기..
-
RxSwift - Buffer & WindowRxSwift 2021. 10. 6. 19:30
안녕하세요. 그린입니다🟢 이번 포스팅에서는 RxSwift의 Buffer와 Window에 대해 학습해보겠습니다🏃🏻 이전 포스팅에서 Debounce와 Throttle에 대해 학습해볼때 잠깐 Buffer와 Window를 봤었어요! 그런데 타이머를 두는것도 그렇고 비슷한것 같은데 어떤 차이가 있는지 궁금해졌습니다. 이에 요 포스팅에서 두개를 알아보려합니다🧐 Buffer Buffer란? Buffer는 옵저버블에서 방출하는 이벤트를 번들로 한번에 묶어서 묶음으로 방출하게 해줍니다. 아래 그림과 같은 플로우입니다. 그림을 보면 빨간 이벤트가 발생하고 어느정도의 TimeSpan이후 빨/노/초 이벤트에 대해 묶어 방출시켜줍니다. Buffer의 선언 import RxSwift public func buffer( timeS..
-
Access Photo Library & Delete AssetiOS 2021. 10. 3. 09:58
안녕하세요. 그린입니다🟢 이번 포스팅에서는 디바이스 사진 앨범에 접근하는 방법 및 에셋을 삭제하는 방법에 대해 알아보겠습니다🧑🏻💻 이전에 제 포스팅중에서 화면 캡쳐 및 녹화 방지에 대해 학습해본적이 있습니다! https://green1229.tistory.com/169 화면 캡쳐 및 녹화 방지 안녕하세요. 그린입니다🟢 이번 포스팅에서는 화면 캡쳐 및 녹화 방지에 대해 포스팅해보겠습니다🧑🏻💻 제공하는 앱에서 화면 캡쳐와 녹화를 원천적으로 차단할 수 있을까요? 우선, 가능 green1229.tistory.com 그런데 화면 캡쳐와 녹화 방지된것을 얼럿만 띄워주는걸 보았는데요. 더 발전시켜서 사용자가 원한다면 캡쳐 및 녹화된 사진과 영상을 삭제할 수도 있어야 될것 같아요. 그렇다면 디바이스 사진 앨범에 접..
-
RxSwfit - Debounce & ThrottleRxSwift 2021. 10. 2. 10:29
안녕하세요. 그린입니다🟢 이번 포스팅에서는 RxSwift에서 사용되는 debounce와 throttle에 대해 학습해보겠습니다🧑🏻💻 자세히 학습하기전 간단하게 debounce와 throttle이 어떤걸 해주는 메서드인가요? Rx에서는 사용자의 액션이나 정의해준것에 따라 observable이 방출됩니다. 그 소리는 만약 동시다발적으로 여러 액션을 취해주면 observable이 따닥따닥 붙어서 방출되겠죠? debounce는 간략히 타이머라고 생각하면 됩니다. 타이머를 두고 일정 시간 후 마지막에 들어온 observable을 방출해줍니다. throttle도 비슷한듯 다른데요. throttle은 이벤트가 방출되면 타이머를 두고 해당 타이머 이후에 이벤트를 또 다시 방출하는 차이입니다. 그러면 이제 본격적으로 ..
-
Swift 5.5 - async & awaitConcurrency 2021. 9. 25. 11:33
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Swift 5.5에서 새롭게 나온 async & await에 대해 학습해보겠습니다🧑🏻💻 사실 나온지는 Swift 5.5가 나온 3월? 정도지만 이번에 Xcode13으로 업데이트하면서 같이 학습해보게 되었습니다😁 async와 await가 이번 Swift 5.5에서 인기라고 하는데 왜 그런지 알아보겠습니다! async & await가 간략히 뭘해주나요? 다른 유형의 비동기 처리 작업을 해주는 코드로 비동기 처리 코드를 동기 처리처럼 보일 수 있도록 지원 이전 비동기 처리의 문제 1. 비동기 처리 시 클로저 및 콜백을 통해 비동기 프로그래밍을 하다 보니 복잡도 증가 2. 하나의 비동기 처리 일때는 크게 문제 없지만 여러 비동기 처리와 오류 처리가 섞이면서 많은 중첩..
-
SwiftUI - NotificationCenterSwiftUI 2021. 9. 19. 12:06
안녕하세요. 그린입니다🟢 이번 포스팅에서는 SwiftUI에서 NotificationCenter를 활용하는 방법에 대해 학습하겠습니다🧑🏻💻 UIKit에서는 잘 알겠는데 대체 SwiftUI에서는 어떻게 노피티케이션 센터를 활용할까요? 정말 이번 포스팅은 간단합니다. 순식간에 슉~하고 끝나버리니 눈 크게 뜨고 보셔야 됩니다👀 아, 참고로 이전에 포스팅했던 스크린샷 캡쳐/녹화 감지 및 방지에 대해 UIKit으로 구현한걸 SwiftUI의 NotificationCenter를 통해 구현하는 예제로 보겠습니다👍🏻 NotificationCenter 생성 import SWiftUI struct mainView: View { let screenCapturePublisher = NotificationCenter.defaul..
-
Codility - CountDivAlgorithm 2021. 9. 12. 14:30
아래 문제는 코딜리티에서 제공하는 CountDiv의 문제입니다🧑🏻💻 문제 제시 Write a function: public func solution(_ A : Int, _ B : Int, _ K : Int) -> Int that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.: { i : A ≤ i ≤ B, i mod K = 0 } For example, for A = 6, B = 11 and K = 2, your function should return 3, because there are three numbers divisible by ..