일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- it
- dart
- ToDoRim
- tip
- SwiftGen
- listview
- OSLog
- Leetcode
- swiftlint
- pubspec
- github
- pubspec.yaml
- COMMIT
- GIT
- protocol
- designPattern
- Swift
- algorithm
- reetcode
- flutter
- IOS
- Equatable
- Extentsion
- basic
- xcode
- enumerations
- toyproject
- Widget
- UIAccessibility
- keyWindow
- Today
- Total
목록IOS (55)
수니의 개발새발
📌 이번 글은 외부 브라우저(사파리)로 링크를 여는 방법입니다. UIApplication.shared.open() func openExternalLink(urlStr: String, _ handler:(() -> Void)? = nil) { guard let url = URL(string: urlStr) else { return } if #available(iOS 10.0, *) { UIApplication.shared.open(url, options: [:]) { (result) in handler?() } } else { UIApplication.shared.openURL(url) handler?() } } 사파리로 링크를 여는 함수입니다. 👩🏻💻 사용 예제 import UIKit class Uti..
📌 이번 글은 현재 시뮬레이터 구동 여부를 확인하는 방법입니다. SIMULATOR_DEVICE_NAME func isSimulator() -> Bool { return ProcessInfo.processInfo.environment["SIMULATOR_DEVICE_NAME"] != nil } 시뮬레이터가 구동 중이면 true를 반환하는 함수입니다. 👩🏻💻 사용 예제 import UIKit class Utils { /** # isSimulator - Returns: Bool - Note: 시뮬레이터 구동 여부 반환 */ static func isSimulator() -> Bool { return ProcessInfo.processInfo.environment["SIMULATOR_DEVICE_NAME"] ..
iOS4까지는 iOS 기기의 고유 넘버로 udid를 사용하였으나, 개인정보 문제로 iOS5부터는 udid가 사라지고 uudi(임의로 생성한 고유값)를 사용합니다. 📌 이번 글은 디바이스 고유넘버(device uuid)를 구하는 방법입니다. uuidString func getDeviceUUID() -> String { return UIDevice.current.identifierForVendor!.uuidString } 디바이스의 고유 넘버를 구하는 함수입니다. 👩🏻💻 사용 예제 import UIKit class Utils { /** # getDeviceUUID - Note: 디바이스 고유 넘버 반환 */ static func getDeviceUUID() -> String { return UIDevice..
📌 이번 글은 현재 APP의 번들 버전(Bundle Version)을 구하는 방법입니다. CFBundleShortVersionString Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String 현재 APP의 번들 버전을 구하는 코드입니다. 👩🏻💻 사용 예제 import UIKit class Utils { /** # version - Note: 현재 번들 버전 반환 */ static func version() -> String { return Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String } } 공통적으로 사용하는 변수 및 함수들을 Utils 라는 공통 클래스를..
화면을 그리다 보면 노치 영역으로 인해 레이아웃이 깨져 골치 아플 때가 많죠. 그래서 SafeArea Inset값이 디바이스마다 변동되어 자주 필요로 합니다. 📌 이번 글은 현재 디바이스의 SafeArea의 top.bottom 영역 값을 구하는 방법입니다. SafeArea Top Inset func safeAreaTopInset() -> CGFloat { let statusHeight = UIApplication.shared.statusBarFrame.size.height // 상태바 높이 if #available(iOS 11.0, *) { let window = UIApplication.shared.keyWindow let topPadding = window?.safeAreaInsets.top retu..
올해 초부터 종종 사이드 프로젝트로 접근성 적용 데모와 라이브러리를 만들어왔어요. 처음엔 어렵고 모르는 투성이었지만 공부하고 만들면서 지금은 굉장히 관심이 깊어졌어요. 그래서 카테고리를 따로 빼서, 접근성 적용에 대한 글들도 올려보려고 합니다. 📌 이번 글은 UIAccessibility.post(notification:argument:)을 사용하여 특정 상황에 Voice Over가 알리는 기능을 구현하는 방법입니다. 1. UIAccessibility.post(notification:argument:) Posts a notification to assistive apps. - Apple Developer Documentation Apple Developer 에서는 이 메서드가 앱에 접근성 알림을 게시해준다..
며칠 전에 회사에서 새로운 하이브리드 앱을 구축하다가 웹뷰 로드가 안되는 상황이 발생했어요. 하이브리드 앱을 항상 구축하고 운영해오다 보니 당연히 설정했을 거라고 생각하고(나 자신을 너무 믿어버린..) http 허용을 먼저 확인할 생각 안하고 웹뷰 디버깅만 하면서 삽질했지 모예요.. (゚д゚ノ;) ノ 이제는 절대절대 먼저 확인하라고 블로그에 박제해버려야겠어요! \\٩(๑`^´๑)۶//// 📌 이번 글은 iOS9이상 버전부터 HTTP URL을 허용하는 방법입니다. 1. info.plist NSAppTransportSecurity NSAllowsArbitraryLoads info.plist에 해당 Source Code를 추가하거나 사진처럼 App Transport Security Settings > Allo..
iOS13부터 다크모드가 생겼어요. 그러면서 Xcode 디폴트가 다크모드/라이트모드 모두 지원 상태로 되어버려서 하나만 지원하고 싶을 때 설정을 해줘야 해요! 📌 이번 글은 iOS13에서 라이트모드(또는 다크모드)만 지원하기 위한 방법입니다. 1. info.plist UIUserInterfaceStyle Light info.plist에 해당 Source Code를 추가하거나 사진처럼 Appearance를 추가합니다. 다크모드만 지원하고 싶을 때는 Light -> Dark로 설정합니다. 2. AppDelegate.swift AppDelegate.swift > didFinishLaunchingWithOptions에서 window 변수에 대해 아래와 같이 설정해도 됩니다. if #available(iOS 13..