| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- UVCAndroid
- JSONParser
- Decodable
- UVCCamera
- 정보처리기사 실기
- usb카메라연결
- 안드로이드외부카메라연결
- IOS
- Android
- ios외부디바이스연결
- ios외부카메라연결
- UITableView
- AVFoundation
- Xcode
- avcapturesession
- 정보처리기사
- JSON
- parse
- uikit
- cocoapods
- 외부카메라연결
- CustomCode
- 정보처리기사 실기 요약본
- Realm
- Pod
- ios 26
- libuvc
- swift
- ios카메라유선연결
- Codable
- Today
- Total
목록전체 글 (38)
iOS 개발일기
깃허브: https://github.com/93bpm/usb-camera-demo 이전에 iOS에서 USB 카메라를 연결하는 글을 작성했었는데, 같은 기능을 안드로이드도 개발하게 되었다. iOS는 특정 조건만 있으면 순정 프레임워크(AVFoundation)를 사용해서 비교적 사용이 편리했다. 안드로이드는 USB 호스트를 지원하기 때문에 iOS보다 더 쉬울 거라고 생각했다. 결과는 정반대였다. 안드로이드는 UVC를 지원할까?USB 호스트로 기기를 여는 것 자체는 된다. 문제는 공식 프레임워크인 Camera2가 UVC 기기를 카메라로 잡아주지 않는 문제가 있었다. Camera2 에는 INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL 이라는 하드웨어 레벨이 있고, 이론상 외장 카메라가 ..
요즘 안드로이드 프로젝트 개발을 진행 중이다... 현재 진행하고 있는 프로젝트는 하드웨어를 연동 및 통신을 하는데 iOS에서 경험해본 터라 하드웨어와 관련된 개발은 크게 어렵지는 않았다. 그동안 안드로이드는 유지보수 위주로 다뤄왔기에, 새로운 기능 개발은 처음이었다. 그래서인지 코드 보다는 OS 환경에 대한 지식이 부족한 탓에 하드웨어와 관련된 기능에만 몰두하며 테스트를 이어가고 있었다. 그러다 테스트 도중, 블루투스 때는 없었던 기괴한 현상이 발생하는데 USB만 꽂으면 화면에서 소프트 키보드가 가출해버리는 문제였다. 이류를 좀 찾아보니, 안드로이드가 해당 하드웨어를 HID(Human Interface Device) 프로필로 인식하는 것이 원인이었다. 시스템이 연결된 기기를 '외부 키보드'로 간주하면서,..
우리가 보통 하단 홈바를 스와이프하거나 홈 버튼을 두번 클릭하면 나오는 앱 목록 화면을 앱 스위처라고 부르는데간혹 앱 스위처로 이동할 경우 현재 사용되고 있던 앱이 표시되던 화면을 가리는 것을 볼 수 있다. 대부분 개인 정보 보호를 목적으로 화면 보호기를 설정하는데카카오톡이나 토스 외에도 금융 및 개인정보를 다루는 앱에서 흔히 사용되고 있다. 화면 보호기그럼 위와 같이 화면 보호기를 설정하기 위해서는 앱의 생명주기를 알면 쉽게 구현이 가능하다.앱이 활성/비활성 상태일 경우에 화면을 가리기 위한 UI만 표시해주면 된다.class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(..
목차링크 01. 요구사항 확인https://93bpm.tistory.com/26 02. 데이터 입출력 구현https://93bpm.tistory.com/27 03. 통합구현https://93bpm.tistory.com/28 04. 서버 프로그램 구현https://93bpm.tistory.com/29 05. 인터페이스 구현https://93bpm.tistory.com/30 06. 화면 설계https://93bpm.tistory.com/31 07. 애플리케이션 테스트 관리https://93bpm.tistory.com/32 08. SQL 응용https://93bpm.tistory.com/34 09. 소프트웨어 보안 구축https://93bpm.tistory.com/35
프로젝트에서 웹 서비스 통신을 할 때 몇 개의 값들이 필수로 존재해야 되는 경우가 존재했었다.이럴 때마다 입력을 하거나 초기화에 값을 넣어주기에는 너무 불편한 것 같아서 생각을 하던 찰나에 생각하게 된 것이 Property Wrapper(프로퍼티 래퍼)였다. Swift 5.1에서 Property Wrapper가 나왔을 때에는 SwiftUI에서는 자주 사용될 것 같았지만 UIKit에서는 자주 사용되지 않을 것이라 생각했었다. 현재까지 개발한 프로젝트는 모두 UIKit 환경에서 개발되었기 때문에 Property Wrapper를 적극적으로 사용할 기회가 별로 없었는데 이번 기회에 사용할 기회가 있어 어떻게 사용했는지 적어보고자 한다. UserDefaultsUIKit 환경에서 Property Wrapper를 ..
깃허브: https://github.com/93bpm/usb-camera-demo 2025.01.09 - [iOS] - [iOS] USB 카메라 연결(1)2025.02.19 - [iOS] - [iOS] USB 카메라 연결(2) 이번 글에서는 화면 캡처 방법과 그 과정에서 발생했던 문제와 해결 과정에 대해서 작성해보려고 한다. 이미지 캡처외부 카메라와 미리보기 화면까지 표시하는 것 까지 모두 마친 다음에 캡처에 대해서 진행했는데 AVCaptureSession에 추가한 AVCapturePhotoOutput을 사용하여 캡처를 할 수 있다. output.capturePhoto(with: AVCapturePhotoSetting(), delegate: self) AVCapturePhotoCaptureDelega..
깃허브: https://github.com/93bpm/usb-camera-demo 2025.01.09 - [iOS] - [iOS] USB 카메라 연결(1)2025.02.26 - [iOS] - [iOS] USB 카메라 연결(3) 이전 게시글에서는 외부 카메라를 유선으로 연결할 수 있는 방법과 연결했을 때 디바이스의 포맷을 확인하거나 연결 및 해제를 감지하는 방법에 대해서 설명했다. 이번 글에서는 연결된 외부 카메라의 영상을 iOS 기기에 출력하는 방법을 말하려고 한다. 그리고 프로젝트를 진행하면서 미리보기 화면을 출력하면서 외부 카메라의 영상이 기기의 화면 방향과 맞지 않아서 생겼던 문제에 대해서도 다룰 예정이다. 카메라 미리보기 화면 표시외부 카메라의 화면을 내 기기에 표시하는 방법은 우리가 흔히 아..
깃허브: https://github.com/93bpm/usb-camera-demo 2025.02.19 - [iOS] - [iOS] USB 카메라 연결(2)2025.02.26 - [iOS] - [iOS] USB 카메라 연결(3) 진행 중인 프로젝트의 작업 중 하나가 외부 카메라를 유선(USB)으로 연결하고 영상을 기기에서 확인하면서 캡처하는 기능이 있었는데, 내부 카메라를 통해서 하는 작업은 해봤지만 USB 카메라를 연결하는 프로젝트는 처음 진행하는 것이었다. iOS는 기본적으로 UVC를 지원하지 않기 때문에 생각보다 외부 기기 연결에는 제약이 많았다. USB 카메라를 사용하기 위해서는 크게는 세 가지의 연결 방법이 있었다. MFi 인증 카메라Apple에서 공식적으로 지원하는 방법이기 때문에 AVFou..
회사에서 추후 필요할 수도 있는 기능 중 하나로 화면 캡처 방지에 대한 이야기를 했었는데, iOS는 캡처(녹화)나 스크린 샷에 대한 감지를 할 수는 있지만 AOS처럼 공식적으로 기능을 제공하지 않는 것으로 알고 있었다.캡처와 스크린 샷의 감지는 NotificationCenter의 알림들을 통해 쉽게 감지할 수 있지만 방지에 대한 제어는 제한적이다. 방지를 하기 위해서는 UITextField의 `isSecureTextEntry`의 속성을 이용하여 커스텀하여 가능하다. 화면 캡처 및 스크린 샷 감지 방법캡처(녹화) 감지 캡처의 경우 `UIScreen.capturedDidChangeNotification` 알림을 이벤트로 추가하여 감지할 수 있다. 그리고 `UIScreen.main.isCaptured` 프로..
이전 프로젝트들에서는 동적 높이를 할당할 때, 셀 내 모든 UI 요소들이 셀의 높이에 따라 다같이 변화하도록 설정된 셀만 사용했었으나 이벤 프로젝트에서는 셀은 기본적으로 동적인 높이를 가지고 UI 요소들 중 일부는 고정 크기, 일부는 동적 크기를 가지도록 하는 셀을 만들어야 했다. 그 중 하나의 셀을 예로 들자면,제목 : UILabel (고정 크기)내용 : UILabel (동적 크기)버튼 : UIButton (고정 크기)셀에는 총 3개의 요소를 가지고 있으며, 중앙의 내용을 표시하는 UILabel을 제외한 나머지 요소들은 고정된 크기를 가질 수 있도록 해야했다. AutoLayout 기반으로 UI를 코드로 작성하면서 높이를 지정해주는 상황이 적다보니 생소한 부분이기도 했고단순하게 셀의 높이를 `UITabl..