일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Apple
- FLUTTER
- Realm
- 한글
- mac
- 웹뷰
- Firebase
- MacOS
- Notification
- UIButton
- github
- Xcode
- Archive
- rxswift
- 개발자
- Git
- error
- geofencing
- window
- JPA
- 이미지
- iOS16
- shorebird
- Session
- appstore
- Swift
- darkmode
- IOS
- SwiftUI
- Code
- Today
- Total
목록IOS (176)
EEYatHo 앱 깎는 이야기

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..
NavigationBar에 버튼을 넣기위해서, UIBarButtonItem 같은 버튼을 사용할 때, tintColor가 활성화되어 이미지 색이 자동으로 바뀌곤 한다. 해당 색은 NavigationBar.tintColor 혹은 UIBarButtonItem.tintColor를 조절하여 컨트롤 할 수 있다. 하지만 텍스트나 이미지에 tintColor를 적용하고 싶지 않을 때 도 있다. 그럴 때는, 텍스트에 attribute를 입히거나, let button = UIBarButtonItem(title: "테스트텍스트", style: .done, target: self, action: #selector(testFunc)) button.setTitleTextAttributes([.foregroundColor : UI..
boundingRect Swift에는 NSString, NSAttributedString를 감싸는 CGRect를 계산해주는 메소드가 있다. extension NSString { // ... @available(iOS 7.0, *) open func boundingRect(with size: CGSize, options: NSStringDrawingOptions = [], attributes: [NSAttributedString.Key : Any]? = nil, context: NSStringDrawingContext?) -> CGRect } extension NSAttributedString { // ... @available(iOS 6.0, *) open func boundingRect(with siz..
URL scheme을 open하여 전화걸기, 문자보내기, 메일보내기, facetime걸기, 사파리열기, 파일경로열기 등 다양한 행동을 할 수 있다 if let url = URL(string: "tel://01012341234") { UIApplication.shared.open(url) } 다양한 URL Scheme들 URL Schemes 실행되는 앱, 설명 URL 예시 mailto:[이메일] Mail 앱의 메일 작성 화면으로 이동 됨. mailto:example@naver.com message: 그냥 Mail 앱 오픈. 뒤에 이메일 써도 안먹힘 message: tel://[전화번호] telprompt://[전화번호] ActionSheet 형태로 통화버튼이 나오고, 클릭시 바로 전화 걸림. 하이폰(-) ..

CocoaPod(코코아팟), Carthage(카르타고), PackageManager(패키지 매니저, PM) 같은 서드파티 관리 도구들을 이용하여 다양한 오픈소스를 사용하곤 한다. 이런 오픈소스들의 github를 보면 라이센스가 달려있는 걸 볼 수 있다. ex) SpinKit의 MIT 라이센스 SpinKit Github 라이센스에 따라, 상업적으로 써도 되는건지, 명시를 해야하는 것인지 나뉜다. 가장 많이 사용되는 라이센스 MIT 미국 매사추세츠 공과대학교(MIT)에서, 해당 대학의 소프트웨어 공학도들을 돕기 위해 개발한 라이센스. 수정, 배포, 실무, 상업적 모두 자유로우며, 저작권 및 허가 표시를 모든 복제물 또는 중요한 부분에 기재해야 한다. 단, 이 오픈소스로 인한 피해는 전적으로 사용자의 책임이다..
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)..
유니코드로 한글을 표현하는 2가지 방법 1. 완성형 (precomposed) 초성,중성,종성 3개를 조합해서 한 글자를 표현 ex. 단 = ㄷ + ㅏ + ㄴ // "\u{1103}\u{1161}\u{11AB}" 2. 조합형 (decomposed) 유니코드에 등록된 모든 한글 중, 1개를 골라서 사용 ex. 단 = 단 // "\u{B2E8}" 확인하는 방법 : .unicodeScalars print("단".unicodeScalars) // 완성형 // - 0 : "\u{B2E8}" 단 // 조합형 // - 0 : "\u{1103}" ㄷ // - 1 : "\u{1161}" ㅏ // - 2 : "\u{11AB}" ㄴ 조합형(decomposed)의 문제 기본적으로 스위프트에서 만들어진 문자열들은 완성형으로 되어..
UserDefaults 속성 목록 데이터들만 넣을 수 있다. ( NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary ) .plist(property list) 파일 형태로 저장되기 때문이다. 앱 내의 Library/Preferences 폴더에 저장된다. 사용자 정의 개체는 Encoding을 통해 NSData로 전환하여 넣을 수 있다. 큰 데이터는 넣는 것은 좋지않다. 앱이 실행될 때 UserDefaults의 plist파일이 메모리에 한번에 load되기 때문이다. 앱 사용자가 특정 툴을 사용하는 등 UserDefaults에 쉽게 접근하고 수정할 수 있다. 따라서 인앱 구매 여부, API key 등 보안이 필요한 데이터를 넣어서는 안된다. KeyChain ..