[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드팩토리 디스코드 https://bit.ly/3HzRzUM Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 안녕하세요 !! 궁금한게 있어서 질문 드립니다 지역 변경후 값 받아오는 곳에서 "jeonbuk":null 이값으로 받아오는데 jeonbuk = double.parse(json['jeonbuk'] ?? '0'), null처리 한곳에 '0' 으로 변환 해주면 에러가 나오고 Bad state: No element See also: https://flutter.dev/docs/testing/errors jeonbuk = double.parse(json['jeonbuk'] ?? '0.01' ), '0' 이상 값으로 변환하면 정상적으로 나오는데 이유가 궁금합니다 .
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 간단한 질문입니다. productcard 작업하기 -> 4:18분 정도에서 crossaxisalignment.stretch하셨는데 이미 expanded가 쓰여서 cliprrect를 제외한 영역을 확보했는데에도 가로채우기인 stretch를 하는 이유가 궁금합니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요. 이번 강의를 듣고 의문점이 생겼습니다. 출첵앱에서 permission체크를 가장 외곽에 있는 FutureBuilder를 통해서 실시했는데, 그렇게되면, build가 실행될때마다 Geolocator의 await Geolocator.isLocationServiceEnabled(); await Geolocator.checkPermission(); 두개의 async함수가 엄청난 병목을 만들 것 같은데, initState에서 해결하는게 더 좋은 코드가 아닌지 궁금합니다.
안녕하세요!! 강의를 듣다가 궁금한점이 생겨 질문드립니다. 해당 강의에서 state가 필요하지 않은 위젯을 만들때 단순히 Widget을 return 하는 함수를 사용하여 위젯을 만드시더라구요! 근데 제가 다른 강의를 들었을 때는 state가 없는 위젯의경우 statelessWidget을 사용했었는데, 혹시 statelessWidget을 사용하지 않고 함수를 사용하시는 특별한 이유가 있으실까요? 추가적으로 statelessWidget을 사용할때와 함수를 사용할때 어떤 차이가 있는건지 설명해주시면 감사하겠습니다!! Widget loadingWidget() { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: const [ Text('정보를 가져오는중'), CircularProgressIndicator(), ], ), ); } Widget buildRemainWidget(Store store) { var remainStat = '판매중지'; var description = '판매중지'; var color = Colors.black; switch (store.remainStat) { case 'plenty': remainStat = '충분'; description = '100개이상'; color = Colors.green; break; case 'some': remainStat = '보통'; description = '30 ~ 100 개이상'; color = Colors.yellow; break; case 'few': remainStat = '부족'; description = '2 ~ 30개이상'; color = Colors.red; break; case 'empty': remainStat = '소진임박'; description = '1개 이하'; color = Colors.grey; break; default: } return Column(
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
국내 많은 기업들이 스프링 프레임워크를 사용중에 있는데요.. 백앤드를 스프링프레임워크로 강좌가 있으면 정말 좋겠다는 생각입니다. 이제 막 프론트단을 flutter로 검토하는 정도의 기업들이 조금씩 나타나고 있는것 같은데요.. 중견기업에서... 추후 flutter개발자가 늘어나도 스프링 프레임워크 기반의 서버(RDB포함)까지 바꾸려고 하지 않아서요... ㅠㅠ 해당 회사 사정이기는 합니다만... flutter 공부하는 입장에서는 회사에서 근접한 환경들을 배우고 싶은 사람들이 저말고 있을것 같아서 말씀드립니다. 물론 회사에 서버개발자가 있기는 하지만 flutter 도입을 위해서 netjs프레임워크로 바꿀거 같지 않아서요.. ㅠㅠ 개발관련 업무 담당자의 사견이오니 무시하셔도 됩니다. 지나가면서 의견 한마디 드린정도로 생각해 주세요 강의 잘듣고 있습니다. 감사합니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요 지금 캘린더 강의 데이터베이스 생성하기 부분 듣고 있습니다. database 폴더 생성하고 drifr_database.dart 파일 생성해서 코드 작성하는 부분인데, getapplicationdocumentsdirectory()를 입력할때 자동완성이 안뜨더라고요. 대소문자 구분 안하는걸로 설정해놔서 대문자 없어도 떠야하는데 말이에요. 그리고 강의에는 저 메서드있는 패키지 import 하기가 옵션으로 뜨던데 저는 그런것도 아예 없고요. 그래서 직접 import 써넣었어요. 그리고 그 다음에 nativedatabase 적었을때도 마찬가지로 자동완성 안뜨고 패키지 import 옵션도 안뜨더라고요. 근데 여기서 문제가, getapplicationdocumentsdirectory는 강의에서 어떤 패키지가 import 되는지 보여서 그냥 그대로 써넣었는데, nativedatabase는 그게 아예 보이지도 않아서 구글링하며 찾느라 좀 헤맸습니다. 자동완성도 안뜨고 import 옵션도 안뜨는건 도대체 왜 그런가요? 어디서 고칠 수 있는 건가요? 너무 불편해요 ㅜㅜ
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
class _BottomSlider extends StatelessWidget { final Duration currentPosition; final ValueChanged<double> onBottomSliderChanged; final VideoPlayerController? videoPlayerController; 위의 형태로 videoController를 직접 넘겨줘도 정상작동하는 것을 확인했습니다. 만약 _BottomSlider에서 기능이 추가되어 videoController에 많은 접근이 필요해지면 일일히 넘겨주느라 복잡해질 것 같은데 통째로 넘겨주지 않는 것은 상태변화를 추적하기 원활하게 하기 위함인가요??
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
floating button을 눌렀을때 modalbottomsheet가 builder를 통해 scheduleBottomSheet라는 "stateless"위젯을 반환합니다. 바텀시트에서 textfield를 눌러 키보드가 나오는 경우 final 변수인 bottomInset이 0에서 키보드 높이값으로 변하여 padding이 적용됩니다. 혹시 stateless위젯은 setstate를 사용하지 못할뿐 내부 시스템적으로 바뀌는 값에 대해서는 state처럼 값 변경이 발생하는 것인가요? 아니라면 modalbottomsheet의 builder가 바텀시트를 리랜더링하는 것인가요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
디버그시 *.g.dart 파일을 수정하며 디버그 해도 되나요? Future<CursorPagination<RestaurantModel>> paginate(); 에서 RestaurantModel 을 RestaurantDetailModel 로 잘못 입력하여 에러가 났는데, 아무런 에러 메세지도 나오지 않아서, *.g.dart 파일 수정하며 디버그했는데, 디버그 방법을 어떻게 하면 좋을지 알고 싶습니다. ================================= 새해 복 많이 받으세요 : )
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
질문1. 강좌에는 회원가입이 없는것 같은데요.. 아이디와, 패스워드 입력으로 회원가입을 했다는 전재하에 토큰인증을 하고 있다고 보면되는 건가요? 그 아이디와 패스워드는 각각 { test@codefactory.ai :testtest} 으로 사용하는 것으로 보면되는 거죠? 질문2. 그렇다면 회원가입 시점(id, pw를 db에 저장하는 시점)에 토큰을 발급해 주는 내용을 알 수가 없어서 질문드립니다. db에 id, pw 넣고 토큰을 즉시 발급해 주는 내용이 강좌에 없는것 같습니다. 이부분에 대한 의견을 듣고 싶습니다. 혹시 제가 못 알아보고 있는지도 알고 싶습니다.
안녕하세요 먼저 좋은 강의 해주시는 나도코딩님께 감사드립니다. 이전에 나름 정성들여 글을 작성했는데, 확인이 안돼서 다시 작성해봅니다. 제가 강의를 보고있는 2023년 1월 19일과 강의날인 2020년 8월과 네이버 항공권 인터페이스가 많이 상이하고, 셀레니움과 파이썬 버전이 달라 저의경우 아래와 같이 코드를 작성했습니다. 다른분들께 도움이 되었으면 좋겠습니다. 현재 저의 환경의 경우 python버전 3.10.7 버전이고 selenium또한 강의때 사용하신것 보다 더 높은 것으로 보입니다. 현재 제 경우와 강의내용과 상이한 부분은 아래와 같습니다. 네이버 항공권 진입시, "지금 바로 혜택 확인하기" 광고 팝업창 발생, 해당부분 get_attribute메소드를 사용해 title을 비교해, 팝업이 있다면 팝업을 삭제하는 XPATH를 확인해 해당 엘리먼트를 클릭하도록 구현 browser.find_element_by_class_name과 같이 find_element_by_~~ 메소드 사용불가 => 현재 제가 사용중인 셀레니움 버전이 상위 버전으로 보이는데, 이는 3 line과 같이 import By로 쉽게 수정 가능 find_elements_link_text 메소드 사용 불가 => 2020년대비 2023년 현재 네이버 항공권 웹페이지 인터페이스의 변화때문인지 "가는 날" 및 날짜 선택을 위해 해당 메소드 사용시 빈리스트만 반환 "가는 날"은 XPATH로 엘리먼트를 얻어와 클릭하도록 구현 원하는 날짜의 경우 class이름을 확인해 모든 날짜정보를 갖고와 원하는 날짜정보만 사용하도록 구현 (compute_date 함수 참고 부탁 드립니다.) 추가적으로, 이 경우에 1년치 달력정보를 모두 읽어와 속도가 매우 느린데 더 좋은 방법을 알고계신분은 공유 부탁드립니다. ( _ _ ) compute_date(dates, 30)[1].click() 코드를 이렇게 수정해 오는날을 2월 30일을 선택하려 했으나 3월 30일을 선택해, 코드 오류인줄 알고 디버깅해보니 2월달은 30일이 없었습니다...ㅎ 정상동작 중 입니다. 저와같이 초반에 고생하시는 분들께 조금이나마 도움이 되었으면 좋겠습니다. 감사합니다. import time from selenium import webdriver from selenium.webdriver.common.by import By URL = "https://flight.naver.com/" def compute_date(dates, target) -> list: print("compute entire date information from current month to limit") return [date for date in dates if date.text == str(target)] browser = webdriver.Chrome() # browser.maximize_window() browser.get(URL) time.sleep(1) # remove AD popup find = browser.find_elements(By.CLASS_NAME, "anchor") for f in find: if f.get_attribute("title") == "지금 바로 혜택 확인하기": browser.find_element(By.XPATH, '//*[@id="__next"]/div/div[1]/div[9]/div/div[2]/button[1]').click() print("remove pop up") break # push 가는 날 button also delay 1 sec is necessary, if don't use this, can not read date information. browser.find_element(By.XPATH, '//*[@id="__next"]/div/div[1]/div[4]/div/div/div[2]/div[2]/button[1]').click() time.sleep(1) # read date information and push 25 day dates = browser.find_elements(By.CLASS_NAME, "sc-evZas dDVwEk num".replace(" ", ".")) compute_date(dates, 25)[0].click() # read date information and push 30 day dates = browser.find_elements(By.CLASS_NAME, "sc-evZas dDVwEk num".replace(" ", ".")) compute_date(dates, 30)[0].click() while True: pass
안녕하세요! Leetcode daily temperature 문제 해설을 보다 질문이 생겨서 남깁니다! while 문으로 stack을 돌면서 대소 비교를 하는데, 여기서의 시간복잡도가 O(n)이 될 걱정은 안해도 되나요? 어렴풋이 생각하기에, stack에 temperatures의 원소가 들어가기 때문에 n개의 원소가 들어갈 것이고, for문으로 길이가 n인 temperatures를 돌면 결과적으로 worst case로 O(n^2)이 될 수도 있지 않나 ... 라는 생각이 들었습니다. 시간복잡도 개념이 아직 부족해서 헷갈리는 것 같은데 제가 어떤 부분을 간과했을까요?