iOS 14에서 새롭게 추가된 기능 Widget이 궁금해서 공부한 개인적인 내용을 공유해보겠습니다. 위젯이 나온 이유를 찾아보기위해 WWDC20 키노트도 봤지만 반복되는 앱 아이콘, 그룹화된 폴더 형식으로 이루어진 홈화면에 변화를 가져오기 위해 선택한것 같습니다. 위젯은 단일 위젯과 스마트 스택안에 여러개의 위젯으로 이루어진 위젯이 있습니다. 위젯의 종류는 iOS 14 기준 4가지, iOS 16 잠금화면에 추가된 style 3가지 해서 총 7가지이다. (+ 다이나믹 아일랜드 화면도 위젯에서 작성) 이번에는 ios 14 에 나온 위젯 3가지 (extraLage는 iPad전용이라 제외)와 16에 추가된 3가지에 대해서만 설명하겠습니다. Widget 종류 systemSmall (iOS 14.0 이상) syst..
앱을 만들 때 userDefaults에 중요한 값을 저장하게 되는데 UserDefaults.standard.set(true, forKey: "isPopup") 이러한 방식으로 set을 하고 let isPopup: Bool = UserDefaults.standard.bool(forKey: "isPopup") // true 이런 식으로 불러서 값을 사용하게 됩니다. 이런식으로 사용하다보면 UserDefaults를 각각 파일에서 선언해서 사용하게 되면 분산되어 버리기때문에 관리가 힘들게되고 추적이 어려운 이슈가 생기게 됩니다. 위 이슈를 해결하기 위해 모을 수 있는 공간을 만들고 그 장소에 enum 을 선언하고 저장 프로퍼티를 이용해서 관리를 했었습니다. // 예시 입니다. enum Key: String { ..
앱에서 Widget이나 NotificationCenter 등 앱 외에 번들을 추가하게 되면 메인 앱에 있는 데이터를 필요로 할때가 있습니다. App 과 extension으로 추가한 번들간에 데이터 공유 방법을 설명하겠습니다. 앱 프로세스와 extension process는 별도의 프로세스로 동작하기 때문에 두 프로세스가 공유하는 컨테이너가 있어야만 데이터를 공유할수 있습니다. 공유하는 방법(UserDefaluts, CoreData, KeyChain, realm etc)은 여러가지 있지만 UserDefaluts를 이용해 공유하는 방법을 설명해보겠습니다. App > 우측 상단 + > App Groups 추가 * 등록 안되고 프로비저닝 오류 뜰 시 UserDefaults.standard.set("value",..