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

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..
웹뷰에서 내려오는 status code 로 에러처리를 하려하는데, 테스트할 만한 stub이 없어서 정리. 테스트할 status code URL 404 https://github.com/qwdscxzvdw 502 https://scrap.uznam8x.space/ 코드 /* 웹뷰 response가 오고 난 후, 다시한번 탐색여부를 결정하는 대리자 메소드 statusCode로 에러처리 decidePolicyFor navigationAction에서 탐색을 거부했다면 이 대리자까지 오지않음 */ func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (W..

앱내결제 구현 후 프로덕트에 이미지를 추가하는데, 배경이 투명한 png를 그대로 사용했더니 위와같은 문제가 발생 PNG 파일에서, 알파 채널 또는 투명도 제거하기 1. 미리보기 > 파일 > 내보내기 2. PNG포맷에서 알파 체크해제 후 저장 or JPEG 포맷으로 저장

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)에서, 해당 대학의 소프트웨어 공학도들을 돕기 위해 개발한 라이센스. 수정, 배포, 실무, 상업적 모두 자유로우며, 저작권 및 허가 표시를 모든 복제물 또는 중요한 부분에 기재해야 한다. 단, 이 오픈소스로 인한 피해는 전적으로 사용자의 책임이다..