
이번 WWDC 2023 영상 중 위젯 구조에 대해 짧지만 상세히 다룬 세션(Bring widgets to life, 8분 ~ 10분)이 있었습니다. 평소 샘플 코드 구조를 흉내내며 위젯을 구현했었던 과거가 부끄러울 정도로... 제가 이해했던 것과 달라서 공유차 영상 내용을 정리합니다. 위젯을 구현하기 위해선, 먼저 Xcode에서 Widget Extension을 정의해야 합니다. 이 Widget Extention은 시스템이 확인하여 독립적인 프로세스로 동작(run)시킵니다. 위젯은 TimelineProvider를 정의합니다. 이 TimelineProvider는 일련의 Entries를 리턴하고, 각각의 Entry는 실제 위젯의 모델이 됩니다. 위젯이 Visible해지면, 시스템이 Widget Extensio..

글의 내용을 보충하는 의견, 잘못된 내용을 수정하는 의견 모두 다 환영합니다. NSFetchedResultsControllerDelegate 프로토콜에 iOS 13부터 DiffableDatasource를 지원하기 위해 등장한 controller(_:didChangeContentWith:) 메소드가 있는데, ViewContext와 함께 이 메소드를 사용할 경우 놓칠 수 있는 주의점이 있어서 기록해둡니다. 문제 상황 한 개의 NSManagedObject를 생성하고 저장한 뒤, 이를 반복할 때 한 개의 셀만 애니메이팅 되어야하는데 두 개의 셀이 애니메이팅함. 다음과 같은 상황을 가정 - 사용하는 ViewContext는 NSPersistentContainer에서 기본 제공하는 NSManagedObjectCont..

결론: 구글 로그인 요청하는 순간에 요청 권한 범위를 설정할 수 있게 하는 기능이 GoogleSignIn-iOS 6.2.0에 추가될 예정. iOS 구글 로그인, GoogleSignIn-iOS 프로젝트는 6.0.0 버전을 기점으로 오픈소스로 전환되었습니다. 그런데 동시에 사용자에게 추가 권한을 요청할 때 Incremental authorization pattern을 권장하게 되면서 기존과는 다른 사용자 경험이 생겼습니다. 이전에는 구글 드라이브를 앱 내에서 사용하기 위해 구글 로그인을 시도하면, 로그인과 동시에 기본적인 권한(이메일, 아이디 등) + 드라이브 읽기 권한을 동시에 요청할 수 있었다면, Incremental authorization에서는 구글 로그인 후 기본적인 권한을 획득 한 후에 다시 추가..

(본 글은 아래의 이슈를 참고하여 작성된 글입니다) https://github.com/google/google-api-objectivec-client-for-rest/issues/478 Cannot debug in lldb · Issue #478 · google/google-api-objectivec-client-for-rest After upgrading to any version higher than 1.3.11, we are unable to use lldb in Xcode to debug. Unlike #388, we do not see any errors in the console. An example of the failures we get in lldb is sh... github.com 개..
MemoryBread - 편리한 암기 생활, 암기빵! App Store 다운로드 링크 [암기빵은 문장의 암기를 도와주는 앱입니다] 직접 문장을 쓰고 종이로 가리는 건 이제 그만! 암기빵으로 쉽게 단어를 가려봐요. 판례처럼, '길지만 정확하게 외워야 하는 문장'이 있을 때, 암기빵으로 단어를 가려가며 외워보세요. 암기빵이 당신의 암기 생활을 도와줍니다. [암기빵은 어떻게 사용하나요?] 먼저 암기하고 싶은 문장을 적어요. '편집' 버튼을 눌러서 색필터를 선택하고, 가리고 싶은 단어를 터치해서 선택해요. 색필터 선택이 끝나면 '완료' 버튼을 누르고, 맨 아래 색필터를 선택해주면 단어를 가릴 수 있어요! 가린 단어를 살짝 보고 싶으면, 단어를 직접 터치! 그러면 그 단어만 살짝 볼 수 있어요. [서비스 이용 필..

22년 3월 21일 업데이트 (짝짝) GMT+9 22년 3월 9일을 기준으로 이 포스트에서 다뤘던 PR이 GoogleSignIn-iOS 프로젝트에 머지되었습니다. 다시 말해... 이 글에서 코드를 수정하라는 부분은, 이제 새로운 버전이 릴리즈 된다면 수정할 필요가 없어지는 거겠죠!! 크 구글 프로젝트에 PR 날리고 머지 된다니 저도 언젠가 해보고 싶네요. 해당 PR링크를 남깁니다. https://github.com/google/GoogleSignIn-iOS/pull/30 Add the option to choose additional scopes at sign-in by AntonKozlovskyi · Pull Request #30 · google/GoogleSignIn-iOS github.com (본 ..

스크롤뷰가 얼마만큼 스크롤되었는지에 따라서 navigationItem.titleView 를 건드려줘야 할 일이 있어서 UIScrollView > contentOffset 를 찾아보고 관련 메소드를 정리했습니다. UIScrollView > contentOffset contentOffset의 의미를 생각해보면 '콘텐츠가 오프셋된 정도? 떨어진 정도?'로 해석할 수 있습니다. 처음에는 '그래서 값이 어떻게 나오는 건데' 라는 생각이 들어서.. 바로 공식문서 확인해봤습니다. 번역하면, '스크롤뷰의 오리진에서부터 오프셋된 콘텐츠뷰의 오리진 위치' 정도인 것 같습니다. 저는 스크롤뷰가 얼마나 스크롤되었는지를 보고 싶었기에 이 값이 딱 제가 원하는 값입니다. 그런데 스크롤뷰를 처음 접했을 때는 contentOffse..
https://developer.apple.com/documentation/speech/recognizing_speech_in_live_audio Apple Developer Documentation developer.apple.com 위의 글을 번역했습니다~ 몇몇군데는 굉장한 의역이 들어가있을 수 있어서... 적당히 읽고 이상한 문장은 원문을 보시는 게 좋습니다 +_+. 이 예시 앱은 애플에서 제공하였고, 라이브 음성을 실시간으로 인식해서 글로 바꿔주는 앱입니다. 번역 시작. Configure the Microphone Using AVFoundation 이 앱은 디바이스의 마이크와 소통하기 위해 AV Foundation을 사용한다. 특히, 앱은 앱의 오디오 상호작용과 시스템의 나머지 부분을 관리하기 위..

전체 정리 지정 초기화 자동 상속조건 잘 이해하고, 언제 부모 클래스의 지정 초기화를 호출해야하는지를 이해해라. 또 프로퍼티를 바로 할당하지 않고 초기화 메소드에서 초기화한다면, 내 클래스 것 먼저 초기화하고 부모의 지정 초기화 메소드를 호출해야 한다(이것이 1단계 초기화). 이 초기화가 끝나면 각자 입맛에 맞게 프로퍼티 초기화, 메소드 호출 등을 할 수 있게 된다(self 참조도 이때부터 안전하게 가능) 초기화 종류 스위프트에는 두 가지 종류의 초기화 메소드가 있습니다. 바로 지정 초기화 메소드(designated initializer)와 편의 초기화 메소드(convenience initializer)입니다. 둘 사이에는 호출 규칙이 3가지 있습니다. 호출규칙1. 지정 초기화 메소드는 부모 클래스의 ..
Hashable 프로토콜은 '정수형 해시값으로 자료형을 나타낼 수 있음' 정도의 의미를 가집니다. Swift의 기본 Collection 중 Set, Dictionary는 해시테이블로 구현이 되어있기에 Set의 아이템 Dictionary의 Key로 사용하고자 하는 자료형은 Hashable 프로토콜을 준수해야 합니다. 이외에 Hashable 프로토콜을 공부하면서 정리가 필요했던 몇 가지 부분을 글로 남깁니다. Hashable 프로토콜은 Swift 4.1 부터 Equatable, Comparable과 마찬가지로 synthesized implement가 생김(특정 조건을 만족한 상태에서 프로토콜을 채택할 경우 프로토콜을 자동으로 구현해주는 것) Hashable 프로토콜의 synthesized im..
- Total
- Today
- Yesterday
- 카카오인턴십
- 사이드 프로젝트
- 출석하냥
- 한성모니터
- docker tag
- 도커 이미지
- 간단정리
- 도커
- 왕국타이머
- docker-compose
- 앱출시
- iOS #코코아터치
- 제발태그그만
- 소프트웨어마에스트로11기
- tensorflow
- 암기빵
- docker image
- 게이밍모니터
- QHD모니터
- dockerfile
- 144hz모니터
- ios
- docker
- ES6
- 코코아터치
- 평면모니터
- React Native
- 개인정보처리방침
- Swift
- 데일리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |