일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹뷰
- darkmode
- error
- 한글
- Firebase
- MacOS
- Git
- JPA
- SwiftUI
- rxswift
- github
- geofencing
- appstore
- Realm
- UIButton
- IOS
- Code
- window
- Session
- Archive
- Notification
- stack
- 개발자
- FLUTTER
- Swift
- view
- Xcode
- iOS16
- Apple
- mac
- Today
- Total
목록IOS (174)
EEYatHo 앱 깎는 이야기
고차함수 ( Higher-order function ) 함수(클로저)를 파라미터로 받거나, 함수를 리턴하는 함수 Swift에서 제공하는 고차함수를 셀수도 없이 많다. 자주 사용하는 순으로 정리한다. map filter reduce forEach compactMap flatMap map Array에서 모든 값들에게 같은 연산을 적용한 새로운 Array를 만든다. let cast = ["Vivien", "Marlon", "Kim", "Karl"] let lowercaseNames = cast.map { $0.lowercased() } // ["vivien", "marlon", "kim", "karl"] let letterCounts = cast.map { $0.count } // [6, 6, 3, 4] fi..
배경 설명 아래처럼, 네비게이션바에 커스텀 뷰를 넣는 식으로 사용하고 있었는데 navigationItem.titleView = myCustomView iOS16 에서 네비게이션바의 UI가 깨졌다. 버튼들이 클릭이 안되고, 가운데로 몰리고, 보이지 않는 경우도 있었다. 가운데로 검색바는 찌그러졌었다. iOS16 에서 UIKit 이 변경된게 무엇인지 발표하는 WWDC 도 살펴보았고, iOS16, navigation Bar 기타 등등.. 여러 구글링을 해도 답이 보이지 않았다. ( 이런거나 계속 나오고 -ㅅ- ) 삽질 끝에 발견한 현상 iOS16 이전에는, titleView 의 부모가 _UINavigationBarContentView 였다. _UINavigationBarContentView 는 titleVie..
파이어베이스에서 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..
웹뷰에서 내려오는 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..