EventKit달력, 미리알림 어플의 데이터에 접근 하여 이벤트를 생성, 검색, 편집을 할 수 있는 프레임워크.먼저 사용하기 전, info.plist에 권한 체크를 받아야 한다.let status = EKEventStore.authorizationStatus(for: .event)switch status {case .notDetermined: //아직 권한 팝업 뜨기 전 let accessGranted = try await ekStore.requestAccess(to: .event) guard accessGranted else { throw ServiceError.accessDenied }case .restricted: throw ServiceError.accessRes..
저번에 UICollectionView의 Compositional Layout을 공부할 때 만들었던 영화앱의 API 통신 부분을 공부할 겸 변경하게 되었다.영화진흥원 API를 사용해 일간, 주간 박스 오피스 리스트를 가져오고, KMDB API를 사용해 영화 상세정보를 받아와 포스터를 띄웠다.///BoxOffice 일간, 주간 정보 모두 반환func searchBoxOfficeInfo(dateRange: DateRange) async throws -> [MovieInfo] { let url = APIInfo.boxOfficeHost + dateRange.rawValue var dataTask: DataTask switch dateRange { case .daily: let ..
Presenter - 데이터 처리 (API Request,..)Model - 데이터 수정, 추가ViewController - View 설정, 업데이트Apple MVC는 기존 ViewController에 View, Controller 기능이 집중되어 작성을 하며 커지게 되어 테스트를 하기 어려운 환경이다. Controller의 역할을 분리해 구현한것이 MVP다.View를 최대한 멍청하게 UI를 뿌려주고 Action만 주고받고 받은 Action을 Presenter에 넘겨 그려야 하는 값만 넘겨주고 View에서 다시 그려주는 방식이다.MVVM도 비슷해보이지만 다른점, MVP는. 1 : 1연관관계, MVVM은 * : 1 이다. 특징UI를 뿌려주는 View, 비즈니스 로직처리를 하는 Presenter를 따로 작성..
Localization 현지화 - Apple Developer앱, 제품 페이지 및 마케팅 자료를 현지화하여 전 세계의 고객과 더 효과적으로 연결하는 방법에 대해 알아보십시오.developer.apple.com어플을 개발하고 출시했을 때 여러 나라의 언어를 대응해서 다양한 국가에 사용경험을 주기 위해서는 앱 현지화가 필수다.국가마다 사용하는 언어를 대응해 개발하려면 Localizable을 사용하면 된다.SwiftUI도 UIKit과 비슷하게 설정할 수 있다. Localization 설정Project > Info > Localizations 를 보면 언어를 추가할 수 있는 항목이 있다.기본으로 English가 Base로 설정되어 있고 한국어만 추가하고 한국어-영어 대응 해보기.Strings File을 추가 이..
Design Pattern ?개발과정에 공통으로 발생하는 문제를 해결하기 위한게 디자인 패턴이다.대부분의 디자인 패턴은 복잡하고 거대한 서비스를 만들기 위해 만들어졌다.MVC, MVP, MVVMMVVM Pattern ?비즈니스 로직과 프레젠테이션 로직을 UI로 부터 분리시키기 위해 만들어진 패턴View - ViewModel - Model로 구성되어 있다.View -> UI 입력 출력만 담당 ViewModel -> View로 부터 오는 입력을 받아 데이터를 처리하고 다시 보내준다.Model -> 데이터 처리에 필요한 모델 MVVM 에서 ViewModel에 모든 비지니스 로직이 있어야 하는 것이 아니다. ViewModel에는 화면용 데이터를 갖고 있는것,Model 은 View용 Model 로 변경하는 정도의..