inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Sirius B님의 게시글

Sirius B Sirius B

@siriusb

Lead 레벨 · 크로스플랫폼 앱 개발자

Sirius B

수강생
52
수강평
4
강의 평점
5.0
함께한 멘티
-
멘토링 리뷰
-
멘토링 평점
-

게시글 9

질문&답변

model, viewmodel

hellohallo님 안녕하세요. Sirius B입니다. 문의해주셔서 감사합니다. 말씀하신 model, view, viewmodel을 현재 프로젝트 구조와 매핑해보면 다음과 같습니다. model dto 폴더 : 데이터 객체 dao 폴더 : 서버 통신 및 내부 DB에 접근하여 데이터 송수신 view view 폴더 : 화면 레이아웃 viewmodel controller 폴더 : 비즈니스 로직 (화면 및 데이터 갱신 등의 역할) 참고로 작업 흐름 및 주요 역할은 다음과 같습니다. view ↔ controller ↔ dao (dto) 화면 표시 ↔ 화면 및 데이터 갱신 ↔ 데이터 송수신 추가 질문 있으시면 다시 문의 남겨주세요. 감사합니다 :)

좋아요수
0
댓글수
1
조회수
174

질문&답변

material theme

윤정님 안녕하세요. 강의 영상에 변경된 내용이 반영되어있지 않아 혼란을 드려 죄송해요! 말씀하신 material theme 구성을 위한 사이트의 변경된 주소입니다. https://material-foundation.github.io/material-theme-builder/ 다운로드 메뉴 위치는 상단 오른쪽에 있는 플러스 버튼을 클릭하면 나오는 레이어의 하단에 Export 버튼을 이용해서 다운로드 받을 수 있습니다. 감사합니다 😃

좋아요수
0
댓글수
1
조회수
222

질문&답변

PageTransition 적용 후 뷰 적용 되지 않는 문제가 있습니다.

안녕하세요 Gavin님, 시리우스 B입니다. 저의 강의를 수강해 주셔서 정말 감사합니다! 작성해주신 코드에 오타가 하나 있어서 안되는 것 같습니다. FadeThroughTransition 의 animation: secondAnim 부분을 animation: anim 으로 고치면 정상적으로 화면 전환이 될 것으로 보입니다. 작성해주신 코드의 해당 부분이 secondaryAnimation 항목과 같아서 문제가 생긴 것으로 보여요. 한번 해보시고 그래도 안 되면, 다시 한번 문의 주시기 바랍니다. 감사합니다! [반영된 코드] return Scaffold( appBar: AppBar( title: Obx(() => Text(controller.title.value)), ), body: SafeArea( child: PageTransitionSwitcher( transitionBuilder: (Widget child, Animation anim, Animation secondAnim) { return FadeThroughTransition( animation: anim, secondaryAnimation: secondAnim, child: child, ); }, child: Obx(() => RouteInfo.navBarPages[controller.navBarIdx.value])), ), bottomNavigationBar: Obx(() => NavigationBar( selectedIndex: controller.navBarIdx.value, onDestinationSelected: controller.onChangeNavBar, destinations: [ NavigationDestination( icon: const Icon(Icons.home_filled), label: 'navBar.home'.tr, ), NavigationDestination( icon: const Icon(Icons.list_alt), label: 'navBar.post'.tr, ), NavigationDestination( icon: const Icon(Icons.photo), label: 'navBar.photo'.tr, ), ], )), );

좋아요수
0
댓글수
1
조회수
220

질문&답변

강의자료는 어디서 다운 받나요?

안녕하세요 Kane Kim 님, 죄송하지만 배포용으로 만든 자료가 아니어서 정리가 되질 않아 드리기가 어렵습니다. 양해 부탁드립니다. 감사합니다.

좋아요수
0
댓글수
2
조회수
413

질문&답변

강의자료는 어디서 다운 받나요?

안녕하세요! Kane Kim 님, 아쉽게도 PPT로 보이는 내용은 영상을 제작하기 위해 임시로 만든 자료입니다. 강의에서 제공되는 자료는 소스코드 자료입니다. 감사합니다.

좋아요수
0
댓글수
2
조회수
413

질문&답변

route의 pages

아 제가 질문을 잘못 이해했네요 ㅎㅎ 화면을 이동할 때, 매개변수를 넘겨주는 것에 대한 질문이죠? 아래와 같이 사용할 수 있습니다 :) // arguments 에 원하는 형태로 값을 담아서 사용 (bool, int, String, list ...) Get.toNamed(RouteInfo.routeRoot, arguments: 'Return data'); // 사용하고자 하는 곳에서 아래와 같이 호출하여 사용 print(Get.arguments); 원하는 답변이 맞는지 확인 부탁 드려요! 감사합니다.

좋아요수
0
댓글수
3
조회수
583

질문&답변

route의 pages

안녕하세요! 우선 현재 강의에서 만드는 샘플 앱에서는 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 부분에 있습니다. 혹시, 질문에 대한 답변이 충분하지 못하면 다시 한번 문의해 주세요 :) 감사합니다.

좋아요수
0
댓글수
3
조회수
583

질문&답변

onChangeNavBar 질문

안녕하세요! 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); } ) 또 다른 질문이 있으면 다시 남겨주세요 😀 감사합니다!

좋아요수
0
댓글수
1
조회수
302

질문&답변

라우트 명은 어떻게 지정하나요?

안녕하세요! 먼저 소스 코드에서의 라우트명 지정은 route_info.dart 파일에서 할 수 있습니다 :) 라우트명 지정에 대해서는 ' 섹션 3. GetX 적용 어렵지 않아요 ' 의 ' Route ' 강의에서 설정하는 것을 확인 할 수 있습니다. 또한, ' 섹션 4. GetX 기반 앱 만들기 ' 의 ' 앱 개발을 위한 레이어 나누기 ' 6분 20초 위치부터 해당 내용에 대한 코딩을 같이 진행할 수 있습니다. 감사합니다!

좋아요수
0
댓글수
1
조회수
382