본문 바로가기

iOS

(63)
[Swift] MVVM에서 Combine을 활용한 ViewModel Input/Output binding 개념 완벽 부수기 +_+ | MVC와 MVVM 차이 진짜 뿌수기!!!! 안녕하세요! 이번 포스트는 MVVM 패턴을 사용할 때 Conbine framework로 ViewModel과 View를 Input/Output binding하는 방법에 대해 소개하려고 합니다. 뷰에서 발생 가능한 Input!, 그리고 View가 화면을 그려야 할 State!를 ViewModel은 Output!함으로 뷰의 render가 진행됩니다. 소프티어 부트캠프 활동을 하며 새로 배운 개념이 많아 기존의 글을 리빌딩 했습니다. 그 전에! MVVM과 MVC 아키텍처 패턴의 차이가 무엇인지 명확하게 알아야합니다. 둘의 차이가 무엇인지 아시는 분들만이 MVVM을 잘 활용한다고 할 수 있습니다. 저는 제 나름대로 MVVM과 MVC 아키텍처의 차이점을 정리해봤습니다(관련 포스트 링크). MVC, MVVM 차이를 ..
[swift] UIImageView shadow 적용 안되는 이유.. | clipsTobounds 오늘은 udp socket 통신을 관련 공부를 c언어로 학습하고 swift로 적용하려던 중에 새롭게 알게된 내용이 있습니다. UIImageView에 쉐도우를 적용하려고 했었는데 적용이 안됬습니다.. 이때 제 이미지 뷰의 선언은 아래와 같습니다. let photoView: UIImageView = { let iv = UIImageView() iv.image = UIImage(named: "flower") iv.clipsToBounds = true iv.translatesAutoresizingMaskIntoConstraints = false iv.layer.cornerRadius = 7 iv.layer.shadowColor = UIColor.gray.cgColor iv.layer.shadowOpacity =..
[UIKit] Horizontal collectionView에서 커스텀 scroll indicator로 스크롤 위치 표시 탐구하기 안녕하세요. 오늘은 스크롤 바에 관련된 실험을 하다가 커스텀으로 스크롤 indicator를 구현하게 되었습니다. 스크롤 indicator는 사용자의 드래그 이후 숨길 수도 있습니다. 또한 크기도 지정할 수 있고 크기도 키우거나 줄일 수 있습니다. 1. Setup UICollectionVIew's scroll direction + layout layout을 통해 스크롤 방향과, cell의 설정을 해야 하는데 이전 블로그 위 제목 1. Setup UICollectionView's ... 파트와 동일한데 cell의 크기만 다릅니다. 2. Setup FruitsScrollView final class FruitsScrollView: UIView { // MARK: - Constraints private type..
[iOS/UIKit] UICollectionView horizontal scrollable + custom carousel effect + animations | No4. 컬랙션 뷰 탐구 안녕하세요. 컬랙션 뷰 horizontal 기본 연습을 하다 그냥하면 심심해서 커스텀 카로셀 효과 + 애니메이션까지 적용해봤는데 공부하면서 배운 개념을 정리하려고 합니다. 이렇게 안 하려고 했는데 하다보니,, 최종적으로 완성한 결과물입니다. 구현하면서 스크롤 방향 시점을 체크하는데 애를 좀 먹었지만 에러 없이 잘 됩니다:) 1. Setup UICollectionVIew's scroll direction + layout 이전 포스트에서 컬랙션 뷰의 개념을 간단하게 정리했지만 간단 요약하자면 컬랙션 뷰는 크게 3개의 object가 있습니다. Data source, delegate, layout입니다. 이 중 layout은 collectionView에 보여지는 모든 객체들의 화면의 위치를 담당합니다. cell..
[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이 배치될 수 있고, 한 개의 행만 배치될 수 있습니다. 대표적..