RxSwift 는 5가지 방법으로 이 라이브러리를 사용할 수 있다고 가이드하고 있습니다. 1. Cocoapod 2. Carthage 3. SPM 4. xcframework 5. git submodule [1] 제공하는 쪽 써드파티 라이브러리를 제공하는 입장에서 각각을 지원할 수 있는 가이드에 대한 링크를 정리해둡니다. (저는 Cocoapod과 SPM은 예전에 해봐서 카르타고, xcframework 를 한번 해봐야겠어요) 1. Cocoapod 지원하기 https://guides.cocoapods.org/making/making-a-cocoapod.html [ static vs dynamic ] 사용하는 쪽에서 podfile에 use_frameworks! 을 안써주느냐 써주느냐 로 static 또는 dyna..
[1] Overriding Build Settings for a Target 타겟이 프로젝트 빌드세팅을 상속받는데, 타겟의 특정 값을 직접 수정하면 오버라이딩하는 셈이 되어 해당 타겟만 설정을 따로 가져갈 수 있다. 즉 프로젝트의 특정 값을 수정해도 타겟의 값은 따라서 안바뀌게 되는 것이다. 그리고 타겟의 빌드세팅에서 오버라이딩한 필드는 볼드체로 표시되는 것 같ㄷ (Xcode 13.2 사용 중) 나의 설명보다.. Working with Targets 의 Overriding Build Settings for a Target 부분을 보면 훨씬 명확하다. A target inherits the project’s build settings. Although most developers seldom need to..
Xcode 13.2 로 iOS 15를 빌드했을 때, 발생하는 문제이다. (iOS 14 이하에서는 발생안함) # 이슈 cell을 토글하면 isSelected가 잘 토글되고 아래 코드도 잘 동작한다. class SomeCollectionViewCell: UICollectionViewCell { override var isSelected: Bool { willSet { if newValue { self.backgroundColor = .red } else { self.backgroundColor = .gray } } } ... } 하지만 사용자의 액션이 아니라 코드로 직접 isSelected 값을 바꾸면 순간적으로는 코드로 세팅해줬던 값으로 바뀌지만, 이전의 isSelected 값으로 다시 원복된다. 디버깅해..
# Strong Subview Reference Type 1 class ViewController: UIViewController { private let someView: SomeView = SomeView() override func viewDidLoad() { super.viewDidLoad() self.setupSomeView() } private func setupSomeView() { self.view.addSubview(someView) self.someView.snp.makeConstraints { maker in maker.width.height.equalTo(50) maker.center.equalToSuperview() } } } Type 2 class ViewController: U..
이 글은 제가 몰랐거나 자주 까먹는 단축키들만 모을 예정으로 더 많은 단축키를 보고 싶다면 이 글을 추천합니다~ [1] 중복커서 (Option + Drag) Fast Campus > 슈퍼앱 강의를 듣다가 알게 된 것인데, Option 누르고 드래그를 하면 커서를 중복으로 만들 수 있다. 아래 예제 (출처: 강의에서 나오는 예제) 처럼 여러 프로퍼티에 public 을 붙일 때 유용하게 사용 가능하다!! (그동안 하나씩 해줬는데 ㅠㅠㅠ 감동) [2] MiniMap 토글 (Control + Shift + Command + M) 코드 라인 수가 많은 파일을 볼 때 유용한 미니맵. Xcode 의 저부분을 눌러서 토글할 수 있지만 단축키로 편하게 할 수 도 있다. 코드를 작성하거나 라인 수가 적은 코드를 볼 경우,..
[ 이슈 ] A와 B는 다른 preferredStatusBarStyle 을 가지고 있습니다. class AViewController: UIViewController { override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } ... } class BViewController: UIViewController { override var preferredStatusBarStyle: UIStatusBarStyle { return .darkContent } ... } 1. A에서 B를 present 할 때, B의 modalPresentationStyle을 fullScreen으로 하면 B에 오버라이딩한 statusBarStyle로..
[ 이슈 ] 여기 A와 B 뷰컨트롤러가 있습니다. A와 B의 뷰컨트롤러 뷰, 그리고 서브뷰인 TextView는 따로 background Color를 지정해주지 않았고 systemBackground 를 사용 중입니다. 다크모드에서 테스트해보겠습니다! # 1. modalPresentationStyle = overFullScreen 으로 B 뷰컨트롤러를 present 할 때 A와 B의 view, textView 모두 같은 백그라운드컬러입니다. A와 B 모두 #000000 으로 적용된 것을 볼 수 있습니다. # 2. modalPresentationStyle = overCurrentContext 으로 B 뷰컨트롤러를 present 할 때 A와 B의 view, textView 백그라운드 컬러가 다릅니다. 둘다 sy..
[ 원하는 것 ] 앱 전체 강제 라이트모드 && 몇개 일부 화면만 다크모드 지원하고 싶음 (다크모드 지원하는 화면 수가 전체 화면 수에 비해 매우 매우 적기 때문에 entire app을 라이트로 강제하고 몇개 화면들만 예외처리를 해주고 싶음) [ 이슈 ] 1. AppDelegate 또는 SceneDelegate에서 window의 overrideUserInterfaceStyle 를 light 로 설정 2. A 화면(뷰컨트롤러)의 viewDidLoad 또는 이니셜라이저에서 overrideUserInterfaceStyle 를 undefined 로 설정 하면 시스템 설정에 따라 A 화면의 라이트/다크가 안바뀜 debug logging을 켜고 돌려보자! (-UITraitCollectionChangeLoggingE..
[ 이슈 ] 애플로부터 푸쉬 인증서 갱신하라는 메일을 받음,, 근데 파베 콘솔 > 클라우드 메세징 설정에 가봤더니 APN 인증서가 아니라 APN 인증 키를 사용하고 있었음 (??) iOS에서 Firebase 클라우드 메시징 클라이언트 앱 설정 문서 보고 했는데, 나는 인증키와 인증서를 모두 다 만들었을까 (??) [ APN 인증키 vs APN 인증서] 인증서는 매년 갱신해야하지만, 인증키는 매년 갱신안해도 됨. 인증서는 개발용, 배포용 인증서 따로 있지만, 인증키는 하나로 해결됨. - Establishing a Token-Based Connection to APNs // 애플 문서 - APNs Auth keys VS APNs Certs // Apple Developer Forums - APN Key를 통..
⭐️ 1. 쏘카프레임 https://socarframe.socar.kr 가이드를 웹으로 너무 잘 정리해주셨네요! (로딩 부분 감동,,) https://tv.naver.com/v/15842187 쏘카프레임 구축 배경과 과정 NAVER Engineering | ※ 발표자: 박지홍 님, 전수빈 님 (쏘카) ※ 발표월: 20.07 ※ 목차 - 쏘카프레임 소개 & 구축 배경과 방식 소개 - 다크모드와 컬러 시스템 - 디자이너-개발자의 협업 방법 (컴포넌트 tv.naver.com 디자이너 두분께서 발표해주셨어요! 쏘카는 스케치, 제플린 쓰신다고 합니다! 2. 리디 디자인 시스템 https://ridi.design RIDI Design System 리디를 디자인하기 위한 단 하나의 시스템 ridi.design 발표를..
- Total
- Today
- Yesterday
- drf custom error
- flutter build mode
- Sketch 누끼
- SerializerMethodField
- Django FCM
- Flutter 로딩
- 플러터 싱글톤
- Flutter Spacer
- 장고 Custom Management Command
- github actions
- Watch App for iOS App vs Watch App
- DRF APIException
- ipad multitasking
- flutter dynamic link
- flutter deep link
- ribs
- cocoapod
- 플러터 얼럿
- 장고 URL querystring
- Django Heroku Scheduler
- METAL
- 구글 Geocoding API
- Dart Factory
- flutter 앱 출시
- Python Type Hint
- Flutter Text Gradient
- Flutter getter setter
- PencilKit
- Flutter Clipboard
- Django Firebase Cloud Messaging
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |