본문 바로가기

728x90

전체 글

(104)
현재 네트워크 정보 가져오기 CNCopyCurrentNetworkInfo CNCopyCurrentNetworkInfo를 통해 현재 디바이스에서 사용중인 네트워크의 정보를 가져올 수 있다. CNCopyCurrentNetworkInfo사용 전에 알아야 할 것 아래 네 가지의 조건중 하나를 충족해야 정상적인 동작이 가능하다. 1. 앱이 위치권한(core location)수집에 대한 사용자의 수집을 받아야 한다. 2. 앱이 NEHotspotConfiguration API를 통해 네트워크를 구성한 경우 3. VPN 활성화 4. 응용 프로그램에 활성 NEDNSSettingsManager 구성이 설치된 경우(NEDNSSettingManager ? 잘 모름) 요구사항이 충족된다면 네트워크 정보를 리턴하고, 그러지 않을 경우 null을 갖는다. Deprecated CNCopyCurrentNe..
NEHotspotNetwork를 이용한 현재 Wi-Fi 상태 가져오기 Wi-Fi연결에 대한 이전 글에 이은 내용 NEHotspotNetwork는 명령 또는 응답과 관련된 Wi-Fi네트워크에 대한 정보다. 명령또는 응답이라는 말이 무엇을 말하는지 잘 모르겠지만... 아래와 같은 속성을 지니고 있다. 이전 게시물에서 NEHotspotConfigurationManager의 apply호출은 Wi-Fi 연결 성공여부를 알 수 없다고 했다. 대신 연결 시도 결과 error 를 받은 후, NEHotspotNetwork의 fetchCurrent를 호출하여 현재 Wi-Fi의 정보를 확인하면 된다. class func fetchCurrent(completionHandler: @escaping (NEHotspotNetwork?) -> Void) 1. Signing & Capabilities에..
NEHotspotConfigurationManager를 이용한 Wi-Fi 연결하기 NEHotspotConfigurationManager Wi-Fi 네트웤의 핫스팟 구성을 적용하고 제거하는 관리자 NEHotspotConfiguration을 생성하여 Wi-Fi 연결을 시도할 수 있다. 주의! 앱이 NEHotspotConfigurationManager를 통해 새 핫스판 구성을 만들고 이를 Wi-Fi 네트워크에 적용하거나 이전에 구성된 네트워크를 업데이트하려고 시도하면 기기에서 사용자에게 명시적인 동의를 받아야만 한다. 사용자의 동의가 이뤄지지 않을 경우 동작이 불가하다. 1. 코드 작성전에 Signing & Capabilities에서 '+Capability' 버튼을 눌러 Hotspot Configuration을 추가한다. 2. import! import NetworkExtension imp..
배열을 문자열로 만들기 join() arr = ["a", "b", "c", "d"] 배열을 문자열 "a,b,c,d"로 만들고 싶다면 join을 사용하자! arr = ["a", "b", "c", "d"] print(','.join(arr)) #결과 #a,b,c,d 구분자를 앞에 써주면 된다. 이 때 배열의 요소가 문자가 아닌 경우! 에러가 발생하게 되는데 TypeError: sequence item 0: expected str instance, int found 아래와 같은 방법으로 해결이 가능하다. arr = [1 ,2, 3, 4] print(','.join(arr)) #TypeError: sequence item 0: expected str instance, int found 발생! print(','.join(str(_) for _ in..
Framework와 Library의 차이 Framework 프레임워크는 뼈대를 제공하는것이다. 앱 개발시 코드, 알고리즘, 디비연동, 화면 이동의 룰 등 과 같이 기능들을 위해 뼈대를 제공하고 프로그래머는 제공된 뼈대 위에서 코드를 작성한다. Framework는 통합성, 일관성 부족등의 문제를 해결할 방법중 하나라고 할 수 있다. 프레임워크의 특징 - 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어있다. - 컴포넌트들을 재사용이 가능하다. - 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다. - 제어의 역전(Inversion Of Control)이 적용 되어 있다. Library 라이브러리는 활용가능한 코드의 집약체라고 할 수 있다. 흔히들 cocoapods으로 라이브러리를 임포트 하고 라이브러리에 작성된 코드를 사용하..
[iOS] SnapKit 사용법 🤔왜 이걸 쓰지? 개발 시 스토리보드를 사용하여 화면의 UI를 구성할 수도 있지만 Autolayout을 코드로 작성하는 방법도 있다. NSLayoutConstraint를 직접 지정해주며 하나하나 제약을 적용해 주는 방법이 그것인데, 화면을 구성하는 UI요소들이 많아질 수록 제약에 필요한 코드양이 상당해지며 가독성도 그리 좋지 못하다고 느꼈다. SnapKit은 간결한 코드로 NSLayoutConstraint를 쉽게 제어할 수 있도록 해준다. 간단히 SnapKit사용법과 샘플프로젝트에 적용해본다. 그럼 시작해보자. 프로젝트에 SnapKit을 import해보자. 난 SPM(SwiftPackageManager )를 사용해서 추가해줬다. SPM 편해. ViewController.swift를 열자. SnapKit을..

728x90