23.08.18 금

2023. 8. 27. 11:11·Study/🌱 SeSAC

✅ Font

Untitled.png

asset은 copy bundle resources에 들어가있음

폰트파일 연결하기

 

Untitled.png

폰트명을 찾아보자!

폰트 파일 명과 폰트명은 다를 확률이 높다.


✅ Dispatch Group

서로 다른 task들을 그룹화 하여 Queue에 보낸 task들이 작업을 완료할 때 까지 기다리고, 그룹화 된 task가 완료되면 notify를 통해 알림을 받을 수 있는 기능을 한다.

QoS

Quality Of Service

Untitled.png

동시에 일을 맡기기는 하지만 먼저 작업을 했으면 좋겠는 작업 설정

Untitled.png

background → 작업 중요도가 낮은(파일 다운로드)

unspecified → 시스템에게 중요도 순위를 알아서 판단하라고 맡김

userInteractive → 중요도가 높은 작업

모든 일을 가장 먼저 혹은 늦게 하는 것은 아니다.

다른 작업도 동시에 수행하면서 부여한 중요도에 따라 최종적으로 일을 마치는 시간이 상대적으로 빠르고 늦는 것

main 스레드에는 중요도 설정 요소가 없다. global에서 설정할 수 있음

ex) 넷플릭스 메인 추천작은 빠르게 보여줘야 한다.

파일 다운로드는 메인 추천작 보다는 덜 중요하기 때문에 백그라운드로 실행

Untitled.png

)

Untitled.png

notify를 이용하여 작업 완료 알림 받기

Untitled.png

그룹에 대한 신호를 받겠다

queue → 어디에서 받나?

Untitled.png

메인 스레드에서 신호를 받아서 수행하겠다~

Untitled.png

같은 그룹으로 묶인 dispatch queue에서 완료 신호를 모두 받으면 print 실행

DispatchGroup

notify → 동기 함수

enter / leave → 비동기 함수

🔎 notify

Untitled.pngUntitled.png

 

❗️비동기 함수는 다른 스레드에서 동작하는 요소이기 때문에 해당 작업이 끝날 때 까지 기다리지 않고 바로 notify를 띄우는 문제가 발생한다.

때문에 notify는 동기 함수에 적용하는 것이 좋고, 비동기 함수는 enter / leave에 적용하는 것이 좋다.

🔎 enter / leave

비동기 함수를 DispatchGroup에서 호출할 때의 문제를 해결하기 위해 사용된다.

reference count + 1

Untitled.png

 

Untitled.png

통신 작업 전 enter

통신 끝나기 직전에 leave


💡 알림

✅ Local Notification 로컬알림

앱 내부에서 사용자 기기에 알림을 전달하는 방법

비슷한 시간에 비슷한 알림이 오는 것

xcode에서 내장하고 있는 데이터 기반 알림

✅ Remote Notification 원격알림

채팅 알림, 유튜브 알림, 광고 알림 등 언제 어떤 알림이 오는지 알 수 없는 알림

xcode 외부에서 데이터를 받는 것

💡 로컬 알림 구현하기

✅ 알림을 띄우기 위한 고려사항

✔️ Authorization → AppDelegate

사용자가 권한을 허용해야 함

사용자가 필요로할 때 권한 설정 알림을 띄우는 것이 바람직 함

앱을 시작하자마자 띄워야 한다면 appDelegate → didFinishLaunchingWithOptions

알림에 붙일 설정을 부여할 수 있다. 대체로 alert, badge, sound는 기본적으로 설정 함

 

 

✔️ Request

Content: 알림에 보내고 싶은 메세지가 무엇인가

Trigger: 언제 보내고 싶은지

 

 

✔️Notification

identifier

알림에 대한 고유한 값

여러 알림을 보내더라도 identifier가 동일하다면 알림 내용이 수정되는 형태로 동작한다.

identifier가 다르면 스택으로 쌓임

 

알림은 background에서 발생한다.

foreground 상태에서는 알림이 안뜨는 것이 디폴트! ⇒ 애플 정책

Untitled.png

UNUserNotificationCentertDelegate에서 foreground 설정을 해주면 됨

 

Untitled.png

'Study > 🌱 SeSAC' 카테고리의 다른 글

23.08.24 목  (0) 2023.08.31
23.08.23 수  (1) 2023.08.31
23.08.22 화  (0) 2023.08.31
23.08.21 월  (1) 2023.08.27
23.08.14 월  (0) 2023.08.27
'Study/🌱 SeSAC' 카테고리의 다른 글
  • 23.08.23 수
  • 23.08.22 화
  • 23.08.21 월
  • 23.08.14 월
김졀니
김졀니
🍎 iOS 개발
  • 김졀니
    졀니의 개발 공부✨
    김졀니
  • 전체
    오늘
    어제
    • 분류 전체보기
      • iOS
        • Swift
        • UIKit&SwiftUI
        • RxSwift&Combine
        • WWDC
      • Study
        • 🚨 TroubleShooting
        • 🌱 SeSAC
  • 블로그 메뉴

    • 홈
    • Github
  • 인기 글

  • 최근 글

  • 태그

    FileManager
    swiftdata
    traits
    Sendable
    displayPriority
    concurrency
    Drawing Cycle
    @PropertyWrapper
    동시성프로그래밍
    swift concurrency
    RxSwift
    wwdc23
    의존성 주입
    OperationQueue
    mainactor
    observable
    pointfree
    ReactorKit
    CLLocation
    ios
    위치 권한
    mapkit
    Swift
    actor
    이미지 캐싱
    kingfisher header
    Realm
    layoutIfNeeded
    clipstobounds
    인앱리뷰
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
김졀니
23.08.18 금
상단으로

티스토리툴바