본문 바로가기

전체 글

[iOS] App Groups 설정 및 컨테이너 경로 설정 (Feat. Widget) App Groups ▽ Configuring App Groups | Apple Developer DocumentationEnable communication and data sharing between multiple installed apps created by the same developer.developer.apple.com [iOS] Widget - IntentConfiguration (1)  첫 부분에도 컨테이너와 관련하여 간단히 설명했듯앱과 위젯은 서로 격리되어 있어 직접적인 데이터 공유가 불가능하기에 앱 그룹을 통해 이런 제한을 극복하고,앱과 위젯이 서로 데이터를 공유할 수 있도록 해야한다. 오늘은 위젯이 앱 그룹을 통해 메인 앱과 데이터를 공유하는 방식과 그 방법(설정)에 대해 챌린더 프.. 더보기
[iOS] Widget - IntentConfiguration (4) 정적/동적 선택 목록을 만들기 위해서 Custom Intent Definition 을 생성  ← 완료동적 선택 목록을 설정하고, 기본값을 설정하기 위해서 Intents Extension 추가  ← 여기서 진행 예정 Intents Extension 활용한 Intent  핸들링  ← 여기서 진행 예정configurable properties 를 지원하기 위해 IntentTimelineProvider 사용  ← 진행 예정 동적 데이터 로드는 사용자 경험을 향상시키기 위해 사용자의 의도에 따라 필요한 데이터를 실시간으로 로드하고 표시하는 것을 뜻하며, 이를 통해 사용자는 필요한 정보를 즉시 확인할 수 있고, 보다 인터랙티브하고 반응성이 좋은 애플리케이션을 사용할 수 있다.  현재 위젯 코드 현황 앞서 진행한 .. 더보기
[iOS] Widget - IntentConfiguration (3) 앞의 위젯 (1), (2)의 내용에서는 Widget Extension의 Configuration을 이해하기 위해화면 노출과 관련한 Provider와 View 파트를 중심으로 살펴보았다. 오늘은 intent definision에서 우리가 category와 parameter를 설정했을 때,xCode가 자동으로 완성하는 custom class에 대해 알아보자.    아래와 같이 이름을 정하고 옵션을 설정한 후 빌드하면 TodoList가 만들어진다.     다음은 여기까지의 과정을 통해 Xcode는 Custom Intent에 대한 Custom Class를 자동으로 생성해준다. 이 Class 코드는 큰 틀에서 보면, 아래와 같이 양분화 할 수 있고, 1) TodoListIntent의 사용자 정의 Intent와2).. 더보기
[iOS] Widget - IntentConfiguration (2) Widgets are rendered in a separated process.Changes are driven by timeline entries.Reloads from interactions are guaranteed.  위젯은 [iOS] Widget - IntentConfiguration (1)에서 말한대로,TimelineProvider를 정의하는데 이 녀석이 Entries를 return하고, 각각의 Entry가 위젯의 모델이 된다.위젯이 보여질 때 시스템이 Widget Extension Process를 실행(launch) 시킨 후위젯의 TimelineProvider에게 Entries를 요청한다.  Provider 부분의 코드를 먼저 살펴보면,Provider는 IntentTimelineProvide.. 더보기
[iOS] Widget - IntentConfiguration (1) 어제 (6월 17일) 우리 프로젝트의 1차 mvp가 출시되었습니다.속으론 엄청나게 기쁘지만 기쁨도 잠시-남은 기간 추가적으로 해야할 것들에 집중합니다. 아래의 WWDC23을 참고하면 위젯에서 할 수 있는 많은 것들을 참고할 수 있습니다.  Bring widgets to life - WWDC23 - Videos - Apple DeveloperLearn how to make animated and interactive widgets for your apps and games. We'll show you how to tweak animations for entry transitions...developer.apple.com  구현하고자 하는 위젯은 iOS 16 이상에서만 사용 가능하다. 하지만,iOS 14에서.. 더보기
[iOS] header에 deleteButton 추가하기 (+ custom header) TodoSectionHeader에서 second 헤더 우측 끝에 deleteButton을 추가합니다. 1. deleteButton 추가deleteButton이라는 UIButton을 생성하고, 텍스트, 폰트, 텍스트 색상, 배경색 등을 설정버튼은 기본적으로 숨김 상태로 설정(button.isHidden = true)let deleteButton: UIButton = { let button = UIButton() button.setTitle("지우기", for: .normal) // 버튼 텍스트 설정 button.setTitleColor(.challendarBlack60, for: .normal) // 텍스트 색상을 .challendarBlack60으로 설정 button.titleLab.. 더보기
[iOS] collectionView의 custom header 설정하기 헤더뷰의 위치,헤더뷰와 셀 사이의 간격,셀의 bottom과 두번째 헤더뷰의 top과의 간격 등디테일하게 수정할 부분들이 꽤 있습니다.오늘은 하나씩 하나씩 UI 디테일을 수정했습니다. 1. 헤더뷰 위치를 왼쪽 이미지처럼 부모뷰 리딩 좌 상단에 딱 맞추기 수정 전 (오른쪽 이미지)header.headerLabel.snp.remakeConstraints { make in make.top.equalToSuperview().offset(-2) make.leading.equalToSuperview().offset(16) // leading을 16으로 설정}  수정 후 코드 (leading을 superview에 맞춰 설정)header.headerLabel.snp.remakeConstraints { make.. 더보기
[Carolyn Elliott] Existential KINK 의식화되지 않은 무의식은 당신의 삶을 지배할 것이고 당신은 그것을 '운명'이라 부를 것이다. (p.61)   일과 사람들 사이에서 마모되던 4월의 오후,수화기 넘어로 이야기를 주고 받던 친구가 이 책에 대한 이야기를 꺼냈고,내 삶의 현재가 과거의 무의식에서 발현했다는 가설에 호기심이 생겼다. 내가 의식하지 못한 나의 무의식이 내 삶을 나 몰래 이끌고 있다고? 이 가설이 참이라면, 무의식을 의식하고 컨트롤 할 수 있다면 삶의 많은 선택을 바꿀 수 있다?근데 무의식을 의식한다는 것이 가능한 일?내 무의식은 어떤데? 이래저래 돌연 궁금해졌는데 책 제목도 세상 변태같은 kink.. 새 책같은 중고를 주문하여 5월동안 조금씩 읽어보았다.  먼저, 이 책의 제목 kink는 성적으로 비정상적인 사람, 성적 일탈, 페.. 더보기