전체 글

iOS 시뮬레이터에서 URLScheme을 빠르게 여는 방법
iOS 시뮬레이터에서 사용자 정의 URLSceme을 빠르게 여는 방법 일반적으로는 시뮬레이터 Safari의 주소창에 URLScheme을 입력하는 방법을 사용하는데, 매번 복사, 붙여넣기를 사용하여 불편하다. CLI - Terminal을 이용한 방법 xcrun은 명령줄에서 Xcode 내부의 모든 도구를 실행가능한데, 시뮬레이터를 제어할 때는 simctl을 사용한다. 시뮬레이터에서 커스텀 URL Scheme(또는 웹사이트)을 여는 방법은, 1. 시뮬레이터에서 앱을 실행한 후, 2. Terminal.app을 엽니다(/Applications/Utilities에 위치). 3. 다음 명령을 입력하고 ⏎ Return 키를 누르십시오. xcrun simctl openurl booted 예시 xcrun simctl op..
rbenv 환경에서 cocoapods 최신 버전 설치 방법
rbenv 환경에서 cocoapods의 최신 안정적(stable) 버전을 설치하는 방법 rbenv 설정은 그대로 둔다. pod --version 명령으로 현재 버전 확인 > pod --version > 1.10.1 sudo gem install cocoapods --pre (최신 안정버전 설치) > 1.11.3 > ... > Successfully installed cocoapods-1.11.3 > ... pod --version 실행 > pod --version > 1.10.1 !! 최신 버전이 나오지 않을 경우 rbenv -rehash 실행 > rbenv -rehash > ... > pod --version > 1.11.3

Failed to uninstall gitlab-runner: remove /Library/LaunchDaemons/gitlab-runner.plist: no such file or directory gitlab-runner.plist
Given CI Build를 위해 GitLab-Runner를 아래의 과정으로 직접 설치한 경우에 발행하는 현상으로 보입니다. sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-arm64" sudo chmod +x /usr/local/bin/gitlab-runner gitlab-runner install When gitlab-runner를 삭제가 필요할 때의 절차는 아래 순서대로 진행합니다. #1 - 모든 runner 삭제 $gitlab-runner unregister --all-runners #2 - gitlab-r..
iOS 메모리 사용량 파헤치기
앱 메모리 사용량 줄이기 앱 메모리 사용량을 줄여야 하는 이유: 사용자가 더 나은 경험을 할 수 있다는 것입니다. 앱 실행 속도가 빨라질 뿐만 아니라 시스템이 더 잘 수행될 것입니다. 앱이 메모리에 더 오래 유지됩니다. 다른 앱은 메모리에 더 오래 남아 있습니다. 거의 모든 경우에 안 하는 것보다 더 좋습니다. 클린 & 더티 페이지 (Clean & Dirty pages) 힙에 여러 개체를 보유할 수 있는 페이지에 제공된 메모리와 일부 개체는 여러 페이지에 걸쳐 있을 수 있습니다. 각 페이지는 일반적으로 16KB이며 클린하거나 더티해질 수 있습니다. 앱의 메모리 사용량은 페이지 수에 페이지 크기를 곱한 것입니다. 예시: 가득차지 않은 4페이지로 메모리 매핑된 50KB인 JPEG가 있는 경우 이것의 좋은 예..
UserDefaults 모든 항목 출력, 경로, 리셋
UserDefaults 목록 확인을 위한 코드 해당 경로의 plist 오픈 var path: [AnyObject] = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true) as [AnyObject] let folder: String = path[0] as! String NSLog("%@/Preferences", folder) 소스 상에서 런타임 시에 UserDefaults를 프린트로 찍는 방법 print(UserDefaults.standard.dictionaryRepresentation()) UserDefaults Reset 필요 시 extension UserDefaults { static func resetDefaul..

Advances in Collection View Layout
iOS는 기본적으로 'UICollectionView' 흐름 레이아웃과 함께 제공되며, 이는 간단한 경우에 유용합니다. 그러나 사용자 정의 레이아웃을 수행하는 것은 매우 복잡하고 상용구 코드가 필요하고 성능 등에 대해 생각해야 합니다. iOS 13 및 macOS 10.15의 새로운 기능: Compositional Layout Compositional Layout은 구성 가능하고 유연하며 빠릅니다. 작은 레이아웃 그룹(라인 기반, 즉 플로우 레이아웃 사용)을 가져와 함께 더 큰 조각으로 구성하여 작동합니다. iOS, tvOS 및 macOS에서 사용 가능(동일한 API): UI/NSCollectionViewCompositionalLayout ⭢ NSCollectionLayoutSection ⭢ NSCollec..

Figma 자동 익스포트 for Xcode, Android Studio
피그마에서는 아직까지 기존의 스케치 > 제플린 환경처럼 폰트, 이미지, 컬러를 개발툴 (AOS, iOS)에서 바로 사용할 수 있도록 익스포트 하는 기능이 제공되고 있지 않다. 물론 이미지를 익스포트 하는 기능은 훌륭하지만,, 컬러셋, 아이콘, 이미지, 타이포그래피에 대해 개발자가 한땀 한땀 각각의 컴포넌트를 직접 개발툴에서 만들거나 옮겨야 하기 때문에 적지 않은 공수와 노력이 든다. 또한 디자인 변경으로 인한 컴포넌트 업데이트 시에도 피그마에서 해당 컴포넌트를 찾아 변경된 값을 확인 후 개발툴에서 직접 수정해야 하므로 관리도 상당히 어렵고 사람이 직접 하므로 실수가 유발 될 수 있다. 이러한 이유로 피그마 커뮤니티 플러그인을 비롯해 유틸리티를 찾던 중 러시아 iOS 개발자가 만든 figma-export ..
[iOS][Swift] WiFi AP 목록 스캔 또는 장치 연결
TN3111: iOS Wi-Fi API overview 에 나온 내용을 토대로 프로토타이핑을 진행한 결과입니다. - iOS에서는 WiFi 정보를 얻기위한 범용 API 제공하지 않음, 특별한 목적을 위한 API가 제공됨 WiFi AP Scan List (현재 조회 가능한 AP 목록 스캔) CNCopyCurrentNetworkInfo (Deprecated - iOS 14) NEHotspotHelper - 앱이 사용자가 인터넷 핫스팟(사용자가 더 넓은 인터넷에 액세스하기 위해 네트워크와 상호 작용해야 하는 Wi-Fi 네트워크)을 탐색하는 데 도움이 되는 경우 Hotspot Helper API를 채택하십시오. - 이를 사용하기 위해서 별도의 등록절차를 거쳐야함 To use NEHotspotHelper you m..

Swift 요약 1
참고 : https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html Numeric Literals 정수 리터럴 let decimalInteger = 17 let binaryInteger = 0b10001 // 17 in binary notation let octalInteger = 0o21 // 17 in octal notation let hexadecimalInteger = 0x11 // 17 in hexadecimal notation 부동 소수점 리터럴 - 10진수는 접두사가 없고, 16진수일 때 0x 접두사, e로 표시되는 지수를 가질 수 있음 10진수 1.25e2 = 1.25 x 102, or 125.0. 1.25e-2 = 1.25 x 10-2..