일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AVFoundation
- ios외부디바이스연결
- JSONParser
- ios외부카메라연결
- avcapturesession
- swift
- Decodable
- 위클리챌린지
- 외부카메라감지
- 정보처리기사 실기
- cancelstouchesinview
- Xcode
- cocoapods
- usb카메라연결
- 2018 KAKAO BLIND RECRUITMENT
- parse
- 카메라유선연결
- ios캡처방지
- JSON
- ios카메라유선연결
- Codable
- UITableView
- ios캡처감지
- CustomCode
- 정보처리기사 실기 요약본
- 프로그래머스
- IOS
- programmers
- 정보처리기사
- Pod
- Today
- Total
목록전체 글 (42)
iOS 개발일기
목차링크 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를 ..

2025.01.09 - [iOS] - [iOS] USB 카메라 연결(1)2025.02.19 - [iOS] - [iOS] USB 카메라 연결(2) 이번 글에서는 화면 캡처 방법과 그 과정에서 발생했던 문제와 해결 과정에 대해서 작성해보려고 한다. 이미지 캡처외부 카메라와 미리보기 화면까지 표시하는 것 까지 모두 마친 다음에 캡처에 대해서 진행했는데 AVCaptureSession에 추가한 AVCapturePhotoOutput을 사용하여 캡처를 할 수 있다. output.capturePhoto(with: AVCapturePhotoSetting(), delegate: self) AVCapturePhotoCaptureDelegate 프로토콜을 채택하여 캡처한 이미지에 데이터를 가지고 이미지로 변경할 수 있다. ..

이전 게시글에서는 외부 카메라를 유선으로 연결할 수 있는 방법과 연결했을 때 디바이스의 포맷을 확인하거나 연결 및 해제를 감지하는 방법에 대해서 설명했다. 2025.01.09 - [iOS] - [iOS] USB 카메라 연결(1) 이번 글에서는 연결된 외부 카메라의 영상을 iOS 기기에 출력하는 방법을 말하려고 한다. 그리고 프로젝트를 진행하면서 미리보기 화면을 출력하면서 외부 카메라의 영상이 기기의 화면 방향과 맞지 않아서 생겼던 문제에 대해서도 다룰 예정이다. 카메라 미리보기 화면 표시외부 카메라의 화면을 내 기기에 표시하는 방법은 우리가 흔히 아는 AVCaptureSession을 통해 쉽게 구현이 가능하며, 보통 내장 카메라의 화면을 표시하는 방법과 동일하다. import UIKitimport AV..

진행 중인 프로젝트의 작업 중 하나가 외부 카메라를 유선(USB)으로 연결하고 영상을 기기에서 확인하면서 캡처하는 기능이 있었는데, 내부 카메라를 통해서 하는 작업은 해봤지만 USB 카메라를 연결하는 프로젝트는 처음 진행하는 것이었다. iOS는 기본적으로 UVC를 지원하지 않기 때문에 생각보다 외부 기기 연결에는 제약이 많았다. USB 카메라를 사용하기 위해서는 크게는 세 가지의 연결 방법이 있었다. MFi 인증 카메라Apple에서 공식적으로 지원하는 방법이기 때문에 AVFoundation을 통해 카메라 접근 및 제어 가능별도의 SDK가 제공되는 카메라고프로나 소니와 같은 기업에서 별도의 SDK를 제공하는 경우UVC(USB Video Class) 카메라iOS에서는 기본적으로 UVC를 지원하지 않기 때문..

회사에서 추후 필요할 수도 있는 기능 중 하나로 화면 캡처 방지에 대한 이야기를 했었는데, iOS는 캡처(녹화)나 스크린 샷에 대한 감지를 할 수는 있지만 AOS처럼 공식적으로 기능을 제공하지 않는 것으로 알고 있었다.캡처와 스크린 샷의 감지는 NotificationCenter의 알림들을 통해 쉽게 감지할 수 있지만 방지에 대한 제어는 제한적이다. 방지를 하기 위해서는 UITextField의 `isSecureTextEntry`의 속성을 이용하여 커스텀하여 가능하다. 화면 캡처 및 스크린 샷 감지 방법캡처(녹화) 감지 캡처의 경우 `UIScreen.capturedDidChangeNotification` 알림을 이벤트로 추가하여 감지할 수 있다. 그리고 `UIScreen.main.isCaptured` 프로..

기존에는 동적 높이를 할당할 때에 모든 UI 요소들에 제약조건을 모두 상위 뷰에 맞춰 크기가 같이 커지도록 설정된 셀만 사용했었으나, 이번 프로젝트에서 각각의 셀은 동적인 높이를 가지지만 UI 요소 중 타이틀과 버튼의 크기는 고정 크기를 가지고 유지되면서 중앙의 UILabel만 높이가 동적으로 변하도록 구성해야 됐다. AutoLayout 기반으로 UI를 코드로 작성하면서 높이를 지정해주는 상황이 적다보니 생소한 부분이기도 했고단순하게 셀의 높이를 `UITableView.automaticDimension` 으로 설정한 후에 셀 내에 타이틀과 버튼에 최소 크기를 명시해주기만 하면 속성에서 자동으로 최소 크기를 따라가지 않을까? 라는 생각에 타이틀과 버튼에 최소 크기를 지정한 결과... 셀 내에 Frame..

오픈소스 라이브러리는 각각의 라이선스들을 가지고있으며 이것들을 명시해주어야 합니다. 대부분의 오픈소스 라이브러리는 깃허브에 들어가보면 우측에 라이선스가 명시되어있고 내용도 확인할 수 있다. 이 내용들이 개발에 사용된 오픈소스 라이브러리들의 오픈소스 라이선스에 들어가는 내용이 된다. 1. 설정에서 명시하는 방법https://green1229.tistory.com/381 오픈소스 라이센스 표시안녕하세요. 그린입니다🍏 이번 포스팅에서는 앱을 구성하면서 사용한 오픈소스 라이센스를 디바이스 해당 앱 설정에서 표시하는 방법에 대해 알아보겠습니다🙋🏻 앱에서 사용된 오픈소스green1229.tistory.com 만약, 추가적으로 명시를 하고 싶다면 `LicensePlist` 폴더 내에 `Command ..
보호되어 있는 글입니다.

Realm 이란모바일 환경에 특화되어 있고 No-SQL이며 디스크에 JSON 형태로 데이터를 저장하여 처리속도가 빠르다는 장점이 있다. Realm을 선택한 이유현재까지 iOS 내에서 Realm, SQLite, FMDB와 같은 데이터베이스를 사용해 보았다. ( + CoreData )(초기에는 FMDB를 이용해서 데이터베이스를 관리했었는데 SQLite를 Swift 환경에서 사용하기 쉽도록 만들어진 라이브러리라 그런지 기본 원리는 같아도 확실히 편의성에서는 SQLite보다 FMDB가 훨씬 좋았습니다.) Realm은 비교적 최근에 사용하였는데, 이번 새로운 프로젝트에 내부 데이터베이스에서 대용량 데이터 관리가 필요하여 빠른 처리 속도를 보장(모바일에 특화된 No-SQL 데이터베이스이기 때문)할 수 있는 Re..