Home

JPApexPredators (3)

filter 부분 수정 및 sort 추가 이전글에서 searchText에 관해 computed property로 하던 것을 Predator Class 내에서 함수로 처리하도록 해본다. class Predators { // 생략 func search(for searchTerm: String) -> [ApexPredator] { if searchTerm.isEmpty { return apexPredators } else { return apexPredators.filter { predator in ...

Read more

JPApexPredators (2)

Navigation Stack 사용 이제는 Navigation Stack을 사용하여 각 공룡에 대한 cell을 탭했을때 다음 화면으로 넘어가게 해보자 이미 많이 사용해봤지만 간단하다. 현재는 List가 ContentView안에서 제일 상위 View인데 이 List를 NavigationStack이 감싸주면 된다. struct ContentView: View { let predators = Predators() var body: some View { NavigationStack { // here List(predators.apexPredators) { p...

Read more

JPApexPredators (1)

새로운 프로젝트를 시작해본다. 기본적인 부분과 이미 알고있던 부분은 패스하거나 간략하게 서술할 예정 Json파일과 동일하게 구조체 만들기 이건 워낙 api나 json 파일을 사용하면서 많이 해보았기에 내용은 패스 struct ApexPredator: Decodable { let id: Int let name: String let type: String let latitude: Double let longitude: Double let movies: [String] let movieScenes: [MovieScene] let link: String ...

Read more

LOTR Converter (fin)

modifier 정리 및 추가 문제 수정 를 보면 알겠지만 값이 입력된 상태에서 Currency를 바꾸면 값이 변경되지 않는다. 이제 이부분을 보완해본다. 우선 sheet가 있는 부분에 text field의 onchange modifier를 옮겨주고 .onChange(of: leftAmount) { if leftTyping { // 생략 } } .onChange(of: rightAmount) { if rightTyping { // 생략 } } .onChange(of: leftCurrency) { // new leftAmount = rightC...

Read more

LOTR Converter (6)

Grid 부분 별도로 추출 이전글에서 최종 코드로 적었던 부분을 IconGrid로 별도의 View로 만들어 준다. 코드의 간소화를 위함이다. struct SelectCurrency: View { // 생략 var body: some View { ZStack { // 생략 VStack { // 생략 // Currency icons IconGrid(currency: currency) // 생략 } // 생략 ...

Read more

LOTR Converter (5)

해당 강의를 잊고 있다가 마무리를 짓기 위해 작성한다. 지난글에 이어 몇달만에 다시하는 건지는 몰라도 내용자체는 어렵지 않기에 마무리를 짓는다. SelectCurrency View 만들기 위와 같은 View를 만들기위해 구상은 다음과 같이 한다. struct SelectCurrency: View { var body: some View { ZStack { // Parchment background image VStack { // Text ...

Read more

MapKit (10)

오래간만에 업로드 이번엔 LocationDetailView를 조금 더 보완한다. Update Check-In Status 우선 열거형인 enum을 통해 checkin/out에 관한걸 만들어준다. // LocationDetailViewModel enum CheckInStatus { case checkedIn, checkedOut } 이제 ViewModel에 Status를 업데이트하는 함수를 만들어준다. func updateCheckInStatus(to checkinStatus: CheckInStatus) { // 1. Retrieve the DDGProfile // 2. Create...

Read more

MapKit (9)

LocationDetailView 기능 추가하기 ViewModel을 하나 더 만들어 준다. 그리고 LocationDetailView에 있던 변수들을 ViewModel에 옮겨준다. let columns = [GridItem(.flexible()), GridItem(.flexible()), GridItem(.flexible())] var location: DDGLocation init(location: DDGLocation) { self.location = location } 이때 location은 Initializing을 해줘야한다....

Read more