DiffableDataSource, MVVM, RxSwift 를 사용하는 간단한 프로젝트를 구현해보는 과정에서 데이터 모델링을 구현하고 있었는데 Hashable 프로토콜을 선언해 모델을 구현하는 점이 확인되어 이 개념을 알고 넘어가려고 한다.struct Section: Hashable { let id: String}enum Item: Hashable { case banner(HomeItem) case normalCarousel(HomeItem) case listCarousel(HomeItem)}struct HomeItem: Hashable { let title: String let subTitle: String? let imageUrl: String}이렇게 데이터 모..
SwiftUI를 접하면서 이 Wrapper를 활용해서 데이터 변동을 관리하는 내용이 나에겐 아주아주 흥미로운 것 같다 프로젝트를 진행하며 역할을 줄때마다 재밌다..오늘은 이전에 살짝 어떤 차이가 있나 알아봤지만 오늘은 자세하게 한번 파보려고 한다. 간단한 iOS 기기 목록을 나타내는 방식으로 해당 내용을 정리해 보도록 하자! @StateObject먼저 이 StateObject는 SwiftUI에서 뷰의 수명동안 객체의 상태를 소유하고 관리하는 역할을 담당한다. 그렇기 때문에 StateObject는 부모뷰에서 View가 처음 생성되어 초기화 할때 주로 사용된다는 특징을 가지고 있다! 먼저 더미 데이터 모델을 만들어보자import Foundationstruct iOSdeviceModel: Identifiabl..
오늘은 .There이라는 공유 앨범을 만들어주는 새로운 프로젝트가 시작되어 기록으로 남겨두려고 한다. 이 프로젝트는 처음으로 SwiftUI로만 구현할 예정이며, 나아가 반응형 프로그래밍인 Combine도 활용해 보려고 한다. 먼저 SwiftUI로 UI를 구성하기 시작했는데 UIKit으로 그리는 것보다 훨씬 더 내 스타일이고 오랜만에 정말 재밌게 코드를 작성한 것 같다! 내가 맡은 부분은 메인페이지인 .there 페이지와 .List 페이지의 UI 구성을 맡아 진행하였다.일단 아직 저장되는 데이터는 없기 때문에 더미 데이터를 사용해 채워갈 예정이다. View 분리하며 UI 구성하기SwiftUI를 하면서 가장 좋은 점은 재사용성과 생산성인 것 같다. 이 점을 극대화 할 수 있도록 하나의 뷰 안에서도 세분화해 ..
오늘은 SwiftUI 중에서 propertyWrapper 로 사용되는 것들 중 가장 기초가 되는 State, Binding에 대해서 다시 한번 정리할 겸 글을 작성해보려고 한다. State먼저 SwiftUI에서 State는 뷰의 상태를 관리하는데 사용된다. 뷰 내부에서만 사용되는 상태이며, 상태가 변경되면 해당 상태를 사용하는 뷰가 다시 렌더링 된다. 보통 뷰의 로컬 상태를 관리하는데 사용되며 private를 사용하고 뷰의 최상단에서 관리되어야 한다.이로 인해서 상태 관리가 뷰 내부에 캡슐화 되어 더욱 안전하게 관리 될 수 있게 된다. 예제코드로 살펴보자struct StateBasic: View { @State var backgroundColor: Color = Color.green @Stat..
SwiftUI를 공부하면서 ZStack , overlay , background가 비슷한 기능을 가지고 있지만 명확한 차이가 있다는 점을 알게 되었다.이 점은 추후 내가 선택을 해야할 때 인지를 하고 있어야 하기 때문에 어떤 차이가 있는지 자세하게 한번 알아보는 시간을 가져보려고 한다. ZStack먼저 ZStack에 대해서 알아보면 ZStack은 간단하게 말하면 포함 되어있는 뷰를 위로 겹겹이 쌓아주는 것이라고 보면 된다. 자기 자신 안에 있는 View들을 독립적으로 취급한다는 것이 차이점이다. 각각 독립적으로 취급하기 떄문에 그 안에 가장 큰 width, height에 따라 size가 결정된다. 예제 코드를 살펴보면ZStack (alignment: .topLeading) { Rectangle() ..
오늘은 새로운 인프런 강의를 뚫었다.. 배우는데 돈 아까워 하지말자 ㅎㅎ SwiftUI를 배우고 있는데 이전과는 달리 중요한 요소 하나하나 조금 자세하게 파고들어 공부하고 싶어서 요즘 다시 기본기를 채우기 위해 자세하게 알아보고 있다. 먼저 SwiftUI에서 Grid는 UIKit에서 많이 사용했던 CollectionView와 거의 흡사하다고 보면 된다. SwiftUI의 CollectionView인 느낌이랄까! Grid라는 의미 자체는 2차원의 행과 열을 구성하는 레이아웃이라는 뜻을 가지고 있다.https://developer.apple.com/documentation/swiftui/grid/ Grid는 두 가지로 나눠져 있다 바로 VGrid , HGrid이다. LazyVGridV라는게 붙은 다른 것과 마..