일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BidirectionalCollection
- input
- vtable
- URLSession
- RxSwift
- delays deallocation
- async
- Custom Class
- reversed
- hitTest
- moya
- ReactorKit
- UserDefaults
- Responder chain
- 공백
- weak self
- ios
- 사내배포
- Asnyc
- UIResponder
- AVCaptureSession
- Python
- swift
- Combine
- DISPATCH
- 입력
- MaxHeap
- readLine
- 전자출입
- binder
- Today
- Total
목록📱 iOS, Swift (14)
틈틈히 적어보는 개발 일기
교내 앱센터 활동 중, 직속 부서인 전산원의 부탁으로 일반적인 QRCode 스캐너가 아닌 전자출입명부와 같은 특정 구역에서만 스캔이 가능한 스캐너를 만들 기회가 생겼습니다. 해당 앱을 제작하면서 알게되었던 지식들을 정리해보고자 합니다. 참고 자료 https://github.com/swieeft/QRCodeAndBarcodeReader https://github.com/gaebel/scanner-overlay ⭐️ 해당 프로젝트를 시작하기 전, 카메라 이용에 관한 권한을 반드시 획득해야합니다! 프로젝트의 Info.plist에 Privacy - Camera Usage Description 을 추가하여 앱 실행 시 권한을 요청합니다 . 작성이 되셨다면 앱 실행 시 다음과 같은 화면이 나올거에요! 먼저 QR코드..
결론 원하는 Class에 NSObject, NSCoding을 채택 후 각각의 변수들에 decode, encode 메소드를 작성해줍니다. class PTimer: NSObject, NSCoding { var time: Int = -1 var name: String = "Timer" required init?(coder: NSCoder) { self.time = coder.decodeInteger(forKey: "time") // 문자열은 Object로 불러와 String으로 타입캐스팅 해준다 self.name = coder.decodeObject(forKey: "name") as? String } func encode(with coder: NSCoder) { coder.encode(self.time, fo..
직접 ipa파일을 배포하는 과정에서 발생했던 이슈 및 배포 방법에 대해 고민했던 자취를 남기고자 한다. 앱스토어를 통하지 않고 개별적으로 배포하고자 고려했던 방법이다. TestFlight ad-hoc (배포파일 직접 전달) In-House (Enterprise) 상황정리 QA 및 배포 파일이 불특정 다수의 기기에 빌드가 되어야 한다. 지속적인 업데이트를 즉각적으로 받아볼 수 있어야 한다. 기기 수는 수백대로 추측된다. TestFlight 해당 방법은 기기수의 제한이 있고, 사용 기간의 제약(90일) 이 있을 뿐 더러 애플 심사를 거쳐야 하므로 빠른 피드백과 배포를 위한 방법으로는 적합하지 않았다. 또한 TestFlight를 통해 배포를 해야 했으므로 말 그대로 Test를 위한 용도로 고려함이 좋다. Ad..
UIVIew.animate apple공식문서 View에 animation 추가하기 아래의 코드를 button의 action에 추가합니다. UIView.animate(withDuration: 0.5, delay: 0.1, options: .curveEaseInOut, animations: { () -> Void in self.extendView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 350) }, completion: { (didFinish) -> Void in }) withDuration -> 몇 ’초’ 동안 animation을 보여 줄 것인지 정합니다. delay -> animation을 시작하기 전 delay를 정합..