목록전체 글 (67)
Jimmy's iOS
XLPagerTapStrip 을 이용하여 코드로 여러 뷰 컨트롤러들의 페이징을 간단하게 연습해 보았습니다. 1) 코코아 팟으로 XLPagerTapStrip 인스톨 하기 pod 'XLPagerTabStrip', '~> 9.0' 2) MainViewController 에 ButtonBarPagerTabStripViewController 를 상속받아서 buttonBarView 레이아웃과 세팅 설정하기 import UIKit import XLPagerTabStrip import SnapKit class MainViewController : ButtonBarPagerTabStripViewController { // MARK: - Properties // MARK: - LifeCycle override func v..
func getStatusBarHeight() -> CGFloat { var statusBarHeight: CGFloat = 0 if #available(iOS 13.0, *) { let window = UIApplication.shared.windows.filter {$0.isKeyWindow}.first statusBarHeight = window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0 } else { statusBarHeight = UIApplication.shared.statusBarFrame.height } return statusBarHeight }
테스트 주도 개발 TDD (Test-Driven Development) 은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구 사항을 검증하는 자동화 된 테스트 케이스를 작성한다. 그런 후 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리펙토링을 한다. TDD Cycle TDD 는 실패 - 성공 - 리펙토링의 짧은 주기를 반복하여 좋은 코드를 도출해내는 방식이다. Red : 실패하는 테스트를 작성하는 구간 Green : 실패한 테스트를 통과하기 위해 최소한의 변경을 하여 테스트에 성공하는 구간 Refactor : 테스트의 성공을 유지하면서 코드를 더 나은 방향으로 개선해 나가는 구간 TDD 의 장단점 장점 높은..
iOS 에서 스크린샷 기능은 OS 단에서 일어나는 것이기 때문에 스크린샷 기능 자체를 막는 것은 불가능하다. 하지만 스크린샷이나 녹화 기능을 이용할 때를 캡쳐해서 알림을 주는 기능은 가능하다. UIApplicationUserDidTakeScreenshotNotification 으로 스크린 샷을 감지 가능하다. UIScreen.captureDidChangeNotification 으로 녹화 감지가 가능하다. 녹화 같은 경우 캡쳐를 할때를 캐치해서 화면을 가리는게 가능하지만 스크린샷은 캐치하는 순간보다 먼저 찍히기 때문에 화면을 가리는게 불가능 하고 캐치한 순간 앨범에 저장된 마지막 이미지를 지우는 방법도 있는데 이건 사용자가 앨범 권한을 허락 해야 가능하기 때문에 완벽하게 막는건 힘들다고 한다. 1) App..