본문 바로가기

iOS

(65)
[iOS/UIKit]UICollectionViewLayout vs UICollectionViewFlowLayout | No2. 컬랙션 뷰 탐구 안녕하세요. 이전 포스트에선 UICollectionVIew에 관련된 개념을 정리했었는데, 이번 포스트는 UICollectionViewLayout과 flowLayout을 공부하며 배운 개념을 정리하려고 합니다. 주로 이 링크를 통해 공부했습니다. 잠깐 collection view에 대해서 정리하자면, data source는 collection view에서 특정 section의 number of items 에 관한 정보를 반환할 책임이 있습니다. Data는 indexPath based protocol을 통해 data source에 의해 관리됩니다. delegate는 사용자에 관한 터치 이벤트가 발생했을 때 관련된 메서드(선택,highlighting, editmode etc...)를 호출해야 할 책임이 있습니..
[iOS/UIKit] UICollectionView를 왜 사용할까? CollectionView개념 완전 뿌수기+_+ | No1. 컬랙션 뷰 탐구 안녕하세요. 이번 포스트는 collectionView를 공부하면서 새롭게 알게된 내용, 컬랙션 뷰를 사용하는 이유 등에 대해 느낀점과 개념을 정리하려고 합니다. 1. When should you use CollectionView? 컬랙션 뷰를 선정하기 전에 다량의 데이터를 보여주기 좋은 UI obejct는 tableView도 있습니다. 둘 다 scrollable한 데이터를 보여줄 수 있다는 특징이 있습니다. 한 화면을 자리잡는 테이블 뷰의 경우, cell은 여러 행이 있을 수 있지만 1개의 열만 배치됩니다. 즉 행마다 1개의 cell이 자리잡습니다. 반면 collectionView는 여러 행이 존재할 수 있고, 각각의 행은 여러 개의 cell이 배치될 수 있고, 한 개의 행만 배치될 수 있습니다. 대표적..
[Swift 5.5] GCD의 문제? Swift 5.5 Concurrency model 특징과 async/await 개념 정복하기!! | Concurrency 안녕하세요. 이번 포스트는 Swift 5.5 WWDC async/await에서 새롭게 등장한 async/await에 대해서 공부를 하고 배웠던 내용을 정리하려고 합니다. Async/await는 WWDC를 통해 새롭게 알게 되었는데 원래 async/await pattern이 있고 여러 프로그램에서 디자인 되었다는 것도 새롭게 알게 되었습니다. Structured concurrency원칙을 기반으로 Swift 5.5 concurrecy가 설계 되었습니다. 기존에 존재하는 concurrenct APIs가 있음에도 불구하고 새로운 Concurrency model이 도입된 이유가 궁금했었는데, 그 이유중 하나로 async/await은 코드 길이가 줄어지고, 단순해지는 등의 장점이 있다는 것을 알게 되었습니다. S..
[Swift 5.5] Structured concurruency in swift | Concurrency 작년에 처음으로 WWDC 라는 것을 알게 됬고 여러 주제 중 modern concurrency(async/await,actor etc..) 소개 영상을 봤습니다. 영상에처 자꾸 Structured concurrency라는 말을 하는데 이 부분만 해석을 못하고 관련 개념이 안떠서 당황했었는데 이제서야 알게 됬습니다. 요기에 자세하게 있는데 이 글을 읽으며 알게 된 내용을 정리하고자 글을 작성하게 되었습니다. Structured Concurrency Concurrency system은 기본적인 툴을 제공합니다. 대부분은 지금 실행중인 threads는 새로 만들어진 thread와 concurrent 실행을 해야 합니다. shared system resource는 한정되어 있기에 Thread explosion을..
[Swift 5.5] actor, actor isolation, cross-actor reference 개념 완벽 뿌수기 | No2. Actor 안녕하세요. 저번 포스트에선 actor의 개념과 thread-safe, actor's serial executor에 대해 공부했던 개념을 정리했습니다. 이번 포스트는 actor와 isolated state, Sendable(관련 개념 정리)을 준수하며 actor를 사용하는 방법, actor isolated state, cross-actor reference, mainActor, nonisolated를 공부했던 내용을 정리하려 합니다. 지난번 actor에 대한 개념만 다시 간략하게 정리하겠습니다. 1. Actor concept Concurrent domain간 shared mutable state를 access할 때 동시성 문제가 발생할 수 있습니다. multi thread에서 mutable 값이 담긴 메..
[Swift 5.5] actor 개념 뿌수기!! +_+ #Concurrency, thread-safe, actor's serial executor | No1. Actor 안녕하세요. 이번 포스트는 Swift 5.5 concurrency api 중 actor에 대해서 공부한 개념을 정리하려고 합니다. Actor를 공부하기 전에 같이 공부하면 좋을 @Sendable, Sendable protocol에 관한 글 또한 정리 했습니다. 참고해주시면 감사합니다. 시작하기에 앞서 thread-safe라는 개념에 대해 알고 가면 좋습니다. 1. What does "thread-safe" mean? Main thread에서 호출하여 수행되나 동시에 background thread에서 호출되어 수행되나 같은 결과를, 예상되는 결과를 갖는 경우를 의미합니다. 여러 thread에서 공유 자원(object, method etc..)을 같은 시간 대에 동시에(concurrently) 수행해야 하..
[Swift 5.5] Sendable. Concurrent problem 해결 + Sendable개념 파해치기 with Actor 요즘 Concurrency를 계속해서 공부하고 있습니다. GCD부터 Swift 5.5 modern concurrency까지. GCD를 알고 있지만 modern concurrency async/await로 인스타그램 앱 클론 개발을 해왔었습니다. 낯선 개념은 아니었으나 WWDC 영상 말고 책으로 다시 공부해보고 싶었고 새롭게 알게 된 개념들을 정리 하려고 합니다. Modern concurrency 개념 중 가장 많이 사용한 개념은 async/await이 메인이였습니다. concurrent problem 관련해서 actor는 정말 중요한 개념인 것 같습니다. actor를 사용하기 위해선, Sendable 프로토콜을 준수하는 이유 또한 알아야 합니다. 1. What is modern concurrency an..
[iOS/Swift5] AVPlayer's movie isn't showing issue. AVPlayer, AVPlayerLayer 간단한 사용법 AVPlayer는 로컬 mp3, mp4, HTTP live streaming, http url의 동영상을 재생하게 해줍니다. 현재 재생중인 동영상을 바꿀 때 replaceCurrentItem(with:) 함수를 사용하면 됩니다. 그러나 재생 시에 한 동영상만 재생이 가능하다는 사실. 여러 동영상을 추가했다면 AVQueuePlayer를 통해 AVPlayerItem들을 관리할 수 있습니다. Queue의 성격을 갖고 있어 AVPlayerItem 동영상에 대해 insert, remove 등의 연산이 가능합니다. AVPlayerViewController로 present. 화면 전환해서 player를 통해 동영상을 실행할 수 있지만, ContainerView ( UIView등의 타입)를 선언하고 그 안에 AVPla..