앞으로 나올 시리즈 목록 Single (현재!) dispose -> 왜 누수가 발생하는지? observable / subject subject / relay subscribe / bind / drive publish / behavior Single Single은 RxSwift의 traits 중 하나로, `.success()`와 `failure()` 두 가지 이벤트만 방출한다. `.success()`는 `onNext`와 `onComplete`을 합친 것과 같으며, 값을 포함해서 방출한다. 다만, `.success()`가 `onNext`와 `onComplete`를 합친 것과 같이 동작한다고 해서 event를 `onNext`나 `onComplete`로 전달하게 된다면 오류가 나니 주의해야 한다. 추가적으로, ..
우리는 로컬 알림 설정을 통해 특정한 시간이나 날짜에 사용자에게 알림을 보내줄 수 있었다. 근데, 우리가 편하게 쓰는 앱들을 생각해 보면 꼭 정해진 시간이나 날짜에 알림이 오지 않는다. 음, 예를 들어서 쿠팡을 생각해 보자! 쿠팡의 경우에는 특정한 물품이 얼마 남지 않았어요! 라든가 특정한 물건이 세일 중이에요! 같은 알림을 보내준다. 이런 알림은 어떻게 보낼 수 있을까? 앱 내부에서 설정해 줄 수 있는 로컬 알림으로는 설정해 줄 수 없다. 왜냐하면 이러한 정보들은 서버에서 우리에게 보내줘야 하는 내용이기 때문이다! 이런 알림들은 앱 사용자 모두가 받는 것이 아니라 보통 개인에게 맞춤화된 정보를 보내는데, 이때 사용하는 것이 push notification이다. 아무튼! Orang에서 추후에 새로운 기능..
URLSession URL로 표시된 엔드포인트에서 데이터를 업로드하거나 다운로드하는 등의 API를 제공해 주는 클래스를 말하며, 내부의 여러 설정을 통해 데이터를 어떻게 전송하고 어떻게 동작할지를 설정할 수 있다. URLSession의 shared의 경우에는 은 싱글톤 객체로 구성되어 있어 사용자가 커스터마이징한 것을 등록할 수는 없지만, 그 사용 범위가 제한적인 경우 내부의 method나 설정을 이용하여 네트워크 통신을 할 수 있다. 간단하고 기본적인 요청일 경우에는 앞서 말한 Shared Session나 조금 더 커스터마이징을 해서 사용할 수 있는 Default Session을 이용하여 사용할 수 있고, 이외에도 다른 Session Configuration을 이용하여 별도의 처리를 할 수 있다. UR..
우리는 privacy와 authorization과 관련해서는 기술보다는 사용자를 우선으로 해야 한다. 어떻게 하면 사용자 경험을 방해하지 않고 더 많은 통제권을 줄 수 있을지, 그럼으로써 더 나은 사용자 환경을 제공하려면 어떤 방식을 써야 하는지 생각해야 한다. 그렇다고 유저를 너무 귀찮게 해서도 안 된다! (당연함 불편하다...) 필요 이상의 정보를 요청하지 않으면서 사용자와의 신뢰를 구축하고, 사용자가 모르는 사이에 이미 통제권을 가지고 있다는 걸 알게 해야 한다. 사용자에게 권한을 필요로 하는 것들 중에서 권한을 요청하지 않고 사용할 수 있는 것은 아무것도 없다. 사진, 카메라부터 위치까지 모두 그렇다. 사실 당연하다. 개인정보니까! 그렇기 때문에, 모든 설정은 iOS 시스템 설정을 우선시한다. 만..
User Notification Framework 사용자의 디바이스에 알림을 주는 프레임워크로, 앱의 실행 여부에 상관없이 사용자에게 새로운 정보를 전달할 수 있다. 앱 아이콘 상단에 뜨는 뱃지와 알림 소리, 알림의 내용을 설정할 수 있으며, 이 기능은 사용자의 디바이스의 권한이 필수적이다. 따라서, 알림을 보내기 전에 사용자에게 권한을 묻는 알림창을 꼭 띄워 주어야 한다. 또한, 이 알림창의 경우에는 각 앱마다 앱의 이름만 달라질뿐, 개별적으로 문구를 설정할 수 없다. 알림은 사용자의 알림 센터에 표시되며, stack 형식으로 차례차례 쌓인다. 설정에서 사용자는 알림 센터에 알림을 줄 앱을 켜고 끌 수 있다. 알림을 사용하는 주된 이유는 여러 가지가 있지만, 앱의 재사용률에 기여하기 위해 notific..