분류 전체보기 (11) 썸네일형 리스트형 WWDC 22 - Discover PhotoKit change History 사진과 관련된 프로젝트를 진행 중에 궁금한 점이 있어 시청하게 되었다. 기존과 다른 토큰을 이용한 asset을 가지고 오는 방법이다.PhotoKit Apple Inc. Discover PhotoKit change history - WWDC22 - Videos - Apple DeveloperphotoKit은 다양한 API를 제공한다.기존에는 어떤 사진이 추가된건지 앱이 생성된 날짜가 앱의 마지막 실행 날짜 이후인 asset을 가지고 올 수 있었다.업데이트를 하는 경우 모든 asset을 가지고 오고, 업데이트를 위해 수정 날짜를 확인해야 한다. 하지만 이 경우에 내부 활동 때문에 asset의 수정 날짜가 변경이 일어나 잘못 찾을 수 있다.삭제를 하는 경우 모든 asset을 가지고 와서 반환하지 않은 asse.. [WWDC 19] Combine in Practice combine의 publisher들은 기본적으로 Publisher라는 프로토콜을 준수한다.해당 프로토콜에는 2가지의 유형이 존재한다. 출력값과 실패(error)Subscriber의 Input과 Failure가 Publisher의 유형과 동일해야 한다. NotificationCenter는 publisher를 지원한다.Publisher에서의 중요한 점은 실제 ouput 및 failure의 타입이 무엇인지 아는 것이 중요하다.Notification은 실패할 수 없기 때문에Output은 NotificationFailure는 Never 기존에 쓰던 Map과 비슷한기능을 제공한다.그렇기 때문에 publisher의 output인 Notification내부 userInfo에 Data로 변환이 가능한 값이 있기 때문에.. [WWDC 19] Introducing Combine https://developer.apple.com/videos/play/wwdc2019/722/ Introducing Combine - WWDC19 - Videos - Apple DeveloperCombine is a unified declarative framework for processing values over time. Learn how it can simplify asynchronous code like networking,...developer.apple.com간단한 앱유저의 이름과 패스워드를 확인하는 과정이 있다.이러한 과정은 메인 스레드를 차단하지 않고 사용자의 입력과 반응이 호환되어야 한다.이미 많은 비동기 작업들이 일어 나고 있다.Target / Action사용자의 입력에 대한 알림을.. SpriteKit을 이용한 수박게임 만들기 scene내부에 중력과 탄성 등을 이용해 가장 간단히 만들 수 있는 게 무엇이 있을까 생각하다 '수박게임'으로 정했다. 기존에 벽이라는 skSpriteNode를 생성해서 4방향에 벽을 배치했었다.scene의 frame으로 physicsBody를 주는 방법이 있다.private func configureBoundary() { let boundary = SKPhysicsBody(edgeLoopFrom: self.frame) boundary.categoryBitMask = PhysicsCategory.wall.bitmask boundary.collisionBitMask = PhysicsCategory.all.bitmask boundary.restitution = 0.3 .. SpriteKit을 이용한 "벽돌 깨기" 만들기 2024.06.21 - [SpriteKit] - SpriteKit 시작해보기지난번에 공부했던 SpriteKit의 기초를 이용해 단순한 벽돌 깨기를 만들었다. final class GameScene: SKScene { private let ball = SKSpriteNode(imageNamed: "ball") private let underReflector = SKSpriteNode(imageNamed: "underReflector") private var bricks = [SKSpriteNode]() override func sceneDidLoad() { super.sceneDidLoad() backgroundColor = .wh.. SpriteKit 시작해보기 Sprite kit을 이용해 단순한 게임을 만들어 보자일단 기본적으로 알아야 하는 사항은 다음과 같다.뷰 계층 구조ViewController가장 상위 레벨의 컨트롤러화면에 표시되는 SKView를 포함한다.SKViewSpriteKit의 전용 뷰 객체SkScene을 표시SKSceneSKView에 표시되는 장면 객체게임 로직과 게임 오브젝트를 포함한다.SKSpriteNodeSKScene에 포함된 개별 오브젝트 노드이미지, 물리 엔진, 애니메이션을 적용하는 게 가능하다. SpriteNodehttps://developer.apple.com/documentation/spritekit/skspritenode이미지나 단색으로 초기화가 가능한 화면상의 그래픽 요소다.위치를 잡아주고 scene에 addChild를 통해 s.. WWDC 16 Understanding Swift Performance ( 2 / 2 ) Struct로 정적 디스패치지만 프로토콜로 인해 다형성을 가지게 된다.drawables에 Point와 Line모두 들어가는 것이 가능하다. 하지만 Struct Line과 Struct Point는 V-Table 디스패치를 수행하는데 필요한 공통 상속 관계를 유지하지 않는다.그렇다면 아떻게 배열을 도는 동안 올바른 메소드로 디스패치를 하는 것 일까?Protocol Witness Table 이렇게 각자의 테이블을 형성하고 연결이 되어 있다. 어떻게 배열의 요소에서 테이블로 이동을 할까? Line은 4개의 프로퍼티를 가지고 있고Point는 2개의 프로 퍼티를 가지고 있다.배열은 요소들을 고정된 크기로 균일하게 저장하려 한다.어떻게 가능할까?Existential Containerswift가 Existenti.. WWDC 16 Understanding Swift Performance (1/2) 서론swift 코드를 작성할 때 내가 만든 인스턴스가 스택에 할당될 건지?아니면 힙에 할당되는 것인지?이 인스턴스를 전달할 때 참조 계산 오버헤드가 얼마나 되는가?동적 할당인가? 정적 할당인가? 알고 있어야한다. 그동안 문제가 생기면 생각을 해도 코드를 작성하기 전에, 스스로 생각하면서 코드를 작성하지는 않는 듯하다.AllocationStack스택이란??후입선출의 데이터 구조로 가장 나중에 들어간 데이터가 가장 먼저 나오게 된다.함수를 호출할 때 공간을 만들기 위해 스택 포인터를 간단하게 줄이는 것으로 필요한 메모리를 할당할 수 있다.함수의 실행이 끝나면 스택 포인터를 함수를 호출하기 전의 위치로 다시 증가 시키는 것만으로 간단하게 해당 메모리 할당을 해제할 수 있다.스택은 힙에 비해 상대적으로 빠른 처.. ARC (Automatic Reference Counting) ARCswift는 ARC를 사용하여 앱의 메모리 사용량을 추적하고 관리한다.클래스 인스턴스가 더 이상 필요하지 않을 때 해당 인스턴스가 사용하는 메모리를 자동으로 해제한다.reference count는 참조를 사용하는 인스턴스에만 적용한다.How ARC Works클래스의 새 인스턴스를 생성할 때마다 ARC는 해당 인스턴스에 대한 정보를 저장하기 위해 메모리 공간을 할당한다.이 메모리에는 인스턴스 타입, 인스턴스와 관련된 모든 저장된 프로퍼티의 값이 저장된다.인스턴스가 필요 없다면 ARC가 해당 인스턴스가 사용하던 메모리를 해제하여 다른 용도로 메모리를 사용이 가능해진다.더 이상 필요 없는 인스턴스가 메모리 공간을 차지하지 않는다.ARC가 사용 중인 인스턴스를 할당 해제하면 , 더 이상 해당 인스턴스의 프.. Closure 클로저 https://docs.swift.org/swift-book/documentation/the-swift-programming-language/closures/ combine의 sink라는 메서드가 변수나 상수에 할당이 안되면 내부 클로저의 구문이 실행이 안돼서 의문을 가지고 closure를 찾아보게 되었다.ClosureClosures can capture and store references to any constants and variables from the context in which they’re defined.closure는 선언된 위치에서 해당 상수와 변수에 대해 reference를 capture한다. 이것을 상수와 변수에 대한 클로징이라고 한다.그렇다면 capture 때문에 메모리에 부담.. 이전 1 2 다음