적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

초보 iOS 개발자의 일상/개발 업무 100

[iOS] Custom Push Test using Postman (feat. 푸시 sound 넣는 법, 딥링크 넣는 법)

하려던 일은 사라졌지만 덕분에 새로운 사실을 알았다. iOS에서 푸시 관련해서는 대부분 서버에서 처리를 해줘야 한다는.. 특정 푸시 알림이 올 때만 custom sound가 play 되도록 해달라는 요청을 받았다. 안드로이드는 요청이 먼저 들어와 이미 작업이 끝난 상태였는데 서버에서 변경 없이 앱에서만 처리 해줬다고 하셨다. 그런데 아무리 찾아봐도 iOS는 앱 내에서만 처리하는 방법이 안나오고 서버에서 sound 파일명을 함께 페이로드로 보내주는 방법만 나오더라. 그래서 베트남 10년차 개발자분께 자문을 구해봐도 그건 서버에서 해줘야 한다고 하고, 400명 있는 iOS 개발자 오픈채팅방에서도 동일한 답변을 해주셨다. 그래서 앱 내에서만은 처리가 불가능할 것 같다, 서버에서 추가로 보내주셔야 한다 말씀을 ..

[swift iOS] WKWebView file download 웹뷰 파일 다운로드 (feat. FileManager)

웹뷰에서 파일 다운로드가 되지 않는 문제가 발생했다. 웹뷰에서의 파일 다운로드 버튼을 클릭 시 다운로드가 아니라 해당 파일 url 링크로 이동해버리는? 것이었다. 안드로이드는 웹뷰에 파일 다운로드 리스너를 설정할 수 있도록 되어있다고 하는데, iOS는... 여기저기 찾아보아도 엄청 깔끔하게 아 이거다! 하는 방법을 찾지 못했다. 여러 방법을 짜집기 하여 webview의 decidePolicyFor navigationAction에서 받아오는 url이 .pdf 등의 파일 형식으로 끝나면 해당 url로 이동을 하는 것이 아니라 파일 앱으로 다운로드 되도록 다음과 같이 구현하였다. 1. webView의 decidePolicyFor navigationAction에서 파일 형식 감지하기 이게 최선인지는 모르겠지만 ..

[Swift iOS] STT & TTS 성능 비교 - Speech / Naver / Google

STT (Speech-to-Text) : 음성인식(Speech Recognition) 사람이 말하는 음성 언어를 컴퓨터가 해석해 그 내용을 문자 데이터로 전환하는 처리. TTS (Text-to-Speech) : 음성합성(Speech Synthesis) 사람의 목소리를 합성하여 텍스트를 음성으로 변환하는 시스템 STT / TTS 성능을 다음 세가지 플랫폼을 활용해 비교해보았다. - 애플에서 제공하는 Speech 프레임워크 - Google Cloud - Naver CLOVA STT Apple Speech Google Cloud Naver CLOVA 난이도 중 상 상 속도 말이 길어질수록 버퍼링이 생김 Good Good 정확도 70% 일상적인 말들은 인식을 아주 잘한다. 어려운 단어와 문장들은 음... 97%..

[Swift iOS] Custom Keypad 만드는 법

왼쪽처럼 기존 키패드를 사용하여 금액을 입력하는 방식에서 00 / 000 을 추가하기 위해 오른쪽 커스텀 키패드를 만들어보게 되었다. 우선 그냥 custom 키패드 뷰를 만들어준다. textField.becomeFirstResponder() 하면 자동으로 기존 키패드가 떠버리는데 inputVIew를 사용하여 이를 커스텀 키패드로 할당해줄 수 있다. 숫자 버튼들은 숫자와 동일하게 tag를 설정해주고, OK 버튼 터치시 .resignFirstResponder()로 키패드를 없애준다. @IBOutlet weak var textField: UITextField! @IBOutlet weak var keyPadView: UIView! override func viewDidLoad() { super.viewDidLo..

[Swift iOS] Barcode Generator in all types (QR, EAN8, EAN13 ...)

바코드 스캐너는 많아도 생성기는 검색해봐도 많지 않았다.. 거의다 QR 생성기이고 그중에서도 내가 필요한 EAN8 바코드 생성기는 찾기 쉽지 않더라. 내가 검색을 잘못한건지 모르겠지만 ㅎㅎ 그나마 찾은 괜찮은 iOS용 라이브러리도 Objective-C로만 되어있어서 대체 어떻게 사용해야할지 막막하던 'BarCodeKit' 그러다 한줄기 빛처럼 만나게 된 라이브러리 'RSBarcodes_Swift' 내가 찾던 ean8을 포함한 1D / 2D barcode 타입들을 전부 지원해주는 Swift 라이브러리이다. 애초에 그냥 바로 Cocoapods에서 'barcode' 라고 검색했으면 빨리 찾았을 수도 있겠지만 구글에서 swift ean8 generator 라고 검색하니 저어엉말 찾기가 힘들었다ㅠ 나는 1D ba..

[Swift iOS] ipa 파일 다운로드 링크 생성 및 설치 (Ad Hoc & Enterprise)

adhoc 혹은 Enterprise로 배포할 경우 api 설치파일이 추출된다. ad hoc은 프로비저닝에 UDID가 등록된 기기만 다운을 받을 수 있고, Enterprise는 어느 기기에나 설치할 수는 있지만 Enterprise 계정이 있어야만 사용할 수 있다. api설치 파일을 직접 전달하여 설치하도록 할 수도 있겠지만 보통은 다운로드 링크를 통해서 설치할 수 있도록 하는 경우가 많다. 기존에 만들어놓은 Firebase Hosting을 재활용하려 내용을 수정하고 api파일을 넣고 firebase deploy를 했는데 권한이 없다는 경고가 떠버렸다...!! firebase login 해보니 다른 계정으로 로그인 되어있다고 떠서 firebase logout 후 다시 로그인을 해주었더니 deploy가 잘 된..

[iOS] 푸시 알림 터치시 바로 안열리고 열기가 표시될 때

잠금 화면에서 푸시 알림을 탭 했을 때 앱으로 바로 이동하지 않고 다음과 같이 열기를 눌러야만 앱으로 이동이 되는 경우가 있다. 믿기지 않지만 잠금 화면 설정에 따른 현상으로 설정을 변경해주어야 한다고 한다. 설정 - Face ID 및 암호 / Touch ID 및 암호 들어가서 Face ID / Touch ID 를 사용하여 iPhone 잠금 해제를 설정해주어야 한다. 이게 뭔상관이야 ㅡㅡ 반신반의하며 해봤는데 진짜 이거 때문이더라.. 참고 : https://blog.supersu.kr/computer/ios/how-to-fix-notification-center-not-open-when-tapping

[Swift iOS] INIpayMobile WebView

webView에서 결제를 할 수 있도록 이니페이모바일을 구현해주어야 한다. INIpay Mobile WEB 연동매뉴얼이 제공되어있긴 하지만 뭔말이신지... ㅠ 1. 쿠키설정 - 항상 허용 이니페이를 IOS WebView에서 호출하고 안심클릭 계열 서비스를 사용하는 경우, 쿠키를 허용해주어야 한다고 하는데 예시 코드가 Object-C로 되어있더라. 찾아보았더니 Swift에서는 다음과 같이 사용할 수 있을 듯? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... HTTPCookieStorage.shar..

728x90
반응형