프로그래밍 (299) 썸네일형 리스트형 [flutter] 플러그인 프로젝트 자동 생성 요소 1. 플러그인 프로젝트 생성flutter create --org com.example --template=plugin --platforms=android,ios -i swift hello_world 생성된 플러그인 클래스 확인/pubspec.yaml 파일의 fultter - plugin - platforms 에서 각 플랫폼별로 패키지명이나 클래스를 확인할 수 있다.flutter: plugin: ios: pluginClass: HelloWorldPlugin ./lib 하위에 dart 파일들이 생성된다.hello_world.darthello_world_platform_interface.darthello_world_method_channel.dart 이 파일은 dart에서 각 플랫폼.. [flutter] iOS 기본 모듈 구성 방식 Integrate a Flutter module into your iOS project | Flutter Integrate a Flutter module into your iOS projectLearn how to integrate a Flutter module into your existing iOS project.docs.flutter.dev 모듈 만들기모듈템플릿을 사용해 프로젝트를 생성cd some/path/flutter create --template module my_module 기본 구성요소Runner xcode 프로젝트와 워크스페이스 : ./.ios (숨김폴더)dart 소스 : ./lib테스트 : ./testflutter 프로젝트 정보 : ./pubspec.yaml ./.ios 폴더의 경우 .. [concurrency] Task, TaskGroup, task timeout Task @frozen struct Task where Success: Sendable, Failure: Error init(priority: TaskPriority?, operation: () async -> Success) init(priority: TaskPriority?, operation: () async throws -> Success) TaskGroup @frozen struct TaskGroup where ChildTaskResult: Sendable TaskGroup은 별도의 메서드를 사용해 생성해야 하며, 생성된 task 내에서만 사용해야 함. 주요함수 func addTask(priority: TaskPriority?, operation: () async -> ChildTaskResul.. github ssh 설정 ssh 키 생성 ssh-keygen -t rsa -C "email" 공개키 등록 공개키(pub) 파일내용을 github > Settings > SSH and GPG Keys 에서 ssh 키 등록 config 생성 host는 실제가 아닌 구분을 위한 이름으로 remote 등록시에 사용된다. Host id1.github.com HostName github.com IdentityFile ~/.ssh/개인키1_파일명 User git Host id2.github.com HostName github.com IdentityFile ~/.ssh/개인키2_파일명 User git Port 22 git remote 등록 SSH를 사용하는 경우 http와는 다른 url 형식 사용 git@host 중 host는 실제 도메인이 .. [WebRTC] peerConnection.statistics() 중 자주 확인하는 데이터 매번 키와 필드를 찾는게 구찮아서 일단 자주사용하는 webrtc 통계 데이터 샘플로 정리해 둠. 연결 관련 데이터 peer-connection id: "RTCPeerConnection" type: "peer-connection" timeStamp: 1655703464253039.0 values: [ "dataChannelsClosed": 0 "dataChannelsOpened": 1 ] data-channel id: "RTCDataChannel_2" type: "data-channel" timeStamp: 1655703464253039.0 values: [ "bytesSent": 12410 "messagesReceived": 9 "messagesSent": 3 "state": open "label": d.. [swift] sorted array 에 값 추가 WWDC 2018 Session 406 : Divide-and-Conquer Binary Search stackoverflow : sorting - How do I insert an element at the correct position into a sorted array in Swift? func sortedInsertionValue(_ value: String) { var slice: Array.SubSequence = mySortedArray[...] while !slice.isEmpty { let middle = slice.index(slice.startIndex, offsetBy: slice.count / 2 ) if value < slice[middle] { slice = slice[.. [concurrency] swift async/await 다른 언어를 사용하다가 ios쪽 개발을 할때 코루틴과 같은 시퀀셜한 비동기 처리가 없는점이 매번 아쉬웠는데.. swift 5.5 부터 async await 가 지원되기 시작했다. 당연하게도 애플쪽 하위호환이란건 바라지도 말아야 하는지라... 그나마 xcode 13.2 부터 사용 가능하니 내부 샘플 프로젝트등에 적용해 보려고 대강 내용만 정리해 본다. ios15 이하를 타겟으로 하는 경우 import _Concurrency 와 같이 비공식적으로 사용해야 한다. (이마저 없었으면 한 2년 뒤에나 사용할 듯) async @MainActor func getSomething() async -> [Int] { } 비동기 메쏘드는 메쏘드명 다음에 async 라는 키워드로 정의된다. 메인 쓰레드에서 동작해야 하는 경우.. [Combine] 콜백 기반 여러 처리 결과를 배열로 받기 특정 키로 콜백 기반 api를 여러번 호출한 다음에 해당 결과들을 모아 배열로 받으려 한다. 콜백 호출 함수 구독시 결정되도록 Deferred를 리턴하고, 콜백을 반환하는 함수의 호출 결과를 얻기위해 단일 퍼블리셔인 Future로 구성 에러가 필요 없는 경우 예외에 대해 success("") 로 리턴. func getSomeValue(id: String) -> AnyPublisher { return Deferred { Future { [weak self] promise in guard let self = self else { return promise(.success("") } self.someAsyncMethod(id: id) { result in return promise(.success(result.. 이전 1 2 3 4 5 6 ··· 38 다음