본문 바로가기

iOS/Deep dive!!!

(35)
[iOS/Swift] NSCache와 FileManager 등 iOS에서 왜 caching을 할까? 캐싱 개념 탐구하기 안녕하세요. iOS 앱 개발을 할 때 SDWebIamge 라이브러리를 사용해서 url 에서 이미지를 다운받지 않을 때 어떤 일이 발생할 지 앞의 라이브러리나 킹피셔를 사용하지 않고 인스타그램 앱 개발 하고 있는데요. "같은 화면 들어갈 때마다 왜 이미 로드 된 내 이미지를 서버에서 다시 다운 받지?.." 그렇게 알게 된 개념이 caching 입니다. 1. Cache concept in computer structure 컴퓨터 구조를 예로,, 캐시가 없다면 데이터를 가져와 작업을 하기 위해 cpu는 메인 메모리에 있는, 만약 메인 메모리에 원하는 데이터가 없다면 아니면 메모리보다 더 느린 저장 장치에서 메모리를 통해 데이터를 가져와야 합니다. 캐시는 메인 메모리보다 용량이 작은데 그 대신 속도가 엄청 빠릅..
[iOS/UIKit] Cell에 포커싱 맞춰주는 Carousel effect with UICollectionViewController | NO3. 컬랙션 뷰 탐구 안녕하세요. 인스타그램 앱을 유심히 보는데 조금만 스크롤 해도 다음 포스트가 자동으로 보여지는 기능이 신기해서 Carousel effect에 대해서 공부를 해봤습니다. 이번에는 Carousel effect를 제 인스타그램 피드에 적용하며 배운 개념, 느낀점을 정리하려고 합니다. 1. Carousel effect's concept 인스타그램의 포스트 내려갈 때 인데요. 짧은 스크롤을 하면, 다음 포스트를 보여주는데 그냥보여주는게 아니라 상대방의 프로필 부터 포스트 전체를 보여줍니다. Carousel은 컨텐츠를 순환시키는데 user가 많은 드래그 필요없이 더 많은 양의 정보를 보여주는 그런 디자인입니다. Paging도 비슷한 개념입니다. 스크롤 방향에 맞게 위 동영상처럼 horizontal로 포커싱을 맞출 ..
[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이 배치될 수 있고, 한 개의 행만 배치될 수 있습니다. 대표적..
[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..
[IOS/UIKit] NSAttributedString vs NSMutableAttributedString String이 있는데 왜 AttributedString을 사용하는 걸까? Swift에는 String이 있는데 왜 attributedString을 사용할까요?(attributedString이란 NSAttributedString, NSMUtableAttributedString으로부터 init된 string을 의미) AttributedString은 attributes 추가를 통해 format이 가능하기 때문입니다. attributes는 text의 font, kerning, backgroundColor, foregroundColor, shadow 등 NSAttributedString.Key를 통해 설정할 수 있는 것들을 의미합니다. UILabel을 예로 들자면, 그림1과 같이 text, attributedTex..
[IOS/UIKit] UITextField left, right, top, bottom 패딩 넣는 방법!! 원래 뷰에 마진을 넣을 때 view.layoutMargins 속성에 UIEdgeInsets를 넣어서 padding을 설정했었다. 근데 UITextField는 placeholder모드랑 editing모드가 있어서 layoutMargins적용이 안되는 것 같았다(제 피셜입니다 정확x). 그래서 공식문서를 좀 읽어봤는데 TextField는 뷰의 text editable 영역의 양쪽 좌, 우에 위치한다. 이는 oveerlay left, right view로 불리는데 text 입력 공간 양 옆에 작은 공간이 있기에 이곳을 조정하면 된다. 이미지 또한 넣을 수 있다. 현재 textfield 상태이다. 앵커를 이용해 좌 우 offset을 20으로, topAnchor의 offset는 30으로 설정했다. 입력하는 순간 ..
[iOS] NavigationBar backgorund color 설정하기 | 내비게이션 바 백그라운드 색 안바뀌는 이유 네비게이션 바의 백그라운드( 노치있는부분까지) 전부 컬러를 변경하고 싶었다. 기본적으로 navigationItem 을 통해 titleView를 바꿀 경우 GoodNews 영역의 UIView를 바꿀수 있습니다. 또한 prompt를 바꿀 경우 topItem Title위에 추가적인 글을 작성할 수 있습니다. 네비게이션바를 자세하 보면 기본적으로 UIKit에서 제공하는 설정을 사용하려면 barStyle을 설정해주면? self.navigationController?.navigationBar.barStyle = .black 이렇게 스크롤했을 때만 잠깐 보이고 평상시에는 보이지 않습니다. .isTransluecnt까지 변경해주어야 보입니다. 위 계층구조의 UIBarBackground가 힘이 없어진 모양인데,, Goo..