전체 글
[React] next-auth > CLIENT_FETCH_ERROR 해결 방법
React + Next.js + NextAuth.js 환경에서 Sign-In 요청 후 404 페이지로 이동하는 에러 발생 시 해결방법입니다. 아마 아래와 같은 디버그 에러를 만나게 될텐데요, 이런 경우는 [...nextauth].ts의 경로를 확실히 수정해야 합니다. [next-auth][error][CLIENT_FETCH_ERROR] https://next-auth.js.org/errors#client_fetch_error Unexpected token '
[Flutter] go_router 내에서 분기별 처리와 모달위젯 띄우는 방법
외부 딥링크를 통해 스크린 요청이 오게 되는 경우, go_route로 수신하게 되는 데, 이때 인앱 브라우저를 풀화면으로 띄우거나 또는 모달에 띄워야하는 요구사항이 발생하여 여러방법을 테스트해보고 얻은 결론입니다. 우선 GoRoute의 특정 패스로 들어오는 경우, 아래와 같이 처리해 줍니다. GoRoute( path: RoutePath.inAppBrowser, name: 'inAppBrowser', builder: (context, state) { final uri = state.uri.queryParameters['url'] ?? ''; final title = state.uri.queryParameters['title']; final type = state.uri.queryParameters['typ..
AVCaptureDevice 사용 시 iPhone14 Pro 이상의 카메라 설정 방법
AVCaptureDevice 사용 시 일반적인 구글링이나 GPT에서 제공하는 샘플에서는 builtInWideAngleCamera 부분에 대해서만 제공되는 경우가 많은데 이렇게 적용할 경우, QR 코드나 가까운 거리에서 물체를 잡으려고 할 떄 캡쳐 이미지가 흐릿하거나 초점이 맞지 않는 현상이 발생한다. 이런 경우, AVCaptureDevice의 DiscoverySession에서 카메라 모듈을 직접 설정해 주어야 사물 가까이 접근했을 경우, 상황에 맞는 카메라로 변경된다. 아래는 다양한 아이폰 디바이스에서 제공되는 카메라 종류를 추가한 코드이다. func setupDevice() { let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTy..
Xcode 14 빌드 속도 올리는 방법
언제부턴가 Xcode 14에서 단일 속성만 변경하더라도 증분 빌드 시간이 크게 느려지는 것을 느꼈습니다. 개발 시에는 증분빌드 (Increamental build)를 사용함에도 최근 Xcode14에서는 이마저도 기존에 비하면 체감상 많이 느려진 거 같습니다. 한동안 이로 인한 피로감으로 종종 구글링 하던 차에 눈에 띄게 향상되는 방법을 찾아 공유드립니다. 해결방법 문제를 해결하려면 프로젝트 탐색기 -> 타겟 선택 -> 빌드 세팅 -> "사용자 정의 설정 추가" > SWIFT_USE_INTEGRATED_DRIVER > NO 해당 설정 후 또는 제거한 후 Clean Build를 해주셔야 적용됩니다. 참고: https://forums.swift.org/t/swift-5-7-xcode-14-incremental..
스토리보드, XIB Inspectable에 enum 연동하는 방법
스토리보드, XIB에서 UIButton (또는 그외 컨트롤) 에 @IBInspectable을 연동해서 사용하는 경우가 많은데, IBInspectable 값을 enum 으로 선언해서 연동하는 방법입니다. enum 타입 작성 enum StatusShape:Int { case Rectangle = 0 case Triangle = 1 case Circle = 2 } @Inspectable 작성 // IB: use the adapter @IBInspectable var shapeAdapter:Int { get { return self.shape.rawValue } set( shapeIndex) { self.shape = StatusShape(rawValue: shapeIndex) ?? .Rectangle } } ..
M1 ARM-64 Simulator 지원하지 않는 프레임워크 수정하는 방법
Xcode building for iOS Simulator, but linking in an object file built for iOS, for architecture 'arm64' 아직 M1 맥북을 지원하지 않는 프레임워크를 종종 만나게 되는데요, SPM도 지원하지 않고, XCFrmework 도 지원하지 않는 경우, 어쩔 수 없이 Rosetta 모드로 사용해야 할 수 밖에 없는데요. 관련 해결 방법을 찾아보면 대부분 Build Settings에서 Exclude Architecture 설정에 관한 내용이 대부분이었습니다. Rosetta 모드로 사용하게 될 경우, 시뮬레이터에서 스크롤도 제대로 작동안하거나 잘 죽고 상대적으로 빌드 시간이나 이런 부분도 뭔가 체감적으로 더 늘어나는 듯 한데요. 관련해서 ..
String에 HTML 링크 적용
String에 HTML 링크 적용하는 방법입니다. 기본 제공하는 디텍터를 이용해서 링크를 찾고, 태그로 감싸진 경우에는 예외 처리되었습니다. func wrapLinkText() -> String? { let detector = try? NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue) guard let matches = detector?.matches(in: self, options: [], range: NSRange(location: 0, length: self.utf16.count)), matches.count > 0 else { return self } let validators = [">", "\""] var result..
Xcode 정의로 이동하지 않고 우측 에디터에서 보는 방법
Xcode를 좌, 우 2개로 나누어 쓰는 개발자들이 많은 걸로 알고 있다. 빠른 검색이나 프로젝트 네이게이터에서 왼쪽 오른쪽 선택하는 단축키들은 많이들 알고 있는 듯 하나 현재 편집 중인 창(왼쪽)에서 변수나 함수 등의 선언을 확인하기 위해 Cmd + 마우스 클릭 - 현제 에디터에서 해당 선언 부로 이동 확인 후 다시 돌아가서 작업 보고 싶은 변수나 함수를 프로젝트 검색 후, 검색결과를 Opt+Shift 클릭해서 우측 에디터로 띄우는 방법 보고 싶은 변수나 함수를 Cmd + Shift + O 빠른 검색으로 띄워서 Opt + Shift 클릭 해서 우측 에디터로 띄우는 방법 주위 동료들에게 물어봐도 거의 1번, 그 다음 2번, 3번도 잘 모르는 경우가 많았다. 이것도 불편하다고 느끼던 중 새로운 키를 찾아내..
Xcode Build 실행 시 명확하게 표시하는 방법
Purpose 최근의 Xcode 버전은 빌드를 시작하더라도 상단에 아주 작게 빌드 표시가 되어 빌드를 진행 중인지 아닌 지 구분이 모호할 때가 많다. 더구나 이곳에 인덱싱, 러닝, 등의 여러개의 작업이 동시에 진행 중일 경우, 직관성은 더욱 떨어지게 된다. 이를 해결하기 위해 여러 옵션을 테스트해 본 후, 빌드 명령 시작 시 베젤을 띄우는 방법이 제일 명확하다 판단했다. 주위 동료들도 이 방법에 많은 공감을 보내주어 공유해본다. 빌드 시작 시 직관적인 표시를 위해 Xcode 설정 > Behavior > 왼쪽 사이드바의 Starts 항목을 선택한 후 우측의 세번재 항목 Notify using bezel of system notification 도 선택해 준다. 이후 빌드를 해보면 위와 같은 베젤이 표시되는..