[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
안녕하세요 개남님 (base) choejonghwan@choejonghwan-ui-MacBookPro review_book % flutter pub run build_runner watch 이거 하고나서부터 [INFO] Generating build script completed, took 149ms [INFO] Setting up file watchers completed, took 4ms [INFO] Waiting for all file watchers to be ready completed, took 201ms [INFO] Reading cached asset graph completed, took 34ms [INFO] Checking for updates since last build completed, took 470ms [INFO] Running build completed, took 6ms [INFO] Caching finalized dependency graph completed, took 20ms [INFO] Succeeded after 28ms with 0 outputs (0 actions) 여기까진 왔는데 멈추네요 여기서... part 'naver_book_search_option.g.dart'; 가 뜨지도않고.. 사진 두개첨부합니다. 감사합니다.
안녕하세요? 강의를 듣다가 궁금한 것이 생겨 질문 드립니다. 자바의 정렬 기본 알고리즘 시간 복잡도와 이진 탐색 시간 복잡도가 nlogn인 건 이해했는데, 코드부를 보면 이중 반복문이 나오고 있습니다. 앞 서 강의에서 반복문을 기준으로 이중 반복문이면 n의2승이라고 말씀하셨는데, 이 중 반복문을 썼는데도 nlogn이 되는 건 반복문이 진행되는 동안 절반씩 찾기 때문인가요?? 만약 이중 반복문으로 시간 복잡도가 올라간다면 이중 반복문을 쓰지 않고, 해결하는 방법을 알려주실 수 있으실까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
final baseBorder = const OutlineInputBorder( borderSide: BorderSide( color: INPUT_BORDER_COLOR, ), ); 이 코드를 CustomTextFormField 클래스의 필드로 넣지 않고 build 메서드 안에 작성하신 이유가 따로 있을까요? 이렇게 작성하면 렌더링될때마다 baseBorder가 만들어져야하니 메모리관리면에서 손해인거 아닌가 싶어서요!
프로젝트를 생성하고 첫 실행을 했는데 아래와 같은 오류가 발생했습니다. C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(247,5): error MSB8066: 'C:\Users\tnqls\OneDrive\���� ȭ��\ff\hello_f\build\windows\CMakeFiles\17bcc7b3690274761bc31777eb11dab3\flutter_windows.dll.rule;C:\Users\tnqls\OneDrive\���� ȭ��\ff\hello_f\build\windows\CMakeFiles\e86d85ec92b8cca453a41bad4e8ed811\flutter_assemble.rule;C:\Users\tnqls\OneDrive\���� ȭ��\ff\hello_f\windows\flutter\CMakeLists.txt'�� ���� ����� ���� ���尡 ����Ǿ����ϴ�(�ڵ� 1). [C:\Users\tnqls\OneDrive\���� ȭ��\ff\hello_f\build\windows\flutter\flutter_assemble.vcxproj] Exception: Build process failed. 이후 프로젝트의 안드로이드 파일에 에러표시가 떠 cmd에 flutter doctor를 실행한 결과 Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, 3.10.6, on Microsoft Windows [Version 10.0.22621.1992], locale ko-KR) [√] Windows Version (Installed version of Windows is version 10 or higher) [!] Android toolchain - develop for Android devices (Android SDK version 34.0.0) X cmdline-tools component is missing Run path/to/sdkmanager --install "cmdline-tools;latest" See https://developer.android.com/studio/command-line for more details. X Android license status unknown. Run flutter doctor --android-licenses to accept the SDK licenses. See https://flutter.dev/docs/get-started/install/windows#android-setup for more details. [√] Chrome - develop for the web [√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.5.4) [√] Android Studio (version 2022.2) [√] VS Code (version 1.80.1) [√] Connected device (3 available) [√] Network resources ! Doctor found issues in 1 category. 하나의 오류가 있는듯 한데 현재 안드로이드 스튜디오로 다른 앱 개발 활동을 하고있는것이 혹시 연관이 있을까요? 해결방안을 모르겠어서 질문 남깁니다. 도와주세요..
빈 배열을 선언해서 빈 배열에 (axios 통신을 통해 전달받은) result.data를 대입해서 사용하는 것이 아니라 useState를 사용하는 이유는 무엇인가요? 제가 이해한 것은 서버에 새로운 데이터가 업로드되면 그때마다 바로바로 업로드 된 데이터를 화면에 보여주기 위함인 것 같은데(예를 들어 상품이 3개로 보이다가 관리자가 상품을 한 개 추가하면 새로고침을 안해도 4개로 보임), 올바르게 이해한 것이 맞을까요?
1. interface클래스내에 정의된 메써드는 public abstract이고, 변수는 public static final이 자동으로 앞에 정의가 된다고 하셨는데 이건 고정인건가요? 다른 형태로 봐꿀 수 있나요? 봐꿀 수 없다면 왜 그러한지가 궁금합니다. interface 클래스를 implements해주고 추상클래스를 extends 해주는 것은 둘 다 상속인건가요? 둘다 부모 클래스가 되는건가요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
GoRouter 적용하는 강의 후 처음 splash screen으로 진입 후 getMe함수를 통해 state가 null이 되는 로직을 통과했음에도 router의 redirect를 따르지 않고 계속해서 splash screen에서 머무는 모습이 나타납니다. print로 결과를 확인해보니 처음 redirect 로직을 검증할 때 UserModelLoading의 Instance로 나타나고 이후 getMe를 통해 null이 되더라도 새롭게 redirection이 일어나지 않는 것 같습니다. 고민하다가 해결책이 떠오르지 않아 문의남깁니다!
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
border: baseBorder 로 설정했을때 color 를 Colors.red 로 해놔도 아무 변화가 없습니다. enabledBorder: baseBorder 설정했을때 그제서야 빨간색이 적용됩니다. focusedBorder 는 커서가 있을때 border 의 형태로 이해가 되었는데 일반 border 와 enabledBorder 속성은 어떤차이가 있는걸까요? border 속성만 사용할때는 아무 변화가 없는 이유도 궁굼합니다.
안녕하세요. 코드캠프 프론트엔드 고농축 강의 내용 관련하여 질문 드립니다. 우선 제가 원하는 내용은 리액트 내용의 전반적인 복습 타입스크립트 학습 넥스트 js 학습 이렇게 세 가지를 핵심으로 뽑을 수 있는데요. 고농축 커리큘럼 소개에는 위의 내용이 다 적혀있긴 하지만 커리큘럼을 봤을 때 next js는 따로 탭이 분리 되어있지는 않더라구요. 어떤 부분이 next js 관련 부분인지 궁금하고, 또 커리큘럼의 전반적인 수준도 궁금합니다.
@RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("memberA"); //when Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then assertThat(findMember.getId()).isEqualTo(member.getId()); assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); assertThat(member).isEqualTo(findMember); System.out.println("findMember == member: " + (findMember == member)); } } 위 코드에서 디비에 넣은 멤버와 찾은 멤버가 같은지를 비교를 isEqualTo를 사용을 하셨는데 이것은 제가 알기론 value부분만 같다면 true라는것으로 알고 있습니다. 같은 영속성 컨텍스트 안에서의 객체가 같은지 확인하려면 isSameAs가 맞지 않은지 의문이 생겼습니다!
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요, Flutter에 익숙해지기 위해 해당 강의를 보며 샘플 코드(?)와 비슷하게 코드를 추가하고 hot reload 버튼을 눌렀습니다. 그러자 IOS simulator(iPhone 14 Pro Max)에서 "Lookup failed: title in @getters in MyHomePage in package:hello_world/main.dart" 에러가 발생하여 추가 한 코드가 정상동작을 하는지, 수정해야 하는 부분이 있는지 확인이 불가능하게 되었습니다. 혹시 제가 추가한 코드에서 문제가 될 만한 부분이 있을까요? 제가 추가한 코드와 IOS simulator 에러 화면 첨부드립니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 실험적으로 Code Generator 기능을 이용해서 프로바이더를 다시 작성해보고 있습니다. 궁금한 게 Section 9. 다섯 번째 강의를 보는데, 1분 대에 나오는 RestaurantStateNotifier와 StateNotifierProvider를 어떻게 CodeGenerator를 이용해서 고칠 수 있을까 고민 중입니다. 시도한 코드는 아래와 같은데요(import는 생략했습니다): part 'restaurant_provider.g.dart'; @Riverpod(keepAlive: true) class Restaurant extends _$Restaurant { final RestaurantRepository repository; Restaurant({ required this.repository, }) { paginate(); } // 초기 상태는 Loading 상태로 @override CursorPaginationBase build() { return CursorPaginationLoading(); } paginate() async { final response = await repository.paginate(); state = response; } } 코드 제너레이션은 잘 되는데, 문제는 이를 실행시키려고 하니 다음과 같은 에러가 뜹니다. Launching lib/main.dart on iPhone 14 Pro Max in debug mode... main.dart:1 Xcode build done. 3.9s Failed to build iOS app Error (Xcode): lib/restaurant/provider/restaurant_provider.g.dart:15:3: Error: The argument type 'Restaurant Function({RestaurantRepository repository})' can't be assigned to the parameter type 'Restaurant Function()' because 'Restaurant Function({RestaurantRepository repository})' is nullable and 'Restaurant Function()' isn't. restaurant_provider.g.dart:15 Could not build the application for the simulator. Error launching application on iPhone 14 Pro Max. Exited 이전까지는 잘 됐었는데, 바로 직전 강의에서 CursorPaginationBase를 만들고, 이를 상속받는 CursorPagination 상태들을 구현하고 나서부터, 문제가 발생한 것 같습니다. 아마 CursorPagination의 경우는 data와 meta라는 필드가 들어가는데, 어디선가 Code generation에 문제가 생겨서, CursorPaginationBase가 아닌, data와 Meta를 필요로 하는 생성자가 호출된 건 아닌가 의심하는 중입니다. 아래는 위 코드로 생성된 .g.dart 파일입니다. // GENERATED CODE - DO NOT MODIFY BY HAND part of 'restaurant_provider.dart'; // ************************************************************************** // RiverpodGenerator // ************************************************************************** String _$restaurantHash() => r'50915edab0a63433f5d54b932240cf504147e391'; /// See also [Restaurant]. @ProviderFor(Restaurant) final restaurantProvider = NotifierProvider<Restaurant, CursorPaginationBase>.internal( Restaurant.new, name: r'restaurantProvider', debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') ? null : _$restaurantHash, dependencies: null, allTransitiveDependencies: null, ); typedef _$Restaurant = Notifier<CursorPaginationBase>; // ignore_for_file: unnecessary_raw_strings, subtype_of_sealed_class, invalid_use_of_internal_member, do_not_use_environment, prefer_const_constructors, public_member_api_docs, avoid_private_typedef_functions 어떻게 하면 Code Generator를 이용해서 문제를 해결할 수 있을까요?