일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UIButton
- stack
- rxswift
- Xcode
- Archive
- view
- Realm
- window
- Swift
- FLUTTER
- Session
- Code
- 개발자
- darkmode
- Notification
- appstore
- Git
- Python
- iOS16
- Firebase
- MacOS
- 웹뷰
- github
- mac
- SwiftUI
- error
- 한글
- Apple
- JPA
- IOS
- Today
- Total
목록iOS, Swift/Feature (14)
EEYatHo 앱 깎는 이야기
4개 파일로 간단히 구현.UIKit의 ViewController로 QR기능을 구현 한 뒤, SwiftUI로 변경하는 예시코드들. ContentViewimport SwiftUIstruct ContentView: View { @State private var uriFromQR: String = "" var body: some View { ZStack { // QR Scanner QRCameraView(uriFromQR: $uriFromQR) VStack { Spacer() // Scan 한 값을 보여주는 T..
권한 작업 Info.plist 에 추가 Privacy - Motion Usage Description 걸음수 데이터 측정을 위해 데이터 접근 권한이 필요합니다. 안하면 crash남 코드 CoreMotion.CMPedometer.queryPedometerData 활용 3초마다 오늘 00시 ~ 현재시간까지의 걸음수를 query import CoreMotion final class CoreMotionService { static let shared = CoreMotionService() private var pedoMeter = CMPedometer() private init() { Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #select..
CHHapticEngine iOS 에서 제공하는 CHHapticEngine 을 이용하여 다양한 진동을 구현할 수 있다. 보다 자세한 설명을 원한다면 공식 링크에서 확인하기. CHHapticEngine 링크 큰 개념은, HapticEngine 에 진동 Pattern 을 넣어서 Player 를 생성한다. Player 를 start 및 stop 한다. CHHapticPattern HapticPattern 에는 지속시간과 세기가 있으며, 세기에는 강도(hapticIntensity) 와 날카로움(hapticSharpness) 이 있다. 강도는 클수록 묵직한 느낌이다. 내 생각엔 진폭을 담당한다. 날카로움은 클수록 따가운(?) 느낌이다. 내 생각엔 진동수를 담당한다. 애플에서 제공하는 예시 프로젝트를 실행해보면 직..
줄바꿈을 어떻게 구현해야할지 고려하지 않고 손쉽게 이미지를 텍스트 옆에 넣을 수 있다. attributedString 에 이미지를 넣는 것이다. 구현 ( with extension ) extension NSMutableAttributedString { func appendImage(image: UIImage, bounds: CGRect) { let imageAttachment = NSTextAttachment() imageAttachment.image = image imageAttachment.bounds = bounds self.append(NSAttributedString(attachment: imageAttachment)) } func insertImage(image: UIImage, bounds:..
파이어베이스에서 Crashlytics를 사용하려면 디버그 기호파일(dSYM)을 업로드 해야한다. 수동으로 dSYM파일을 다운 or 추출해서 업로드하는 방법도 있지만, 빌드 마지막 단계에 Xcode에서 제공하는 Run Script를 삽입하여, 자동으로 업로드하는 방법이 있다. 관련 링크 https://firebase.google.com/docs/crashlytics/get-started?authuser=0&hl=ko&platform=ios#uikit https://firebase.google.com/docs/ios/installation-methods?authuser=0&hl=ko 1. dSYM 추출 여부 세팅 Build Settings dSYM 검색 Debug Information Format에서 Deb..
UIImageView 이미지 다운로드 구현 Placeholder Image 지원 Image 넣는 부분은 main queue로 작업 외부 라이브러리 없이 URLSesstion dataTask 사용 extension UIImageView { func imageDown(urlStr: String, placeholderImage: UIImage? = nil) { func _setImage(image: UIImage?) { DispatchQueue.main.async { [weak self] in self?.image = image } } // 캐싱 체크 if let image = ImageCacheManager.shared.getImage(urlStr) { _setImage(image: image) return..
TTS ( Text To Speech ) Text To Speech : 말 그대로 문자열을, 목소리로 읽어주는 것을 말한다. Swift 에서는 기본적으로 지원하는 기능을 사용하면 된다. ( AVSpeechSynthesizer ) SingleTon 으로 간단한 구현 Swift 에서 정말 간단하게 사용할 수 있도록 제공하고 있다. AVFoundation 을 import 하고, 인터페이스 function 2개만 ( play, stop ) 구현하면 되는 수준. 간단하게 하기위해, language 를 ko-KR 로 고정했기에, 한국 발음만 나오게 된다. import AVFoundation class TTSManager { static let shared = TTSManager() private let synthe..
Html 문법을 지원하는0 NSMutableAttributedString 생성자 NSMutableAttributedString( data: data, // htmlString -> data options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil ) Html String -> NSMutableAttributedString 기본형 func htmlToAtt(htmlStr: String) -> NSMutableAttributedString? { guard let data = htmlStr.data(using: .utf8)..