목록IOS (630)
투케이2K
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/evjtcQ/btri4Y5n61a/VY0gYe54zsNTmKlvK9Jt20/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명] [소스 코드] import UIKit import AVFoundation import QRCodeReader // MARK: [클래스에 QRCodeReaderViewControllerDelegate 추가 실시] class ViewController: UIViewController, QRCodeReaderViewControllerDelegate { /* MARK: [QR 코드 스캔 필요 사항] 1. info.plist 권한 : Privacy - Camera Usage Description 2. 라이브러리 설치 git : https://github.com/yannickl/QRCodeReader.swift.gi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kXUbe/btri7Qkm9ck/KXLDRbOJUWgrSgEx6GD0F1/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명]
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nRn9Z/btri0aLtftA/WCR4S0otr2BfxfH1KniKhk/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [필요 설정] [소스 코드 : ExtendsionUtil] import Foundation import UIKit /* [ExtensionUtil 파일] 1. 생성 방법 : New File >> Swift File 2. 호출 방법 : 각 데이터 타입에 맞게 즉시 호출 (ex - str.euals(_string : data)) */ extension UIColor { convenience init(red: Int, green: Int, blue: Int) { assert(red >= 0 && red = 0 && green = 0 && blue > 16) & 0xFF, green: (rgb >> 8) & 0xFF, blue: rgb ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wAnjF/btriMINYU3t/4NWKN0E4dlaG9xXxOHNvwK/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] // MARK: [모바일 화면 세로 고정 : 함수 추가] func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { print("") print("===============================") print("[AppDelegate >> supportedInterfaceOrientationsFor() : 모바일 화면 세로 고정]") print("===============================") print("") // [세..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d0M7tK/btriHBWaoH5/MM8jctHhqAifKtsCm94a6k/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [필요 설정] [소스 코드 : 웹뷰 메인] import UIKit // MARK: [웹뷰를 사용하기 위한 import] import WebKit class ViewController: UIViewController , WKNavigationDelegate, WKScriptMessageHandler , WKUIDelegate { // MARK: [클래스 상속 설명] /* 1. WKNavigationDelegate : 웹뷰 실시간 로드 상태 감지 2. WKScriptMessageHandler : 자바스크립트 통신 사용 3. WKUIDelegate : alert 팝업창 이벤트 감지 */ // MARK: [액티비티 메모리 로드 수행 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pIAK1/btriFh4taYL/84KmgrMCfSiaRXlxjPJ6vK/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] import UIKit class ViewController: UIViewController { @IBOutlet weak var displayText: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } // [흔들기 이벤트 동작 시작] var startMotionTime = "" var cancleMotionTime = "" var endMotionTime = "" override func motionBegan(_ motion: UIEvent.EventSubtype,..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfpZDG/btriCEsnHKE/wx6s2KyeQP32aW3Bxu8p51/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] // [외부 앱 실행 실시] /* 1. tel , mailto , sms , l 등을 사용해 디바이스 외부 앱을 수행할 수 있습니다 2. 전화 걸기 : tel:010-1234-5678 3. 메일 보내기 : mailto:honggildung@test.com 4. 문자 보내기 : sms:010-5678-1234 5. 링크 이동 : https://naver.com 6. 호출 예시 : goDeviceApp(_url: "tel:010-1234-5678") */ func goDeviceApp(_url : String) { //스키마명을 사용해 외부앱 실행 실시 [사용가능한 url 확인] if let openApp = URL(s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VRQn5/btriFjgJ28Z/MNH2vJ7nv8AdbkVKmTV7q1/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] // // SceneDelegate.swift // testCode // // Created by lotecs on 2021/10/16. // import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // Use this method to optionally configure and atta..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTUlFE/btriBdaVCC8/ESKO5IIbNHa5RIhD7tcp31/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] func checkAppVersion() -> String { /* [앱 버전 정보 확인 방법] 1. 앱 스토어 사이트 접속 : https://www.apple.com/kr/app-store/ 2. 버전 정보를 확인하려는 앱 검색 : ex) 크롬 3. 앱 아이디 확인 실시 : https://apps.apple.com/kr/app/google-chrome/id535886823 */ // [테스트 크롬 / 앱스토어에서 크롬으로 ID 확인 가능] let appleID = "535886823" guard let url = URL(string: "http://itunes.apple.com/lookup?id=\(appleID)..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVe6Gb/btriArHwx7s/KktnpTALhxNJn0vpqfckN1/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] func checkBuildInfo() { // [초기 변수 선언 실시] var appName = "" var appVersion = "" var appBuildVersion = "" var appBundleIdentifier = "" if let infomation = Bundle.main.infoDictionary { if let Name = infomation["CFBundleDisplayName"] as? String { appName = Name } if let Version = infomation["CFBundleShortVersionString"] as? String { appVersion = Versi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d1GZag/btriFtXHMBu/W6Tu19BsI9BCMbDzMKXE5k/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명]
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKJFpI/btriAHDf7Od/3hs66fROkNiYCAXCRdlRZ0/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] import Foundation import Security import UIKit class S_Keychain { // MARK: [키 체인 클래스 사용 방법] /* 1. 디바이스 정보 저장 : S_Keychain().createDeviceID() => 리턴 값 true / false 2. 디바이스 정보 조회 : S_Keychain().getDeviceID() => 저장된 디바이스 고유값 문자열 3. 디바이스 정보 삭제 : S_Keychain().deleteDeviceID() => 리턴 값 true / false */ // MARK: [키 체인 설명] /* 1. Keychain 은 디바이스 안에 암호화된 데이터 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DK0Lr/btriBcJlBq3/bxKs2HNdmZYu1FVz8F7c50/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] import Foundation class S_Preference { //MARK: [클래스 기본 설명] /* 1. UserDefaults 사용해 모바일 데이터 저장 클래스 2. UserDefaults : Key-Value 형태를 저장 3. UserDefaults : 앱이 종료되어도 값이 저장되지만, 앱이 삭제되면 저장된 데이터가 사라짐 4. UserDefaults : Int, Double, Float, String, Bool, Data 등 데이터 타입을 저장 실시 5. 참고 : 앱이 삭제되어도 데이터가 유지되길 원한다면 Core Data 혹은 KeyChain, NSKeyedArchiever등을 이용한 파일 형태로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/YMC9z/btriwwno2KC/KADtxSJKLKIQ5BqTzNdDF0/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [손님 : 접속하는 쪽] [주인 : 접속을 받아서 데이터 처리하는 쪽 : 프로젝트 설정 부분] [주인 : 소스코드 : SceneDelegate] import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { // 전역 변수 선언 [스키마 데이터를 전송할 컨트롤러] var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { print("") print("=======..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dd6hZV/btrin1AOd31/477mv1VP697C154EFP34ok/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명 : LSApplicationQueriesSchemes] [소스 코드] // [외부 앱 실행 실시] /* 1. https://www.apple.com/kr/ 사이트에 접속해서 특정 앱 주소를 확인합니다 2. 크롬 앱 id 확인 : https://apps.apple.com/kr/app/google-chrome/id535886823 [id535886823 부분을 사용해서 외부앱을 실행합니다] 3. 크롬 스키마 확인 : googlechrome:// 4. 로직 : 외부앱 설치되었을 경우 >> 외부앱 실행 (스키마) / 외부앱이 설치되지 않은 경우 앱 스토어 이동 (앱 id) 5. 호출 예시 : goOutApp(_scheme..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/em4vWZ/btriivhByKv/4hnmVt3iqt7vIke85RGsMk/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [소스 코드] // [외부 링크 페이지 이동 실시] // SFSafariViewController 사용 시 필요 : import SafariServices func intentWebSiteLink(_url : String){ // [http 주소를 포함한지 확인] if _url.hasPrefix("http") == true || _url.hasPrefix("https") == true { print("") print("===============================") print("[intentWebSiteLink : 웹사이트 이동 실시]") print("url : ", _url) print("===============..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lRMEI/btrigsskfAW/5nqcbEd2UXTHL7cHKNhAZk/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명] [소스 코드] func requestGet() { // [URL 지정 및 파라미터 값 지정 실시] var urlComponents = URLComponents(string: "https://jsonplaceholder.typicode.com/posts?") let paramQuery_1 = URLQueryItem(name: "userId", value: "1") let paramQuery_2 = URLQueryItem(name: "id", value: "1") urlComponents?.queryItems?.append(paramQuery_1) // 파라미터 지정 urlComponents?.queryItems?...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cj4gXR/btrid6VXKGf/SmY5vm3K7gxCAG8srbpwNK/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명] [소스 코드] import UIKit import AVFoundation import Photos import CoreLocation import CoreBluetooth // [CLLocationManagerDelegate 추가 필요] class MainController: UIViewController, CBPeripheralManagerDelegate { // [MainController : 버튼 UI 객체 정의 실시] @IBOutlet weak var intentBtn: UIButton! override func viewDidLoad() { super.viewDidLoad() // Do any additi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/HTUAR/btrh4Nxw3ff/O7yI61BcgfOibnjQhkJhR0/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명] [소스 코드] import UIKit import AVFoundation import Photos import CoreLocation import CoreBluetooth // [CLLocationManagerDelegate 추가 필요] class MainController: UIViewController , CLLocationManagerDelegate { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. print("") print("============================..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dNo0QB/btrhVZxFuwF/XLeM8Y8fkRtkfKHcyTJnh1/img.png)
[개발 환경 설정] 개발 툴 : XCODE 개발 언어 : SWIFT [방법 설명] [소스 코드] import UIKit import AVFoundation import Photos import CoreLocation import CoreBluetooth class MainController: UIViewController { /* MARK: - [블루투스 목록 스캔 및 블루투스 연결 수행] 1. 필요 권한 요청 [info] : - Privacy - Bluetooth Always Usage Description - Privacy - Bluetooth Peripheral Usage Description 2. 필요 import : - import CoreBluetooth - import UIKit ..