ios
-
APNs 를 통한 Push 알림 이해하기iOS 2022. 12. 7. 21:57
오늘은 개개인이 갖고 있는 아이폰 디바이스에 푸시 알림이 오는 과정에 대해 알아보려고 합니다. 앱 개발자의 관점에서 살펴봅니다 :) 먼저 푸시가 전송되는 큰 흐름을 간략하게 보고 블라인드로 남아있는 부분을 하나씩 알아보겠습니다. 흐름 이해하기 개별 디바이스에 직접적으로 푸시 알림을 보낼 수 있는 주체는 오직 APNs 뿐입니다. APNs 란 Apple Push Notification server 의 약자로 즉 애플만이 직접적으로 디바이스에 푸시 알림을 보낼 수 있습니다. 따라서 저희는 APNs 에게 우리 앱에 푸시를 보내줘! 라고 요청해야 합니다. 이 요청이 유효한지 보고 APNs 가 푸시를 보낼지 말지를 판단합니다. 이 요청 또한 정해진 규격에 맞게 APNs 와 연결한 후에 가능하고, 이를 위해 APNs..
-
Skip - 구독 후 처음 n번 스킵하기RxSwift 2021. 11. 30. 18:20
Skip 구독 후 처음 n번을 건너 뛰고 싶을 때 사용하는 Operator 입니다. 위 그림처럼, 처음 원하는 n번의 이벤트를 스킵해줄 수 있습니다! 저는 TextField에 처음 값을 세팅하고 이후에 들어오는 입력부터 유효성 검사를 하고 싶었는데요, 검사가 완료, 실패하고 나서는 텍스트 필드에 변화를 줘야됐어서, 처음에는 유효성 검사를 하면 안 되는 경우를 만났었어요! 다음과 같이 사용해서 처음 구독할 때 검사를 스킵해줄 수 있었습니다. textField.rx.text.orEmpty .skip(1) . . 너무도 간단한 오퍼레이터고 이미 많이들 아시겠지만... 막상 필요할 때 어떤 오퍼레이터가 필요한지, 무엇이 있는지, 모를 수 있으니 차곡차곡 알아가보도록 해야겠습니다. 감사합니다.
-
UITextField clear button customiOS 2021. 10. 25. 22:02
UITextField 에서는 기본적으로 clear 버튼을 제공하는데요, 이걸 커스텀 하려면 어떻게 하는지, 이때 또 어떤 문제가 있었는지 알아보겠습니다 :) 기본 clear button 우선 기본적인 clear 버튼은 clearButtonMode를 통해 만들어줄 수 있습니다. textfield.clearButtonMode = .whileEditing 이렇게 4가지 모드가 있는데 각각은 보시면 아시겠죠?? 아무튼 이걸 설정해주면 이렇게 clear 버튼이 나타나고, 버튼을 눌러 clear 동작까지 알아서 해줄 수가 있습니다. clear button custom 문제는 저 clear 버튼을 커스텀 할 수가 없다는 겁니다.. (아니 🍎 쓰는김에 좀 더 쓰지...) 제 문제는 저 어두운 배경에서 clear 버튼이..
-
RIBs) tutorial3iOS 2021. 6. 26. 17:01
uber 공식 튜토리얼을 따라가면서 제 나름대로 정리한 내용입니다. 보다 정확한 내용은 원문을 참고해주시고 오류나 수정사항이 있으면 알려주시면 감사하겠습니다. 🙇🏻♂️ 전체 코드를 보시려면 여기로 ;) ⚠️ 우버 튜토리얼의 순서를 그대로 따라가지 않습니다. 이전 튜토리얼에서 부터 만들어나갑니다. 목표 이번엔 각 플레이어의 스코어 확인 화면, 무승부 처리 같은 추가 기능들을 추가합니다. 이건 부수적인거고 핵심적으로 - build 메소드를 통해 자식 RIB에 동적으로 의존성을 주입하는 방법 - DI tree를 사용해 정적으로 의존성을 주입하는 방법 - RIBs LifeCycle을 사용해 Rx Stream을 관리하는 방법 에 대해 배워봅니다. 이번 튜토리얼부터는 Rx 개념이 조금 들어갑니다. Dynamic ..
-
RIBs) tutorial2-2iOS 2021. 6. 26. 14:12
uber 공식 튜토리얼을 따라가면서 제 나름대로 정리한 내용입니다. 보다 정확한 내용은 원문을 참고해주시고 오류나 수정사항이 있으면 알려주시면 감사하겠습니다. 🙇🏻♂️ 전체 코드를 보시려면 여기로 ;) ⚠️ 우버 튜토리얼의 순서를 그대로 따라가지 않습니다. 이전 튜토리얼에서 부터 만들어나갑니다. TicTacToe 이제 진짜 게임을 시작할 차례입니다. 앞선 LoggedOut → LoggedIn 과 비슷합니다. 이번엔 OffGame → TicTacToe로 OffGame 에서 Start Game 버튼이 눌리면 TicTacToe RIB으로 이동시켜줍니다. 똑~~같습니다. 먼저 TicTacToe RIB을 만들어줍니다. 당연히 뷰가 있는 RIB 이겠죠? 원래 튜토리얼에는 틱택토 게임이 구현된 TicTacToe R..
-
RIBs) tutorial2iOS 2021. 6. 26. 00:13
uber 공식 튜토리얼을 따라가면서 제 나름대로 정리한 내용입니다. 보다 정확한 내용은 원문을 참고해주시고 오류나 수정사항이 있으면 알려주시면 감사하겠습니다. 🙇🏻♂️ 전체 코드를 보시려면 여기로 ;) ⚠️ 우버 튜토리얼의 순서를 그대로 따라가지 않습니다. 이전 튜토리얼에서 부터 만들어나갑니다. 목표 자식 RIB과 부모 RIB 통신 부모 interactor에서 자식 RIB attaching/dettaching View-less RIB 생성 view-less RIB이 dettaching될 때 cleaning up view 정리 부모 RIB이 처음 로드될 때 자식 RIB attaching RIB 라이프사이클 이해하기 RIB Unit testing 프로젝트 구조 그림과 같은 RIB tree를 구성하려고 합니..
-
RIBs) tutorial1iOS 2021. 6. 25. 23:58
uber 공식 튜토리얼을 따라가면서 제 나름대로 정리한 내용입니다. 보다 정확한 내용은 원문을 참고해주시고 오류나 수정사항이 있으면 알려주시면 감사하겠습니다. 🙇🏻♂️ 전체 코드를 보시려면 여기로 ;) 목표 간단한 이 튜토리얼들은 간단한 tictactoe 게임을 만들어보는 것입니다. 튜토리얼을 따라가보면서 RIB 에 대해 이해하고 서로가 어떻게 상호작용하는지 알아봅니다 :) Project 구조 먼저 튜토리얼 템플릿을 다운받습니다. 기본 템플릿에는 Root, LoggedOut 2개의 RIB 폴더가 만들어져 있네요. 제일 먼저 AppDelegate 에서 RIB을 생성해주면서 시작되는데요, Root RIB은 이미 만들어져 있고, LoggedOut은 DELETE_ME 라는 파일만 있습니다. 원하는 대로 DEL..
-
CALayer 그리고 View와의 관계iOS 2021. 1. 31. 17:58
개인적으로 공부하며 정리하는 블로그 입니다. 오류나 부족한 부분이 있을 수 있으니 감안하여 봐주시고 아낌없는 조언 감사드립니다 :D CA, Core Animation CALayer의 CA는 Core Animation의 prefix입니다. CALayer를 알기 전에 먼저 Core Animation에 대해 알아보겠습니다. Core Animation Programming Guide를 보면 Core Animation의 역할과 목적에 대해 나와있습니다. Core Animation provides a general purpose system for animating views and other visual elements of your app. Core Animation is not a replacement for..