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

UIImagePickerController 로 카메라를 여는 소스를 작성할 때 요따구로 썼었는데, ( iPad 부분은 덤 ) camera.sourceType = .camera camera.allowsEditing = true if UIDevice.current.userInterfaceIdiom == .pad { //디바이스 타입이 iPad일때 if let popoverController = camera.popoverPresentationController { popoverController.sourceView = view popoverController.sourceRect = CGRect(x: view.bounds.midX, y: view.bounds.midY, width: 0, height: 0) po..
전화온거 감지. ( 인터럽트 발생 및 감지 ) 1. import import AVFoundation 2. 노티 옵저버 추가 ( AVAudioSession.interruptionNotification ) NotificationCenter.default.addObserver(self, selector: #selector(handleInterruptionOccured(notification:)), name: AVAudioSession.interruptionNotification, object: AVAudioSession.sharedInstance()) 3. 처리 로직 @objc private func handleInterruptionOccured(notification: Notification) { let i..
UI 컴포넌트를 만들 때 너무나도 당연히, UIView를 서브클래싱하고, addSubView로 써왔다. 그런데 왠걸? UIViewContoller를 서브클래싱해서 만들어놓고, addChild 하는 코드를 보았다. 그래서 사용법을 따져보니, UIView 서브클래싱 삽입 pView.addSubView(cView) 제거 cView.removeFromSuperview() UIViewContoller 서브클래싱 삽입 pVC.addChild(cVC) pVC.view.addSubView(cVC.view) cVC.didMove(toPatent: pVC) 삭제 cVC.willMove(toParent: nil) cVC.view.removeFromSuperview() cVC.removeFromParent() 와... 비효율..

CPU(칩셋)는 아래와 같은 다양한 특징이 있다. - 한번에 처리하는 데이터의 양 ( 32bit, 64bit 등 ) - 코어의 구성 ( 싱글/멀티 프로스세, 코어 갯수 등 ) - ISA ( 명령어 세트 아키텍처 ) ( CISC, RISC, VLIW ) - 쿨럭 수 - 쿨럭당 성능 - 레지스터, ALU, 캐시, 디코더의 세부 사항 - 플린 분류 - 펭의 분류 등등... 공통된 특징을 가진 CPU 칩셋을 제작한 뒤, 이름을 붙힌게 CPU아키텍처이다. 컴퓨터에서 자주 들었던 x86, x64, AMD64 등을 말한다. 특정 CPU아키텍처에서, 유저가 컴퓨터를 쉽게 사용할 수 있도록, 중간 역할을 하는 것이 운영체제(OS)이다. 때문에 운영체제는, CPU아키텍처에 종속될 수 밖에 없다. 컴퓨터의 CPU아키텍처는,..
차이점 NSMutableDictionary 수정, 삭제, 삽입 가능. NSDictionary 수정, 삭제, 삽입 불가능. 그런데 막상 코드를 보면, NSDictionary 에 .setValue(, forKey: ) 함수가 존재한다. 그래서 실제로 해보았는데, 오류가 발생한다. 실행 코드. let d: NSDictionary = NSDictionary(object: "object", forKey: "key" as NSCopying) d.setValue("value", forKey: "key2") 오류. Thread 1: "[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key key2." 반면, NSMuta..
사내에서 AirBridge를 쓰고 있길래 뭐하는 건가..해서 쪼끔 알아보았다. 특정 광고에 대해, 전환률이나 클릭율, 설치율 등 광고의 성과를 분석할 수 있으면 좋을 것이다. 이 성과분석의 핵심은, 광고를 본 사람과 이후 행동을 한 사람이 동일인물인지 판단하는 것. 즉 트래킹이다. 기존에 트래킹은 모바일 앱에서는 ADID, UDID 등 모바일 웹과 PC웹에서는 쿠키, 세션 등 한 플랫폼에서 독립적으로 이루어졌다. 이렇게 파편화된 것을 연결하여 트래킹 및 성과분석 해주는 툴이 에어브릿지다. 이메일이나 전화번호 등 확실한 식별자를 이용하여 매칭하는 시스템과, 확률적으로 매칭하는 시스템을 모두 사용하며, 어뷰징 방지 시스템, 다양한 커스터마이징 등이 가능하다. 데이터 만능 시대에 살다보니 이런 사업도 다 보네..
AppDelegate로 분기한다. deepLink func application(_ application: UIApplication, handleOpen url: URL) -> Bool { ... let deepLinkUrl = url ... } universerLink func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { ... let universalLinkUrl = userActivity.webpageURL ... } push func application(_ a..
나중에 시간 지나서 보면, 잘 할 수 있도록 기록하는 용도. .github/workflows/swift.yml 에 있는 파일로 여러 스크립트나 옵션들 설정 가능. gpg로 필요한 certification 이랑, provision 암호화하고 .github/secrets에 올림. 복호화에 필요한 정보는 깃헙액션 옵션에 secrets에 올림. name: Swift on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: macos-latest # macOS 최신버전이서 빌드한다는 뜻 env: XC_VERSION: ${{ '12.5.1' }} XC_PROJECT: ${{ 'Nemo.xcworkspace' }} X..