hellohallo님 안녕하세요. Sirius B입니다. 문의해주셔서 감사합니다. 말씀하신 model, view, viewmodel을 현재 프로젝트 구조와 매핑해보면 다음과 같습니다. model dto 폴더 : 데이터 객체 dao 폴더 : 서버 통신 및 내부 DB에 접근하여 데이터 송수신 view view 폴더 : 화면 레이아웃 viewmodel controller 폴더 : 비즈니스 로직 (화면 및 데이터 갱신 등의 역할) 참고로 작업 흐름 및 주요 역할은 다음과 같습니다. view ↔ controller ↔ dao (dto) 화면 표시 ↔ 화면 및 데이터 갱신 ↔ 데이터 송수신 추가 질문 있으시면 다시 문의 남겨주세요. 감사합니다 :)
윤정님 안녕하세요. 강의 영상에 변경된 내용이 반영되어있지 않아 혼란을 드려 죄송해요! 말씀하신 material theme 구성을 위한 사이트의 변경된 주소입니다. https://material-foundation.github.io/material-theme-builder/ 다운로드 메뉴 위치는 상단 오른쪽에 있는 플러스 버튼을 클릭하면 나오는 레이어의 하단에 Export 버튼을 이용해서 다운로드 받을 수 있습니다. 감사합니다 😃
아 제가 질문을 잘못 이해했네요 ㅎㅎ 화면을 이동할 때, 매개변수를 넘겨주는 것에 대한 질문이죠? 아래와 같이 사용할 수 있습니다 :) // arguments 에 원하는 형태로 값을 담아서 사용 (bool, int, String, list ...) Get.toNamed(RouteInfo.routeRoot, arguments: 'Return data'); // 사용하고자 하는 곳에서 아래와 같이 호출하여 사용 print(Get.arguments); 원하는 답변이 맞는지 확인 부탁 드려요! 감사합니다.
안녕하세요! 우선 현재 강의에서 만드는 샘플 앱에서는 MainView 가 최상단 Root 화면에 해당하고 여기에 네비게이션바를 설정하여 사용하는 방식이어서 PostDetailView 를 제외한 모든 화면이 MainView 에 해당합니다. Home, Post, Photo 화면은 MainView 위에서 네비게이션바를 통해 전환되는 화면이에요. 그래서 PostDetailView 에서 뒤로가기를 누르면 MainView 화면이 그대로 나오게 돼요. 만약, 명시적으로 호출하여 MainView 로 이동하는 것을 테스트해보고 싶다면, PostDetailView 에 버튼을 하나 생성하고 아래와 같이 입력하여 테스트해 보세요 :) ElevatedButton( child: Text('MainView 이동 테스트'), onPressed: () { Get.toNamed(RouteInfo.routeRoot); } ) 이러한 네비게이션바 구조가 아닌 일반적인 화면 이동을 위한 방법은 간단합니다. Get.toNamed(RouteInfo.routeRoot); 위와 같이 Get.toNamed 에 Route명을 넣어줘서 원하는 화면으로 이동할 수 있습니다. 관련된 강의 내용입니다. 섹션4. GetX 기반 앱 만들기 - [포스트 보기 화면 만들기] 5:15 부분부터 한번 살펴보세요 :) 호출하는 부분은 15:37 부분에 있습니다. 혹시, 질문에 대한 답변이 충분하지 못하면 다시 한번 문의해 주세요 :) 감사합니다.
안녕하세요! onDestinationSelected: controller.onChangeNavBar 를 직관적으로 풀어서 작성해볼게요 :) 직관적인 표현 onDestinationSelected: (int idx) { controller.onChangeNavBar(idx); } 원래 형태는 위와 같습니다. onDestinationSelected 에는 int 값에 대한 파라미터가 1개 존재해요. (int idx) {} 부분이 Function 이기 때문에, 같은 형태의 Function 인 onChangeNavBar(idx) 를 마치 변수처럼 onChangeNavBar 로 넣어주게 되면 메소드의 파라미터가 그대로 대입되어 사용할 수 있게 됩니다. 간단한 표현 onDestinationSelected: controller.onChangeNavBar 그래서 1번과 2번은 완전히 동일하게 작동할 수 있어요. 마찬가지로 더 많은 파라미터를 가진 메소드를 이용할 때도 같은 원리로 사용할 수 있어요. 아래 추가 예시에서도 ExamWidget 을 표현한 2가지 방식 모두 완전히 동일하게 실행되게 됩니다. 추가 예시 void onExam(int p1, bool p2, String p3) { print('$p1, $p2, $p3'); } ExamWidget( onExamEvent: onExam ) // 또는 ExamWidget( onExamEvent: (int p1, bool p2, String p3) { onExam(p1, p2, p3); } ) 또 다른 질문이 있으면 다시 남겨주세요 😀 감사합니다!
안녕하세요! 먼저 소스 코드에서의 라우트명 지정은 route_info.dart 파일에서 할 수 있습니다 :) 라우트명 지정에 대해서는 ' 섹션 3. GetX 적용 어렵지 않아요 ' 의 ' Route ' 강의에서 설정하는 것을 확인 할 수 있습니다. 또한, ' 섹션 4. GetX 기반 앱 만들기 ' 의 ' 앱 개발을 위한 레이어 나누기 ' 6분 20초 위치부터 해당 내용에 대한 코딩을 같이 진행할 수 있습니다. 감사합니다!