일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IOS
- Firebase
- Session
- rxswift
- darkmode
- 개발자
- SwiftUI
- geofencing
- iOS16
- window
- Archive
- view
- appstore
- Apple
- 한글
- UIButton
- JPA
- Xcode
- Realm
- FLUTTER
- 웹뷰
- error
- Notification
- Swift
- Code
- mac
- github
- Git
- stack
- MacOS
- Today
- Total
목록IOS (174)
EEYatHo 앱 깎는 이야기
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 ..
Deferred Deeplink ( 지연된 딥링크 ) 예를 들어, 무신사(매체 앱)에서 지그재그(광고주 앱)의 특정 상품 광고를 클릭하였고, 앱스토어에서 지그재그를 설치 후 실행했더니, 광고에 나오던 상품 화면으로 바로 이동하는 것을 디퍼드 딥링크(Deferred Deeplink)라 한다. 작동 방식은 간단하다. AirBridge, OneLink 등과 같은 중간 플랫폼이 있으며, 매체 앱에서 광고를 클릭 했을 때, 미리 등록해둔 트래킹 링크를 통해 중간 플랫폼에게 디퍼드 딥링크 생성을 요청한다. 이후, 광고주 앱을 설치 후 실행했을 때, 앱에 설치해둔 중간 플랫폼의 SDK를 이용. 디퍼드 딥링크를 체크하고 내려받는다. 내려받은 디퍼드 딥링크로, 특정 행동(광고 상품 페이지나 이벤트 페이지로 이동하는 등)..
만약 string만 다루는 파일이라면, 그냥 csv로 하면 간단하고 가볍다. 하지만 난 이미지를 다뤄야 하는 상황이다.. csv 다루기 image -> data -> string으로 바꾸는 헛짓거리를 하지않고, 서버에서 내려받는 image url 형식으로도 하지않고, 그냥 엑셀답게!! 셀안에 이미지를 넣는게 목적. 때문에 image를 다룰 수 있냐?를 중점으로 xlsx 라이브러리를 찾아봤다. 제공되고 있는 xlsx 관련 라이브러리들 libxlsxwriter XlsxReaderWriter CoreXLSX 각 라이브러리 특징 1. libxlsxwriter string 읽기 불가, 쓰기 가능 image 읽기 불가, 쓰기 가능 엑셀(.xlsx) 파일 생성 가능 링크 누르면 나오는 페이지에서, 중간쯤에 Insta..