[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
아래 소스에서 질문 있는데요. final query = select(schedules).join([ innerJoin(categoryColors, categoryColors.id.equalsExp(schedules.colorId)) ]); query.where(schedules.date.equals(date)); return query.watch().map( (rows) => rows .map((row) => ScheduleWithColor( schedule: row.readTable(schedules), categoryColor: row.readTable(categoryColors), )) .toList(), ); 보통 테이블 조인을 하게 되면 SELECT a.*, b.* FROM schedule a, categorycolor b WHERE a.id = b.id; 이렇게 되어야 정상일텐데, 왜 drift 문법의 select 에서는 select(schedules)로 표현이 되었을까요?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
AppBar 위젯 코드를 정리하실 때, stless위젯을 따로 만들지 않고 함수로 가져오셨는데 위젯을 함수로 가져올지 Expnade 위젯처럼 stless위젯으로 가져오는지 어떤 기준으로 나뉘는건가요? class AppBar extends StatelessWidget { const AppBar({super.key}); @override Widget build(BuildContext context) { return AppBar( title: Text( "App name", style: TextStyle( color: Colors.blueAccent, ), ), backgroundColor: Colors.white, ); } } 또한 AppBar를 Stless 위젯으로 만들어보려고 했을때 title 부분과 backgroundColor 부분에서 오류가 나는데 그 이유도 알 수 있을까요?
만약에 키나 몸무게 필드에 숫자가 아닌 값을 입력할 경우 '숫자를 입력하세요'라고 출력하고 싶은데 어떻게 하면 좋을까요? 그리고 입력된 숫자가 특정 범위를 넘길 경우 제한 하는 방법도 궁금합니다. 뭔가 아래와 같은 느낌으로 하고싶은데 방법이 궁금합니다. TextFormField( decoration: const InputDecoration( border: OutlineInputBorder(), hintText: '키', ), keyboardType: TextInputType.number, validator: (value){ if(value == null || value.isEmpty){ return '키를 입력하세요'; }else if(value의 타입 != TextInputType.number){ return '숫자를 입력하세요.'; }else if(value > 1000){ return '정상적인 값이 아닙니다.'; } return null; }, ),
완전탐색 강의 마지막 문제 1090번 문제 풀이 방법에 의문이 생겨서 질문 올려봅니다. 강의에서는 우리의 집 중에서 한 곳에 모이면 된다고 풀이를 하셨는데, 예시에 나온 4 15 14 15 16 14 15 16 15 4명이 모이기 위한 최적의 장소는 (15,15)입니다. 백준에서도 이것이 정답 좌표이고. 그래서 혹시 제가 1번 2번 3번 아이디어를 이해하는데에서 잘못 이해한 부분이 있을까 싶어 질문을 올립니다. (15 14) (15 16) (14 15) (16 15) 중에 하나에 모인다는 말이 아닌것인가요?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Maps SDK for android --> enable Maps SDK for iOS --> enable 뭐가 문제일까요? E/Google Maps Android API(10009): Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map. E/Google Maps Android API(10009): In the Google Developer Console ( https://console.developers.google.com ) E/Google Maps Android API(10009): Ensure that the "Google Maps Android API v2" is enabled. E/Google Maps Android API(10009): Ensure that the following Android Key exists:
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드팩토리 디스코드 https://bit.ly/3HzRzUM Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 이런식으로 보이는데 이건 문제 없는건가요..?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
simulatorIP와 emulatorIP가 빨간색 줄로 나타나며 The instance member 'simulatorIP' can't be accessed in an initializer 다음과 같은 오류가 발생합니다. Stackoverflow를 통해 찾아보았으나 구체적으로 무슨 오류인지 파악하기가 어려워 질문드리고자 합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
강사님 안녕하세요. 강의 잘 배우고, 실전 어플 만들어서 배포까지 완료하였는데요. 14Pro 에서 스크롤 및 애니메이션 구현 시 약간의 버벅거림이 있더라구요. 아이폰 미니에서는 해당 증상 없는걸로 보아. 제 생각엔 ProMotion 지원이 안되는 것 같아보입니다. 혹시 강사님은 이 부분 어떻게 처리하시나요? 민감한 사람에게는 좀 적응이 어려울 것 같아 보이는데, 혹시 플러터 개발팀에서 차후에 이 부분 개선해 줄 가능성이 있을까요? 추가로, 플러터로 만들었다고 하는 '네이버지식인' 앱도 스크롤시 상당히 버벅거립니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
강의 잘 따라하고 있습니다. (저는 맥프로 M1 사용중입니다.) 작성한 코드를 에뮬레이터에 실행시키는데요. 아이폰 에뮬레이터는 잘 돌아갑니다. 그런데 안드로이드 에뮬레이터는 에러가 뜹니다. 에러 화면을 캡쳐했습니다. 자세히 보니 강사님은 'Pixel_XL_API_32' 를 쓰는 것 같아서 저도 디바이스 매니저에서 추가했습니다. 그걸로 Run 해봤는데, 아래와 같은 에러메시지가 뜨네요. ㅜㅠ
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
캘린더 스케줄 프로젝트 강의를 수강중입니다. 몇가지 여쭤보고 싶은 게 있어서 질문 드립니다. schedule_bottom_sheet.dart 내에서 renderTextField() 함수에서 시간입력인 경우 키보드 타입을 TextInputType.number로 주셨는데, 제가 실제 기기(iPhone11 Pro Max)에서 이 부분이 실행될 때 항상 다음과 같은 로그가 뜹니다. Can't find keyplane that supports type 4 for keyboard iPhone-PortraitTruffle-NumberPad; using 27315_PortraitTruffle_iPhone-Simple-Pad_Default 구글링 해보니 시뮬레이터 사용할 때 대응방법만 있고, 실제 기기 사용할 때 해결방법은 찾을 수가 없었습니다. 실제 기기 사용할 때 해결방법을 알려주시겠습니까? drift_database.dart 내에서 특정 날짜 조건에 맞는 스케줄만 Stream으로 가져오기 부분에서 인자로 받은 date변수는 toLocal()이 필요 없는 것이지요? (실험을 해보니 toLocal() 하고 안 하고 차이는 없는 것 같았습니다.) home_screen.dart 내에서 ScheduleList 클래스의 build함수에서, print( snapshot.data )를 찍어보니, 특정 날짜를 선택할 때 항상 2번 빌드가 되면서 2번 snapshot.data가 print되었습니다. 가령 오늘 8월 19일에 스케줄 없고, 8월 20일에 스케줄이 2개라면, 8월 19일이 선택된 현재 상태에서 8월 20일을 선택하면 ==> 먼저 빈 리스트(8월 19일)가 하나 출력되고, 그 후에 다시 스케줄 2개 담긴 리스트가 출력되었습니다. 8월 20일이 선택된 현재 상태에서 다시 8월 19일을 선택하면 ==> 먼저 스케줄 2개 담긴 리스트가 출력되고, 다시 빈 리스트가 출력되는 식입니다. StreamBuilder가 원래 이런 것인지... 이 부분을 조금 설명해주시겠습니까?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
보통 네비게이션바를 사용하면 완전 페이지 전환이 아니래 네비게이션바 內 탭이동을 하는거 같더라구요 게시판을 만들려면 탭이동이아니라 라우팅으로 페이지이동이 있어야 될것 같은데요. 이유는 1. 글 리스트가 많을때 : 로딩이 전체적으로 너무 느려짐 2. 스택기준으로 앱이 움직이니까 그냥 페이지 라우팅 페이지 이동이 맞는거 같음 3. 탭이동은 새글 작성시 반영이 안됨??(확인필요) 이정도가 될것 같아요... 근데 제가 질문한 이유는 Tab에서는 아이콘 클릭시 페이지 전환 onpressed 함수는 없는거 같아서요.. BottomNavigation이랑 라이우팅이랑 같이 합쳐져 구현되어 있는 수업은 없을까요?