TIL 43

SwiftUI _ ViewModel (@Published, @ObservedObject, @StateObject)

ViewModel을 사용하는 이유 : 간단한 앱은 몰라도 복잡한 앱에서 데이터베이스와 관련해서 무언가를 변경하고 싶을 때   데이터의 어떤 부분이 뷰의 어떤 부분인지 파악하고, 뷰를 살피는 시간을 절약할 수 있음   -> 바로 ViewModel에서 데이터와 관련된 비즈니스 로직을 확인 및 변경 가능 @Published: 클래스 내에 있다는 점을 제외하면 @State와 동일 (클래스 자체에 ViewModel을 알림) @ObservedObject: ViewModel에 @Published로 클래스에 변화를 알리는 것처럼 뷰에도 뷰모델로 인한 변화를 알려야 하는 데 그때 사용* @ObservedObject를 사용하기 위해서는 ViewModel에 ObservableObject로  관찰 가능한 클래스라는 것을 표시..

TIL 2024.07.22

64일차 TIL _ LargeTitle / 페이지 뷰 컨트롤러로 화면 구성

네비게이션 바 Large Title & UIPageViewController   정리가 안된 상태에서 이것저것 해보다보니까 엄청 엉켜서 헤맸다.. 정리하고, 차근차근해보니까 성공 :) 일단 UIPageViewController UIPageViewController : 하위 뷰 컨트롤러가 각 페이지를 관리하는 콘텐츠 페이지 간의 탐색을 관리하는 컨테이너 뷰 컨트롤러https://developer.apple.com/documentation/uikit/uipageviewcontroller UIPageViewController | Apple Developer DocumentationA container view controller that manages navigation between pages of cont..

TIL 2024.05.29

61일차 TIL _ 팀프로젝트 회고

거북이의 단어장 TURTLE VOCA  프로젝트를 하면서 어려웠던 점팀원분의 추천으로 View를 top, body, bottom으로 나눠서 진행했는데, ViewController에서만 할 수 있는 기능들을 추가하기 위해 연결하는 부분에서 어려움을 겪었다. (처음엔 저번 개인과제 때 사용해 봐서 익숙한 delegate 방식을 많이 사용했다. 그러나 여러 파일에 데이터를 전달해야 할 때 너무 헷갈리고, 복잡하다는 생각이 들었다. 그리고 이 방식 외에도 다른 간편한 방식이 있다는 것을 알게 되었음)    1-1. Delegate 방식//AddBookCaseBodyView.swiftprotocol AddBookCaseBodyViewDelegate: AnyObject { func didSelectImage(..

TIL 2024.05.25

59일차 TIL

모의면접 시뮬레이션 Q&A Q6. 두 검색 결과를 datetime 필드를 이용해 정렬하여 출력하는 방법을 설명해 주세요.A: 먼저, 두 검색 결과 리스트를 하나의 리스트로 병합합니다. 그다음, datetime 문자열을 Date 객체로 변환하기 위해 DateFormatter를 생성합니다. 병합된 리스트에서 각 항목의 datetime 문자열을 Date 객체로 변환한 후, 이를 기준으로 리스트를 정렬합니다. 정렬된 리스트를 원하는 형식으로 출력하면 두 검색 결과 리스트를 datetime 필드를 기준으로 합치고 정렬할 수 있습니다.  git add .잘못했을 때!git reset .을 해주면 add 한 거 없어짐 ㅎㅎ 단어장에서 단어장 삭제 시 단어가 남아있는 오류가 있다. ㄴ NSManagedObjcet를 사..

TIL 2024.05.22

58일차 TIL

모의면접 시뮬레이션 Q&A Q5. 동영상 재생 화면 구현 시, 불러온 이미지 리스트는 어떻게 보이는지 설명해 주세요.A: 동영상 플레이어의 썸네일, 장면 미리 보기 또는 챕터 표시 등 다양한 방식으로 사용될 수 있습니다. 불러온 이미지를 보여주기 위해 일반적으로 UICollectionView를 사용합니다.먼저 URL에서 이미지를 배열에 저장하여 이미지 리스트 불러옵니다.UICollectionView를 사용하여 그리드 형태로 이미지 리스트를 보여줍니다.동영상 재생과 통합하여 이미지 선택 시 동영상 재생 시점을 이동시키는 기능을 구현할 수도 있습니다.  아이콘 설정The stickers icon set or app icon set named "AppIcon" did not have any applicable..

TIL 2024.05.21

57일차 TIL

모의면접 시뮬레이션 Q&A Q4. present를 사용해 화면 전환을 구현하는 방법을 설명해 주세요.A : 화면전환을 구현하는 방법은  present, Navigation 방식 등등,, 여러 가지가 있습니다.  그중에서 present방식에 대해서 이야기해 보자면 present와 dismiss 메서드로 화면을 띄우고, 내릴 수 있습니다. present 메서드는 현재 뷰 컨트롤러에서 새로운 뷰 컨트롤러를 모달 형태로 표시합니다. 이 방식은 새로운 화면이 기존 화면 위에 덮어쓰는 형태로 표시되며, 새로 띄운 화면은 뒤로 가기 버튼이 따로 표시되지 않습니다. 따라서, 화면을 내릴 때는 dismiss 메서드를 사용해야 합니다. //presentlet newVC = UIViewController() // 이동할 ..

TIL 2024.05.20

55, 56일차 TIL

모의면접 시뮬레이션 Q&A Q2. UserDefaults로 저장해 놓은 데이터를 UICollectionView에 보여주는 방법을 설명해 주세요.A : UserDefaults 다른 팀원이 사용하셨던 거 쓱 보고 지나갔어서 ㅜ 막상 이렇게 질문이 들어오니.. 정확하게 잘 모르고 있는 것 같았다.. 강의도 들었었는데..🥹 그냥 간단한 데이터 저장하고, 불러오는 데 사용하는 그런 거.. 대충 이렇게 알고 있어서.. 역시 복습이 중요하다 느꼈다.. 그런 의미에서 한 번 더 공부하고 답변 적어야겠다고 생각했다! UserDefaults: 앱 실행 시 지속적으로 키-값 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스1. UserDefaults를 통해서 plist에 데이터 저장2. UserDefaults는 ..

TIL 2024.05.17

54일차 TIL

모의면접 시뮬레이션 Q&A Q1. Storyboard를 이용해 UI를 구현하는 방법을 설명해 주세요.A : UIViewController를 생성해서 UI 요소들을 드래그, 드롭 방식으로 ViewController의 View에 배치하여 구현합니다.스토리보드에서나 코드에서나 UI를 구현할 때는 오토레이아웃 Constraints를 잘 잡아주는 것이 중요하며,스토리보드에서 요소들은 IBOulet, IBAction을 통해 코드와 연결하여 여러 가지 작업을 수행할 수 있습니다. 이건 ChatGPT 답변Storyboard를 사용하여 UI를 구현하는 방법은 다음과 같습니다.Xcode에서 새로운 Storyboard 생성: Xcode를 열고, 프로젝트 내에서 Storyboard 파일을 생성합니다.UIViewControll..

TIL 2024.05.14

53일차 TIL

팀프로젝트 시작!  git clone 해서 받아오고 브런치 생성 후에 이동해서 시작해보려고 하니까..Missing package product 'SnapKit'이런 에러가 났다.. 분명 SnapKit이 있는데 왜 이러지 하고 챗지피티에 물어보니까SnapKit 버전 충돌: SnapKit의 버전과 다른 종속성 패키지의 버전이 충돌하는 경우가 있을 수 있습니다. 이 경우 SnapKit과 다른 패키지의 버전을 호환되는 것으로 업데이트해야 할 수도 있습니다.그래서 버전 문제인가하고.. 삭제했다가 다시 설치했는데,, Package.resolved file is corrupted or malformed 이런 에러가 또 생김 ^^!ㅠ 다시 chatGPT에 물어보니까.. ' 이 에러는 프로젝트의 Swift Package..

TIL 2024.05.13

52일차 TIL

개인과제 UITabBarController: 선택에 따라 표시할 하위 뷰 컨트롤러가 결정되는 다중 선택 인터페이스를 관리하는 컨테이너 뷰 컨트롤러https://developer.apple.com/documentation/uikit/uitabbarcontroller UITabBarController | Apple Developer DocumentationA container view controller that manages a multiselection interface, where the selection determines which child view controller to display.developer.apple.com1) TabBar 생성    : UITabBarController를 사용하여..

TIL 2024.05.10