돌아오신 것을 환영합니다
이번 강의에서는 탐색을 할 것입니다
그러므로 지금은 이 ReceipeScreen을 주석 처리하겠습니다 그렇지 않으면 MainActivity에서 계속
오류가 발생할 것인데
저는 원하지 않습니다
앱 모듈로 가서 탐색에 대한 종속 항목을 추가했는지 확인합니다
좋습니다
추가해야 할 종속 항목은 이 것입니다
implementation(androidx.navigation::navigation-compose:2.7.4)입니다
제가 사용할 버전으로
동일하게 하시길 바랍니다
이제 Gradle을 동기화 해야 하며
동기화가 끝나면 계속 하겠습니다
화면 클래스가 우리 앱의 다른 화면을 담당하도록 설정할
것인데
지금은 두 화면밖에 없습니다
ReceipeScreen과 DetailScreen입니다
하지만 나중에 애플리케이션을 확장하고 싶다면 모든 화면을 한 곳에 모으는 것이
좋습니다
그래서 제가 할 것은 새 Kotlin 클래스를 만들고 Screen이라고
하겠습니다
이 Screen클래스가 하는 일은 무엇이냐하면
개별 경로를 담당할 것입니다
다른 프로젝트에서 경로가 어떻게 동작하는 지 알아 보았는데 그냥 route 키워드를 사용해서 잠재적으로 오류가
발생할 수 있었습니다
그러나 제가 원하는 것은 탐색을 담당하는 컴포저블 안에서 화면에
접근하는 것입니다
여기서 sealed 키워드를 사용하는데 서브 클래스의 자료형 중 하나를 따르는
자료형인 것을 미리 알 수 있을 때 사용됩니다
sealed 클래스는 런타임이 아니라 컴파일할 때 일치하는 자료형으로 제한하여 자료형의 안정성을 보장하는데
이는 편집기에서 이미 일치될 것이라는 의미입니다
실제로 애플리케이션이 실행된 후 가 아닌 Android 스튜디오에서 말입니다
이를 통해 실수로 경로의 이름을 틀리거나 한 경우
경로를 호출할 때 문제가 발생하지 않도록 할 수 있습니다
그 것이 이 sealed 클래스 Screen을 만드는 이유입니다 왜냐하면 이 곳에서 직접
다른 경로를 갖고 있을 것이기 때문입니다
그러므로 이 곳에 스트링의 route를 전달하고
두 객체를 만드는데
하나는 Screen자료형의 ReceipeScreen으로
route는 receipescreen입니다
이제 상세 화면도 동일하게 하겠습니다
object DetailScreen:Screen이고
route는 detailscreen입니다
이는 우리가 가지고 있는 각각의 화면의
상수를 만드는 좋은 연습입니다
그러나 우리는 한 발 더 나가서 Screen 클래스를 이용해서 sealed Screen 클래스를 이용해서 객체로
만들고 있습니다
그리고 Screen클래스 안에서 Screen클래스 자료형의 객체를 직접 만들어 recipescreen이라는
경로 이름을 전달하고 있으며
이제 이 경로 이름을 혹은 이 객체를 나중에 계속해서 사용하여
올바른 경로를 사용하는 것을 확실하게 할 수
있습니다
좋습니다
이제 새 파일을 만들 것인데
탐색을 담당하는 새 파일을 설정할
다음 강의에서 하도록 하겠습니다