본문 바로가기

iOS14

어플은 몇개의 CPU 코어에서 실행되나요? Swift 언어 베이스로 만든 어플리케이션이 실제 아이폰과 같은 디바이스에서 실행될때, CPU의 단일 코어에서 실행이 될까 아니면 여러 코어에서 병렬적으로 실행이 될까? 고수준으로 발달한 HW, SW를 모두 개발하는 애플과 같은 회사들은 양쪽의 최적화가 굉장히 잘 되어 있겠죠? 하지만, 그 모든 코드와 로직들을 오픈소스로 공개하지는 않으니, Swift의 코드레벨과 Apple Document를 기반으로 위와 같은 질문에 대한 답을 추론해보도록 하겠습니다 먼저 앱을 손가락으로 눌러 실행시키게 되면, 코드 덩어리였던 어플리케이션이 메인메모리에 올라오게 되면서 하나의 프로세스로 실행되게 됩니다. 이 프로세스 즉 어플리케이션은 실행과 동시에 한개의 프로세스로 실행되고 ios의 스케쥴링 정책에 따라 어느 CPU 코.. 2023. 9. 25.
DataSource말고 DiffableDataSource로 DiffableDataSource DiffableDataSource의 정의 먼저 봐보자(나는 UITableView를 예시로 삼아 글을 작성할꺼다!, UICollectionView도 거의 동일) @preconcurrency @MainActor class UITableViewDiffableDataSource : NSObject where SectionIdentifierType : Hashable, SectionIdentifierType : Sendable, ItemIdentifierType : Hashable, ItemIdentifierType : Sendable 내 블로그에서 조금 다뤄봤던 @MainActor로 선언되어 있고, DataSource를 구성하는 값은 2개를 받는데, 한개는 SectionIden.. 2023. 1. 6.
protocol 이럴때 사용해보세요 Swift는 프로토콜 지향언어다 라는 이야기가 있듯이 Swift는 프로토콜의 활용이 굉장히 중요하다. 그럼 프로토콜은 언제 쓰는데요?! 를 위해서 정리해 본다. 먼저 가벼운 뷰를 만들고 상황을 보자! struct DefaultColorTheme { let primary: Color = .blue let secondary: Color = .white let tertiary: Color = .gray } struct Protocols: View { let colorTheme: DefaultColorTheme = DefaultColorTheme() var body: some View { ZStack { colorTheme.tertiary .ignoresSafeArea() Text("Protocol") .fon.. 2022. 12. 27.
AsyncPublisher (구독을 하지 않고 데이터의 변화를 확인) AsyncPublisher란, 관찰하고 싶은 객체에 대한 구독을 하지 않고 그 value들을 확인 할 수 있다. class AsyncPublisherDataManager { @Published var myData: [String] = [] // 2초 마다 myData에 데이터를 넣어주는 함수 func addData() async { myData.append("Apple") try? await Task.sleep(nanoseconds: 2_000_000_000) myData.append("Banana") try? await Task.sleep(nanoseconds: 2_000_000_000) myData.append("Orange") try? await Task.sleep(nanoseconds: 2_000.. 2022. 12. 26.