일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swift
- Python
- vtable
- URLSession
- moya
- DISPATCH
- readLine
- ReactorKit
- Responder chain
- RxSwift
- 공백
- BidirectionalCollection
- 전자출입
- delays deallocation
- Asnyc
- MaxHeap
- Custom Class
- UserDefaults
- 입력
- Combine
- reversed
- UIResponder
- 사내배포
- ios
- binder
- weak self
- input
- async
- hitTest
- AVCaptureSession
- Today
- Total
목록ios (6)
틈틈히 적어보는 개발 일기
UIResponder에 대해 자료를 알아보던 중 Responder Chain에 대한 과정을 직접 확인하고 싶어 hitTest와 point를 활용하여 디버깅을 하던 중 흥미로운 점을 발견하였습니다 그전에 Responder Chain이란? 대부분의 UIKit에서 이용할 수 있는 UI 객체들(UIApplication, UIViewController, UIView 등..)은 UIResponder를 채택하고 있는 Responder 객체인데, 이를 통해서 객체들에게 발생한 이벤트를 처리할 수 있게 됩니다. 이벤트가 발생하면 UIKit은 Responder에게 이벤트를 전달하게 되는데 해당 Responder가 이벤트를 처리하지 않을 경우에는 다른 상위의 Responder로 이벤트를 전달합니다. -> 즉 "내가 처리할 ..
iOS 개발자로 면접을 진행하던 와중에 다음과 같은 질문을 받았습니다. 🧑🏻💻 프로젝트에서 final 키워드를 모든 class에 다 붙여 두셨는데 이유가 있나요? 🧑🏻💼 더이상의 상속을 하지 않겠다는 의미로 final 키워드를 모두 붙여주었습니다! 🧑🏻💻 그렇다면 final 키워드를 사용함으로써 상속을 막는것 이외에 다른 장점은 무엇이 있을까요? 🧑🏻💼 ...! 해당 질문을 받았을 때 정확히 알고있는 개념이 아니라서 컴파일 시간을 단축할 수 있겠다는 추측성 대답을 했는데 알고보니 이상한 대답을 한 것 같다ㅠㅠ 그래서 final을 쓰면 뭐가 좋은데? 문법적 의미 성능적 이점 final 키워드를 사용하면 위에서 언급한 상속을 막는것과 같은 문법적(컴파일이 안되는)의미와 더불어 성능적으로도 이점을 볼 ..
교내 앱센터 활동 중, 직속 부서인 전산원의 부탁으로 일반적인 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를 정합..