본문 바로가기

전체 글223

[swift] 소켓통신 socket.io 사용해보기 socket.io @ ver. 16.1.0      만들고싶은게 생겨서 socket.io를 사용해봤다. 아주아주 옛날에 리눅스 환경에서 C socket통신으로 채팅 프로그램 만들었던 경험이 있는데어케 만들었는지 기억이 전.혀. 안난다 ㅎ,, 그때나 블로그 열시미 할껄 플젝&과제&시험에 치여서 생각을 못했다.. 나한테 남은건,, 뭐든 할 수 있다는 자신감 뿐.. ᵒ̴̶̷̥́ ‧̫ ᵒ̴̶̷̣̥̀ㅋ ㅋ ㅋ ㅋ ㅋ 젤 멋진데?     뭘 만들건지?  일단 공부용으로 하나 테스트해봤다. client인 swiftUI에서 메세지를 전송하면,서버측에서 즉시 에코하는 것을 만들고자 한다.   swift에서 다음과 같이 단순하게 전송만 할 수 있도록 UI를 만들어줬다.      준비  툴은 VSCode고, node.js를.. 2024. 5. 7.
[KakaoMapSDK_ver2 iOS] 2.10.x 업데이트 엔진 발전, 버전 설정 팁 지도 개발시 SDK를 사용하다 보니, 업데이트에 따라 코드가 엄청나게 바뀐다.3달만에 x.2.x가 업데이트 되다 보니까 Package 버전 설정시 신중하게 해야할 것 같다.참고로 0.1 업데이트때 마다 엄청 크게 변화하니, 버전은 upToNextMinor로 설정하는것 추천!  분명 처리 할 일 중 엔진 핸들링이 필요하다고 생각 한 부분이 있었는데,지도에서 다른 탭으로 화면을 옮겼을 때 엔진처리가 확연히 달라졌다. 당시 패치노트에 별 내용이 없어서 위의 내용을 추측할 수 밖에 없었는데,회고 중 궁금해서 2.10.x 버전 확인하니 카카오 측에서 확실히 엔진이 불편하다는 것을 인지하고 있었던것같다!  func updateUIView(_ uiView: KMViewContainer, context: Self.Co.. 2024. 4. 26.
[Xcode] Missing package product 오류가 떴다. 처음엔 SDK 문제인줄 알았는데 Xcode 오류라고 함 File -> Packages -> Reset Package Caches 해주면 해결된다고 하는데 나는 왜 안돼.... 그래서 다른 예시를 또 찾아봤다.https://forums.developer.apple.com/forums/thread/687275 Xcode 13 "Missing package product"… | Apple Developer Forums In my case, the error occurred because for one of my packages, they moved from using the master branch nomenclature to the main branch nomenclature, and in m.. 2024. 4. 15.
[tuist] There is no XCFramework found at 오류 해결(Xcode SPM) tuist는 왜 이모양인지 모르겠다 ^0^ 1. XCode 닫고 터미널에서 tuist clean, tuist fetch, tuist generate 2. Product - Clean Build Folder 3. project.xcworkspacedata / xcshareddata / swiftpm / Package.resolved 삭제 4. File - Packages - Reset Package Caches 안되면 반복하기.. 이거 반복하다가 됐을때 이게 왜..돼..? 하면서 당황스러운 지경 ㅋ.ㅋ.ㅋ.ㅋ..... tuist 빌드 오류라고 한다. 2024. 4. 1.
[SwiftUI] 커스텀모달 만들기 (NavigationBar shadow로 덮기) 오눌은 다음과 같은 커스텀 모달을 만들었다!!   상위 뷰 ZStack { ScrollView { // 뒤쪽 뷰 } if isShowingResignModal { CustomModalView(isShowingModal: $isShowingResignModal, title: "정말 탈퇴하시겠어요?", content: "탈퇴 후에는 작성하신 리뷰를 수정 혹은 삭제할 수 없어요. 탈퇴 신청 전에 꼭 확인해주세요.") { isShowingResignModal .. 2024. 3. 17.
[SwiftUI] CustomSheet (FullScreen + middle, bottom) 만들기! 참고 자료 Drag & Drop을 이용해서 CustomSheet를 만들었다! [SwiftUI] Drag&Drop (커스텀 뷰 기초, offset과 DragGesture)Drag & Drop은 사용자의 Gesture에 따라 움직이는 뷰를 만들때 사용한다. Custom으로 뷰를 만들 때 응용하면 아주 좋음! public struct DragGesture : Gesture { ... } DragGesture에는 위 두가지 함수가 있음! 그리고 그da-ye.tistory.com   제작 이유프로젝트 진행중에 지도 위에 띄울 시트는 기본 시트로 만들기엔 부족한 점이 몇 가지 있었다.1. 백그라운드 터치시 시트가 닫히지 않아야 함2. bottom, middle, full.. 2024. 2. 21.
[SwiftUI] 버튼 눌러 전화걸기 tel:// 번호 형식으로 넣어줘야한다. let phoneNumber = "tel://123456789" func makePhoneCall() { if let phoneURL = URL(string: phoneNumber), UIApplication.shared.canOpenURL(phoneURL) { UIApplication.shared.open(phoneURL, options: [:], completionHandler: nil) } } 버튼 눌렀을때 이 함수를 넣어주면 끝! 개인적으로 데이터 저장할 때 tel://을 넣기 힘드니까 let phoneNumber = "123456789" func makePhoneCall() { if let phoneURL = URL(string: "tel://\(phon.. 2024. 2. 18.
[SwiftUI] Drag&Drop (커스텀 뷰 기초, offset과 DragGesture) Drag & Drop은 사용자의 Gesture에 따라 움직이는 뷰를 만들때 사용한다. Custom으로 뷰를 만들 때 응용하면 아주 좋음! public struct DragGesture : Gesture { ... } DragGesture에는 위 두가지 함수가 있음! 그리고 그 함수 내부에서 꺼내 사용할 수 있는 요소들은 아래와 같음! time: 드래그 제스처의 현재 이벤트와 관련된 시간 정보. location: 드래그 제스처의 현재 이벤트 위치. startLocation: 드래그 제스처의 첫 번째 이벤트 위치. translation: 드래그 제스처의 시작부터 현재 이벤트까지의 전체 이동량. (location.{x,y} - startLocation.{x,y}) velocity: 현재 드래그 속도. pred.. 2024. 2. 18.
[Swift] KakaoMap 리사이징 공부 + 디바이스 화면잘림, black screen 버그 (삽질 일기) 맵뷰 공부를 위해 다음과 같이 단일 프로젝트로 따로 코드를 짰고, 팀 프로젝트 코드에 맵뷰를 추가하는 와중에 화면 크기가 제대로 나오지 않아서 삽질 지대루함 ㅠ0ㅠ~~~ (결국 맵뷰 문제가 아닌 디바이스 버그였던것 ㅜㅋㅜㅋ) struct MapView: View { ... var body: some View { KakaoMapView(draw: $draw, userLatitude: $userLatitude, userLongitude: $userLongitude, isShowingSheet: $isShowingSheet) .onAppear { Task { await startTask() self.draw = true } } .onDisappear(perform: { self.draw = false }) ... 2024. 2. 3.
[SwiftUI] CoreLocation(사용자 위치정보)사용하기 + tuist (삽질 기록^.^) 가장 간단하게 사용하는 방법! func startTask() async { // 위치 사용 권한 설정 확인 let locationManager = CLLocationManager() let authorizationStatus = locationManager.authorizationStatus // 위치 사용 권한 항상 허용되어 있음 if authorizationStatus == .authorizedAlways {} //위치 사용 권한 앱 사용 시 허용되어 있음 else if authorizationStatus == .authorizedWhenInUse {} // 위치 사용 권한 거부되어 있음 if authorizationStatus == .denied { // 앱 설정화면으로 화면 이동 DispatchQ.. 2024. 1. 31.
[Tuist] Tuist 버전맞추기 (mise) 본인은 그냥 요렇게 버전 고정하면 되는 줄 알았는데 mise 방법을 팀원들이 알아왔다! 메모메모 https://baegteun.tistory.com/7 Tuist 사용법 - 6. 버전 고정 Tuist를 사용하면서 다른 사람과 협업할 때, 각자 설치해놓은 버전이 다를 수 있습니다. 또한 Tuist의 업데이트 주기가 짧은 편이기에 더욱 이런 사태가 발생할 가능성이 크죠. 이때 해당 프로젝트 baegteun.tistory.com node version : 20.11.0 curl -Ls https://raw.githubusercontent.com/tuist/tuist/main/script/uninstall | bash 트위스트 삭제 명령어 curl https://mise.jdx.dev/install.sh | s.. 2024. 1. 25.
[SwiftUI] KakaoMapView (Xcode SPM, SwiftUI 사용) 공식 홈페이지! https://apis.map.kakao.com/ios_v2/docs/map/04_label/02_poi/ 공홈도 너무 잘 정리돼있지만 [Swift] SwiftUI로 Kakao Map 보여주기 KakaoMapsSDK v.2 for iOS 문서를 보고 정리한 글입니다. 더 자세한 내용 위 링크를 참고해 주세요 😊 (오타정정 및 피드백 대환영🙌🏻) 1. 앱 등록하기 kakao developers 링크에 들어가서 애플리케이션 추 zoeful-log.tistory.com 요사람것도 참고했다 굿굿 SwiftUI로 맵뷰 띄우기! import SwiftUI import KakaoMapsSDK struct ContentView: View { @State var draw: Bool = true var b.. 2024. 1. 16.