✅ Font
asset은 copy bundle resources에 들어가있음
폰트파일 연결하기
폰트명을 찾아보자!
폰트 파일 명과 폰트명은 다를 확률이 높다.
✅ Dispatch Group
서로 다른 task들을 그룹화 하여 Queue에 보낸 task들이 작업을 완료할 때 까지 기다리고, 그룹화 된 task가 완료되면 notify를 통해 알림을 받을 수 있는 기능을 한다.
QoS
Quality Of Service
동시에 일을 맡기기는 하지만 먼저 작업을 했으면 좋겠는 작업 설정
background → 작업 중요도가 낮은(파일 다운로드)
unspecified → 시스템에게 중요도 순위를 알아서 판단하라고 맡김
userInteractive → 중요도가 높은 작업
모든 일을 가장 먼저 혹은 늦게 하는 것은 아니다.
다른 작업도 동시에 수행하면서 부여한 중요도에 따라 최종적으로 일을 마치는 시간이 상대적으로 빠르고 늦는 것
main 스레드에는 중요도 설정 요소가 없다. global에서 설정할 수 있음
ex) 넷플릭스 메인 추천작은 빠르게 보여줘야 한다.
파일 다운로드는 메인 추천작 보다는 덜 중요하기 때문에 백그라운드로 실행
)
notify를 이용하여 작업 완료 알림 받기
그룹에 대한 신호를 받겠다
queue → 어디에서 받나?
메인 스레드에서 신호를 받아서 수행하겠다~
같은 그룹으로 묶인 dispatch queue에서 완료 신호를 모두 받으면 print 실행
DispatchGroup
notify → 동기 함수
enter / leave → 비동기 함수
🔎 notify
❗️비동기 함수는 다른 스레드에서 동작하는 요소이기 때문에 해당 작업이 끝날 때 까지 기다리지 않고 바로 notify를 띄우는 문제가 발생한다.
때문에 notify는 동기 함수에 적용하는 것이 좋고, 비동기 함수는 enter / leave에 적용하는 것이 좋다.
🔎 enter / leave
비동기 함수를 DispatchGroup에서 호출할 때의 문제를 해결하기 위해 사용된다.
reference count + 1
통신 작업 전 enter
통신 끝나기 직전에 leave
💡 알림
✅ Local Notification 로컬알림
앱 내부에서 사용자 기기에 알림을 전달하는 방법
비슷한 시간에 비슷한 알림이 오는 것
xcode에서 내장하고 있는 데이터 기반 알림
✅ Remote Notification 원격알림
채팅 알림, 유튜브 알림, 광고 알림 등 언제 어떤 알림이 오는지 알 수 없는 알림
xcode 외부에서 데이터를 받는 것
💡 로컬 알림 구현하기
✅ 알림을 띄우기 위한 고려사항
✔️ Authorization → AppDelegate
사용자가 권한을 허용해야 함
사용자가 필요로할 때 권한 설정 알림을 띄우는 것이 바람직 함
앱을 시작하자마자 띄워야 한다면 appDelegate → didFinishLaunchingWithOptions
알림에 붙일 설정을 부여할 수 있다. 대체로 alert, badge, sound는 기본적으로 설정 함
✔️ Request
Content: 알림에 보내고 싶은 메세지가 무엇인가
Trigger: 언제 보내고 싶은지
✔️Notification
identifier
알림에 대한 고유한 값
여러 알림을 보내더라도 identifier가 동일하다면 알림 내용이 수정되는 형태로 동작한다.
identifier가 다르면 스택으로 쌓임
알림은 background에서 발생한다.
foreground 상태에서는 알림이 안뜨는 것이 디폴트! ⇒ 애플 정책
UNUserNotificationCentertDelegate에서 foreground 설정을 해주면 됨
'iOS > 🌱 SeSAC' 카테고리의 다른 글
23.08.24 목 (0) | 2023.08.31 |
---|---|
23.08.23 수 (0) | 2023.08.31 |
23.08.22 화 (0) | 2023.08.31 |
23.08.21 월 (1) | 2023.08.27 |
23.08.14 월 (0) | 2023.08.27 |