iOS 16부터 사용할 수 있게 된 SwiftUI의 NavigationStack!기존의 NavigationView가 deprecated가 되었기 때문에 이번에는 NavigationStack를 적용하며 알게 된 것들을 정리해보려 한다.NavigationStack 선언NavigationStack { Text("이곳은 루트뷰 입니다.")}루트뷰가 되어야 하는 화면을 NavigationStack으로 감싸면 사용 완료!그러나 Navigation이니만큼 다른 화면으로 이동하는 코드가 추가로 필요할텐데, 이동하는 방법은 세 종류가 있다.1. NavigationLink로 이동하는 방법2. navigationDestination을 사용해 이동시키는 방법3. path로 화면 이동 경로들을 관리하는 방법하나씩 적용해보자. ..
UITest는 알파벳 순서대로 진행된다. 클래스 파일 - 파일 내부 메서드 순서까지 그래서 클래스는 UnitTest_A 이런식으로 만들고 내부 메서드는 test_01_테스트이름으로 관리했다. 앱실행 let app = XCUIApplication() app.launch() XCTestCase extension 원하는 element가 있는지 체크 후 tap할 수 있도록 XCTestCase에 extension 추가 func tap(element: XCUIElement?, timeout: Double = 1.0) { XCTAssertTrue(element?.waitForExistence(timeout: timeout) == true) element?.tap() } func checkAlert(app: XCUIA..
기록을 jSON 파일로 내보내기 위해 사용한 fileImporter와 fileExporter. 추가로 json확장자를 내가 원하는 확장자로 지정하는 것까지의 기록. fileImporter와 fileExporter SwiftUI에서는 iOS14.0 이상부터 fileImporter, fileExporter 지원 fileImporter: 파일 가져오기 func fileImporter( isPresented: Binding, allowedContentTypes: [UTType], onCompletion: @escaping (Result) -> Void ) -> some View isPresented에 들어갈 Binding 값이 true가 되면 fileImporter가 나타난다. allowedContentType..
잘만 돌아가던 테스트 코드가 위젯 익스텐션을 추가한 이후로 안돌아가고 제목과 같은 얼럿창만 띄웠다...... 해결 방법 지금은 해결하고 난 이후라 Test Plans에 2 test targets, 1 configuration이라고 적혀있지만 원래는 0 test targets였다. -> 버튼을 눌러 이동한 뒤에 좌측 하단의 +를 눌러 테스트를 추가해주었다. 설정 이후에 github action에서 테스트 커버리지가 안나와서 봤더니 Code Coverage 옵션이 꺼져있었다... On으로 바꿔주었다.