Closed WallabyStuff closed 2 months ago
마지막 도전과제에 대한 추가 의견 남깁니다.
기존에 LinkNavigatorType에서 path와 item을 따로 받았던 것을 LinkNavigatorProtocol 에서 item을 optional로 받을 수 있게 LinkItem 이라는 구조체로 캡슐화 하는 방식으로 변경했던 것처럼 Detent에 사용되는 option들도 DetentOption 이란 구조체로 캡슐화해서 불필요한 옵션들을 생략할 수 있도록 제공할 수 있을것 같다는 생각이 문득 듭니다.
어떻게 생각하시나요?
보내주신 아이디어에 매우 놀랍고.. 굉장합니다.
파라미터가 많은 부분에 있어서 고민하는 부분으로서는 저도 매우 공감이 가는군요...
고민의 대한 한가지 아이디어와 제안이 있습니다.
아이디어는 다음과 같습니다.
detentSheet: DetentSheetType 이러게.. 하나의 Struct로 뺴면 어떨까 합니다.
navigator.detentSheet( linkItem: .init(pathList: ["page1", "page2"]), isAnimated: true, configuration: DetentSheetConfiguration = .default)
이부분에 대해서.. @WallabyStuff 님의 생각은 어떠신가요?
사용하는 입장에서 훨씬 직관적이고 명료한 것 같네요! 너무 좋은 아이디어 같습니다👍
제안해 주신대로 수정해서 다시 올려볼게요!
(남은 추석 즐거운 시간 되세요~😆)
잘부탁드립니다. 🙇🏻
@interactord amend 하여 변경사항 적용했습니다! 시간 괜찮으실 때 확인 한 번 부탁드려요 🙏
감사합니다.
머지관련사항은 금주내로 처리하도록 하겠습니다.
감사합니다. 🙏
Sheet에 detent를 설정할 수 있는 옵션을 추가하였습니다.
사용방법은 LinkNavigatorProtocol > detentSheet() 또는 SingleLinkNavigator > _detentSheet() 의 주석 도큐멘트에서 확인할 수 있습니다.
또한 01-SingleBasic 예제의 HomeView에서 아래와 같이 사용 예제를 확인할 수 있습니다.
01-SingleBasic 동작 예시
도전과제
코드에서 보시다시피 detentSheet은 detent에서 사용할 수 있는 옵션을 많은 파라미터로 받고있습니다. 그러나 꼭 필요하지 않은 옵션이 많아서 default value를 제공하는 편이 LinkNavigator를 사용하는 클라이언트 입장에서 사용성 증대 및 혼동을 피할 수 있지 않을까 생각합니다. 하지만 parameter default value를 제공하기 위해서 detentSheet만 LinkNavigatorProtocol을 extension 하여 제공하기에 기존 protocol에 정의된 함수들에 대한 default value 제공 일관성을 해 하는 것 같아서 유지보수 측면에서도 고려해 보아야 할 사항 같습니다.