To Do List (1)
이전에 사용하던 UIKit이 아닌 SwiftUI를 사용하여 ToDoList를 만들어 본다. 이전에 내배캠에서 하던 양식을 그대로 해서 만들어보려고 한다. LV 1. ToDoList 화면 만들기 1. 디자인 NavigationBar 추가 우선 추가하기 버튼이 있는곳은 NavigationBar를 사용하여 만들 예정이다. 우선 Navigati...
이전에 사용하던 UIKit이 아닌 SwiftUI를 사용하여 ToDoList를 만들어 본다. 이전에 내배캠에서 하던 양식을 그대로 해서 만들어보려고 한다. LV 1. ToDoList 화면 만들기 1. 디자인 NavigationBar 추가 우선 추가하기 버튼이 있는곳은 NavigationBar를 사용하여 만들 예정이다. 우선 Navigati...
APIResponse를 UIModel에 파싱하기 이전에는 Json으로 데이터를 가져오지 않았기에 let uiModel = HomeUIModel(sectionModels: [ .init(section:.mainBanner(id: "123"), body: [ 이렇게 ViewDidLoad에 값을 넣어 주었는데, 이젠 JSON에 ...
FileManager Extension 구성하기 extension FileManager { static func modelFromJSON<T: Decodable>(fileName: String) -> T? { guard let path = Bundle.main.path(forResource: fi...
Tap 이벤트를 VC로 전달하기 Combine의 EventPublisher를 사용하여 할것이다. HomeCollectionView에서 진행한다. enum Event { case itemTapped(HomeUIModel.Item) } private let eventSubject = PassthroughSubject<Ev...
다른 Course Swimlane을 추가 코드는 생략 이미지로 대체한다. HomeVC에서 내용을 추가, 수정했다. FeaturedCourseView 추가 CourseView의 내용을 가져오되, tag만 지워준다. 그리고 높이만 바꿔주었다. struct FeaturedCourseView: View { let imageLink: S...
CategoryTextHeader 추가 .init(section: .textheader(id: "1233332"), body: [ .textHeader(id: "1234fds", text: "Categories", highlightedText: nil) 이렇게 적어주면 Categories가 생긴다. CategoryV...
지금까지 빨간색 테두리로 된 부분을 만들었다. 주황색 테두리가 이제 만들 CourseView이다. 그전에 조금 수정을 한다. Textheader 간격주기 private func makeMainBannerSection() -> NSCollectionLayoutSection { let itemSize = NS...
이전에 Background Color를 Green으로 했던걸 지워준다. private func setup() { register(MainBannerCollectionViewCell.self, forCellWithReuseIdentifier: MainBannerCollectionViewCell.namedIdentifier) } ...
MainBannerCollectionViewCell 추가하기 이 파일은 View에 있지만, SwiftUI를 import 해주었다. import SwiftUI를 하게되면 UIkit 을 별도로 import를 해야하나? 이렇게 Definition을 보게되면 SwiftUI안에 UIKit을 이미 import한게 내장이...
시작전 기본 세팅 우선 스냅킷을 설치. Snapkit Dynamic은 여전히 에러가 발생하는듯하니 설치하지 말자. Xcode Project 생성시 생기는 파일에서 Info.plist, VC 빼고 나머지 파일들을 모두 Supporting Files에 넣어주었다. 그리고 이번엔 JSON을 사용하여 구성을하기에 JSON 파일을 하나 만들어 준다....