본문 바로가기

분류 전체보기53

[WWDC16] Understanding Swift Performance - 1부 이전에 올렸던 글이 사진과 글이 몇개 누락된 채로 올라갔던 걸 발견해서 조금 더 첨부해서 다시 올리고 원래글은 비공개로 돌립니다😐 Understanding Swift Performance 1부 Heap이 Stack보다 동적이지만 효율성이 떨어진다 Heap 자료구조를 사용하면서 힙을 검색하여 적절한 크기의 사용하지 않는 블록을 찾고 할당 해제 후 메모리를 적절한 위치에 다시 삽입하는 과정을 겪게 되는데, 이것이 Heap allocation(힙 할당)의 메인 cost가 되는 것이 아니다. 여러 스레드가 동시에 힙에 메모리를 할당할 수 있으므로 힙은 잠그거나, 또는 기타 동기화 메커니즘을 사용하여 무결성을 보호해야한다는 것이 사실 main cost라고 할 수 있다. 하지만 사람이 직접 이 모든걸 관리하면서 한.. 2023. 5. 5.
[삽질] 상단 Custom TabBar 구현 전체적인 뷰 설계하기 CollectionView & CollectionView ?? 🤔 상단 탭바만 보면 옆으로 스와이프를 하면 화면이 넘어가는 것을 볼 수 있다. 그리고 횡스크롤이 가능해야한다. 탭 이동시에 indicatorbar의 넓이 및 위치가 글자에 맞게 조정된다. 여기서 처음에 든 생각은 맨아래에 CollectionView를 깔고 TabBar도 CollectionView로 만들고 TabBar를 움직일 때 Cell을 넘기는 방식으로 생각했다. 인디케이터바의 넓이 및 위치를 구현하는데도 용이하다고 판단했다. 그런데 구현 중에 모두 동일한 콜백으로 이벤트가 들어오는데 일일히 분기처리하는 것이 깔끔하지 않다고 생각했다. 아니면 더 나은 방법이 있었을지는 음 CollectionView & PageView.. 2023. 5. 1.
[WWDC22] Design protocol interfaces in Swift Understand type erasure associatedtype을 가진 프로토콜이 어떻게 실존 타입과 상호작용할까?🤔 - 닭은 달걀을 낳고 소는 우유를 만들어낸다. 이를 한번 더 추상화해보자. (associatedtype) - 이를 다이어그램으로 나타낸다면 아래와 같다. - protocol의 Self타입은 Animal protocol을 채택하는 actual concrete type. - protocol Self타입은 Commodity라는 'Food'를 채택하는 associatedtype을 가지고 있다. - any Animal을 통해 Animal 프로토콜을 채택하는 동물들을 담을 수 있다. some이게 되면 underlying type이 고정되기 때문에 any를 통해 선언해준다. - any가 가능한 .. 2023. 4. 27.
[WWDC19] Advances in Collection View Layout (Compositional Layout 정리) - 2(完) Advanced Layouts Supplementary items NSCollectionLayoutSupplementaryItem Badges Headers Footers Simplifies using supplementaries Anchored to item or group NSCollectionLayoutAnchor host space(item or group)에 위와 같이 상대적으로 anchored될 수 있다. 💡 badge는 item(cell)에 붙는 것이므로 item의 supplementaryItems에 들어가야함. Header, Footer header와 footer는 content를 가리는 것이 아니라 콘텐츠 영역을 확장하여 콘텐츠 자체를 볼 수 있도록 하기 위한 것이다. Boundary s.. 2023. 4. 27.