728x90
Xcode Preview - No Selected Scheme
·
개발노트/iOS
프리뷰 없던 시절에는 어떻게 매번 빌드해가며 UI를 확인했는지 까마득할 정도로(나는 CodeUI 개발을 선호해서 클라이언트 측에서 특별한 요청이 있는 경우 아니면 UI 그릴 때도 코드로 작성했었다)프리뷰에 익숙해져있던 어느날…. Xcode를 재실행 해보고, 클린 빌드를 해보고, 프리뷰 창을 닫았다가 다시 실행해보아도 사라지지 않는 에러 메세지어제까지만 해도 잘 돌아가는 것을 확인했기에 코드 문제는 아닐텐데, 같은 생각이나 하고 있었는데ㅋㅋ.. 문제의 원인은 너무나도 심플하고 정직했다.> No Selected Scheme  그렇다.. 이유가 뭔지는 모르겠지만 스킴 선택이 해제되어 있었음  스스로도 어이 없어서 기록해두는 거 맞다.(사실 이후에도 이 문제 한 번 더 나오긴 했었는데, 그때는 스킴 다시 선택하..
SwiftUI의 Navigation(화면 전환) - LinkNavigator의 이모저모 (1)
·
개발노트/iOS
2024.10.28 - [개발노트/iOS] - SwiftUI의 Navigation(화면 전환) - 선언형 구조와 명령형 구조의 차이2024.11.10 - [개발노트/iOS] - SwiftUI의 Navigation - iPad version (feat. Custom Alert popup) 일전에 SwiftUI의 Navigation에 대해 검색해보다보니 LinkNavigator에 대한 글이 종종 보이더라.그래서 조만간 한 번 써봐야지 생각하고 있었음.한국에서 만든 거라 링크에 한국어 가이드도 있음b프로젝트에 바로 적용한 건 아니고, 공부용 깃으로 만든 여기에 구현해봤다.   1. 패키지 의존성 추가 (SPM)Xcode 메뉴에서 File - Add Package Dependencies 해도 되고,Project..
Flutter에서 iOS Device run 안 될 때
·
개발노트/Flutter
개인적으로 Flutter에서만큼은 진짜 실제 기기 빌드는 Android가 짱짱인 것 같다.하지만 그렇다고 iOS 실기기 빌드를 안 해볼 수는 없는데, 이렇게 항상 빌드할 때마다 온갖 벽에 가로막히곤 한다.. 매번 이것저것 방법 시도하다가 얼렁뚱땅 되곤 하다보니 같은 문제가 나와도 또 이거저거 시도하게 되는 반복 작업이 있는 터라 하나하나 생길 때마다 정리해보려고 한다.  1. LoadError - cannot load such file -- ffi_c 어쩌구iOS 개발자에겐 익숙할 pod 에러다본인 같은 경우는 M1 사용하고 있어서 x86으로 pod install 해주면 해결됐음사실 이런 문제 때문에 터미널은 일부러 Rosetta로 실행하도록 설정해서 쓰고 있는데, 역시 안스에서는 따로 해줘야 하나 부지..
SwiftUI의 Navigation(화면 전환) - 선언형 구조와 명령형 구조의 차이
·
개발노트/iOS
1. 안 읽어도 그만인 사건의 발단SwiftUI를 사용하면서 '아, 이건 진짜 공부하고 싶다'는 욕구가 제일 크게 든 건 Navigation 쪽이었다. NavigationStack은 그래도 Flutter의 Router? 웹페이지 url인가? 싶은 느낌으로 받아 들였는데,navigationController.push에만 익숙한 나로서는 NavigationLink의 동작이 좀 불편했다. SwiftUI를 사용하기 전의 내가 화면 이동을 구현하던 스타일은,@objc private func touchUpStartButton(_ sender: UIButton, forEvent: UIEvent) { print("시작 화면으로 클릭") // 여기에 화면 이동 코드 // e.g. navigationControlle..
SwiftUI로 Video Player 만들기 - UIViewRepresentable
·
개발노트/iOS
SwiftUI를 사용하다보면 가끔.. 가끔 한번씩 UIKit이 그리워질 때가 있다.(e.g. 도대체 ScrollView bounce 없앨 수 있는 옵션은 왜 지원 안 하는 거야) 이런 걸 염두에 둔 건지 UIViewRepresentable 프로토콜을 구현하면 SwiftUI에서도 UIKit의 요소를 사용할 수 있는데,,'스유도 낯선데.. 너란 놈 더 낯설다..''SwiftUI를 쓰면서 UIKit을 끌고 오는 건 Swift 쓰면서 Objective-C 끌고 오는 느낌 아닌가?''웬만하면 스유 울타리에서 해결하는 게 좋은거 아닌가?'라는 생각으로 그동안 크게 눈여겨보진 않았다.하지만.. 그래도 써야만 하는 순간이 있다.. 바로지금 롸잇나우 그런데 막상 사용해보니 UIKit이랑 크게 다를 것도 없고 그렇다고 스..
SwiftUI와 MVI (2)
·
개발노트/iOS
SwiftUI와 MVI (1)SwiftUI는 항상 써보고 싶다고 생각하고 있었는데 최근에 기회가 되어 사용해볼 수 있게 됐다.Swift만 쓰다가 처음 스유 깔짝거렸을 때는 도대체 이게 뭔 코드인가 했는데, 같은 선언형인 Flutter를jecklight.tistory.com이론 공부만 해두고 나중에 막상 사용하려고 하면 또 어버버하며 다시 첨부터 검색하는 도돌이표 될까봐 실습 빠르게 도전! REST API로 간단하게 데이터 조회해서 뿌려주는 형태의 페이지 하나만 만들어보려고 한다.보니까 JSONPlaceholder 라고, 이런 목적으로 사용하기 좋은 게 있더라bb  1. 그보다 우선 먼저 TCA란?저번에 공부하다가 Reducer가 튀어나오는 바람에.. 얘도 우선 용어 뜻, 구성 정도만 살펴보고 가려 한다...
SwiftUI와 MVI (1)
·
개발노트/iOS
SwiftUI는 항상 써보고 싶다고 생각하고 있었는데 최근에 기회가 되어 사용해볼 수 있게 됐다.Swift만 쓰다가 처음 스유 깔짝거렸을 때는 도대체 이게 뭔 코드인가 했는데, 같은 선언형인 Flutter를 써보고 다시 사용해보니 꽤 적응이 쉽다. Preview 캔버스 짱 조음b버튼 활성/비활성화도 observer 붙이고 ui update 함수 구현해주고 했는데 넘나리 간편쓰>넘나리 간편쓰그렇다.. 너무 간편했다..이것만으로도 너무 간편한데 MVVM 패턴은 어떤 모양으로 분리해서 구현하는지가 궁금해졌다그래서 구글링해보니.. 요는 스유에서는 View가 이미 ViewModel의 데이터 바인딩 역할을 수행하고 있으며,MVVM 형태를 지키기 위해서 억지로 ViewModel을 만드는 상황이 발생한다는 것 같다 아..
UINavigationBar left title & right bar buttons
·
개발노트/iOS
모든 디자인에서 navigationbar 타이틀 로고가 iOS 기본 형태처럼 center면 참 좋을텐데, 좌측으로 보내고 싶어하시는 클라이언트들도 물론 계신다. 이건 그거에 대한 기록. 우선 이미지를 navigationbar 타이틀로 쓰려면 view controller에서 아래처럼 써주면 된다 self.navigationItem.titleView = logoView 결과 (맑은 하늘색 부분이 로고 이미지가 들어가는 자리) : 자 이제 이걸 왼쪽으로 땡겨줄건데, 구글링해보니 titleview 영역에 스택뷰를 넣고 좌측을 빈 공간으로 채우는 형태로 구현하더라. 참고링크: https://stackoverflow.com/a/60870939 let logoView = UIImageView(image: ImageF..
Xcode Unit Test: no such module
·
개발노트/iOS
앺플로이드 팀에서 만들어보기로 한 미니 프로젝트는 기왕 하는 김에 해보고 싶었던 걸 좀 때려박아 보기로 했다.결과 = MVVM+RxSwift+Test Case View는 재빠르고 간단하게 다 그려두고, 이제 모델을 생성할 단계가 되어 테스트 케이스 작성하는 법도 서치 해보면서 적용을 시도해봤는데,,, 구글이 이르되 프로젝트를 생성하면서 Include Unit Tests를 해주면 문제가 없어야 하는 걸로 보이건만 시작부터 순탄하지가 않다. 물론 이 모든 것은 프로젝트 구조 깡그리 무시한 무지한 자가 초래한 무식한 결과였음을....  우선 @testable로 모델 파일 추가한 부분.... 애초에 internal로 선언된 놈인데 바깥에서 부른다..?(이하생략)https://zeddios.tistory.com/..
Dynamic link: app install 이후 제대로 동작 안 함
·
개발노트/iOS
모바일 웹에서 흔히 볼 수 있는 ‘앱으로 보기’ 버튼이 있다. 발전형으로는 ‘앱 설치 시 포인트 적립' 등이 될 수 있겠다.버튼을 누르면 앱 설치 유무에 따라 스토어 페이지로 이동하거나 앱을 실행시켜준다.앱이 이미 설치되어 있던 디바이스가 잘 이동하는 건 이해하겠는데, 미설치했던 디바이스도 설치만 하고 나면 모바일 웹에서 보던 화면으로 이어지고 포인트 적립이 자동으로 되는데, 이 말인즉 링크가 유실되지 않는다는 뜻.그리고 Firebase Dynamic link가 이 모든 걸 알아서 해준다! …고 문서에서는 그렇다는데, 나는 당최 앱 미설치 → 실행에서 페이지 이동이 제대로 되지 않았다.그런데 안드로이드는 된다..! 스토어고 스토어로 이동시킨 웹이고 다 종료하고 앱을 실행해도 제대로 이동한다..!!이렇게 ..