일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IOS
- Realm
- Xcode
- JPA
- SwiftUI
- Python
- 한글
- Archive
- window
- rxswift
- 웹뷰
- github
- UIButton
- iOS16
- darkmode
- Swift
- Code
- Notification
- Git
- 개발자
- Session
- appstore
- FLUTTER
- stack
- Firebase
- mac
- error
- MacOS
- Apple
- view
- Today
- Total
목록Xcode (39)
EEYatHo 앱 깎는 이야기
ReactorKit 공식 Git 링크 View 와 Reactor 을 가지고 화면을 만든다. View = UIView, UIViewController, UITableViewCell 등 Reactor = ViewModel. 비지니스 로직. ReactorKit 은 Flux 와 Reactive Programming 의 조합 부분적으로 도입이 가능하고, 라이브러리인 만큼, 공식 설명이 잘 되어있다. ReactorKit 의 디자인 목표 Testability : 뷰(View)와 비지니스 로직(Reactor)을 분리. Reactor는 View 에 대한 종속성이 없음. Small Start : RIBs 처럼 앱 전체가 하나의 아키텍쳐를 따를 필요 없음. 특정 화면에만 ReactorKit을 사용할 수 있음 Less Typ..
자주 쓰는 단축키 Bold 처리 코딩 관련 단축키 커서가 위치한 블록 접기 : Command + Option + 좌 방향키 ( 중괄호 기준 ) 커서가 위치한 블록 열기 : Command + Option + 우 방향키 ( 중괄호 기준 ) 커서가 위치한 파일의 모든 함수 접기 : Command + Option + Shift + 좌 방향키 커서가 위치한 파일의 모든 함수 열기 : Command + Option + Shift + 우 방향키 파일, 클래스, 함수 검색 : Command + Shift + O 뒤로가기 : Command + Ctrl + 복수 커서 생성 : Ctrl + Shift + Click 선택한 라인 주석 걸기 / 풀기 : Command + / 현재 파일을 Project Navigator 에서 보..
Test 파일 만들기 New File > Unit Test Case Class > 파일명 입력 파일명은 일반적으로 XXXTests 로 짓는다 예시로 User 의 모델이나 API 를 테스트하기 위한 UserTests 를 만들었다. 제공된 함수 설명 UintTest 파일을 만들면 4가지 함수가 있다. setUpWithError : 테스트 시작 직후, 가장 먼저 실행되는 코드. 테스트를 위한 모델이나 시스템을 정의하는 역할. tearDownWithError : 테스트 끝나기 직전, 가장 마지막에 실행되는 코드. release, deinit, dispose 등의 역할. testExample : 테스트 함수 예시. testXXX 로 명명된 함수들이 UnitTest 시 모두 실행된다. setUpWithError 실..
Error 갑자기 Unable to boot the Simulator. 라는 Alert 가 나오면서 시뮬레이터가 실행이 안된다. 아마 Flutter, React Native 등 여러 크로스플랫폼을 실행하다가 생긴 버그인듯,, Solution 좌측 상단 사과모양 > 이 Mac에 관하여 > 저장 공간 > 관리 > Xcode 캐시 삭제 Reference https://stackoverflow.com/questions/72229589/flutter-xcode-error-unable-to-boot-the-simulator
HapticEngine 으로 진동을 구현했었다. 구현 포스팅 그런데 백그라운드로 갔다가 포그라운드로 돌아온 후, 진동을 켜면 com.apple.CoreHaptics Code=-4805 에러가 발생했다. CHHapticError 정의 를 보니, 엔진이 켜져있지 않다고 한다. Solution HapticEngine 은 앱이 백그라운드 상태로 가면 꺼진다. 따라서 포그라운드 진입시, HapticEngine 을 다시 start 시켜 해결했다. /// in AppDelegate override func applicationWillEnterForeground(_ application: UIApplication) { do { try VibrationManager.shared?.hapticEngine.start() }..
CHHapticEngine iOS 에서 제공하는 CHHapticEngine 을 이용하여 다양한 진동을 구현할 수 있다. 보다 자세한 설명을 원한다면 공식 링크에서 확인하기. CHHapticEngine 링크 큰 개념은, HapticEngine 에 진동 Pattern 을 넣어서 Player 를 생성한다. Player 를 start 및 stop 한다. CHHapticPattern HapticPattern 에는 지속시간과 세기가 있으며, 세기에는 강도(hapticIntensity) 와 날카로움(hapticSharpness) 이 있다. 강도는 클수록 묵직한 느낌이다. 내 생각엔 진폭을 담당한다. 날카로움은 클수록 따가운(?) 느낌이다. 내 생각엔 진동수를 담당한다. 애플에서 제공하는 예시 프로젝트를 실행해보면 직..
파이어베이스에서 Crashlytics를 사용하려면 디버그 기호파일(dSYM)을 업로드 해야한다. 수동으로 dSYM파일을 다운 or 추출해서 업로드하는 방법도 있지만, 빌드 마지막 단계에 Xcode에서 제공하는 Run Script를 삽입하여, 자동으로 업로드하는 방법이 있다. 관련 링크 https://firebase.google.com/docs/crashlytics/get-started?authuser=0&hl=ko&platform=ios#uikit https://firebase.google.com/docs/ios/installation-methods?authuser=0&hl=ko 1. dSYM 추출 여부 세팅 Build Settings dSYM 검색 Debug Information Format에서 Deb..
웹뷰에서 내려오는 status code 로 에러처리를 하려하는데, 테스트할 만한 stub이 없어서 정리. 테스트할 status code URL 404 https://github.com/qwdscxzvdw 502 https://scrap.uznam8x.space/ 코드 /* 웹뷰 response가 오고 난 후, 다시한번 탐색여부를 결정하는 대리자 메소드 statusCode로 에러처리 decidePolicyFor navigationAction에서 탐색을 거부했다면 이 대리자까지 오지않음 */ func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (W..