일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RxCocoa
- rxswift
- 리팩토링
- SWIFT
- uiscrollview
- 애니메이션
- Human interface guide
- Refactoring
- ios
- map
- swift documentation
- uitableview
- collectionview
- Protocol
- UICollectionView
- Clean Code
- ribs
- swiftUI
- 리펙터링
- MVVM
- UITextView
- HIG
- 스위프트
- tableView
- 클린 코드
- Observable
- clean architecture
- Xcode
- combine
- 리펙토링
- Today
- Total
목록크래시 (3)
김종권의 iOS 앱 개발 알아가기
dataSource 관리 MVVM 구조에서 보통 dataSource를 사용할 때 아무런 큐 없이 구현하지만, 데이터 처리 최적화를 위해 background 시키고 싶은 경우 중간중간 DispatchQueue.global()를 사용하거나 커스텀 큐를 사용하는 경우가 존재 개발자가 실수로 DispatchQueue.global()를 사용하게 되면, 이 큐는 serial이 아닌 concurrent이므로 value type인 dataSource 배열을 수정과 동시에 읽기를 하다가 크래시가 발생하는 경우가 존재 크래시 - 이전 Memory Access Conflict 글 참고 이럴때는 커스텀 큐를 선언하여 관리하는것이 가장 좋은데, 먼저 queue의 종류를 이해가 필요 DispatchQueue의 종류 3가지 * 이..
Crashlytics 로그란? Firebase에서 크래시 전송 설정을 하면 (Firebase Crashlytics와 dsym 파일 전송), 크래시가 발생한 경우 크래시를 정보를 파이어 베이스에 전송 기본적인 크래시 정보를 Crashlytics에 보내지만, 크래시가 발생하기 전의 특정한 정보를 알고싶은 경우 로그 전송이 가능 Crashlytics 설정 기본적인 Crashlytics 설정은 이전 포스팅 글 참고 dsymbol은 Release환경에서만 보내도록 설정했으므로 테스트를 위해 Xcode 스킴에서 Build Configuration을 Release로 변경하고 Debug executable 체크를 해제 아래와 같은 코드를 준비하고 크래시를 발생시켰을때 파이어베이스에 crash 정보가 나왔으면 준비 완료..
Firebase프로젝트 세팅 Firebase홈페이지 3번에서 사용 설정 누르면 아래화면처럼 loading Xcode프로젝트 세팅 Firebase SDK연동, FirebaseApp.configure()까지 작성: ios-development.tistory.com/230 앱에 crashlytics 추가 pod 'Firebase/Crashlytics' pod 'Firebase/Analytics' build phase에서 빌드스크립트 생성 후 작성 (4번: build script 이름 설정) 5번 코드: debug버전에서는 dSYM을 올리지 않으므로 (배포하지 않으므로) debug버전이 아니면 crashlytics를 실행하라는 의미 if [ "${CONFIGURATION}" != "Debug" ]; then "..