묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Flutter로 SNS 앱 만들기
섹션 2 회원가입화면
예상하지 않게 안드로이드와 플러터 업 하면서 에러로 인하여 섹션 2에 이름,패스원드 확인 검징로직작성편을 다시 보고 있습니다.그런데, 검증로직에서 에러 부분에 색상이 흰색으로 나와요.강의화면처럼 빨강색으로 나오고 싶은데 어떻게 하면 됩니까validator: (value) {if (value == null ||value.trim().isEmpty ||!isEmail(value.trim())) {return '이메일을 입력해주세요';
-
해결됨Flutter로 SNS 앱 만들기
섹션 8 - Follow, Unfollow 기능 추가 파트에서 UserState에서 UserModel을 얻어지지가 않습니다.
문제가 되는 것으로 추정되는 코드는 UserModel currentUserModel = context.read<UserState>().userModel;입니다.이전 강의인 '특정 사용자의 정보 표시' 에서부터 문제가 발생했는데, 이번 강의에서 그냥 지우시길래 일단 넘어갔었습니다.그러나, 이번 강의에서 똑같이 UserState에서 userModel을 얻어오려고 하니, 실제로는 값이 저장되지 않았습니다.user_state.dart와 user_model.dart를 올려놓으신 Github 최종 코드로 그대로 복사해봤으나, 별다른 효과는 없었습니다...어떻게 해야할 지 모르겠습니다. 의견 부탁드립니다. userModel에는 값이 저장되었으나, currentUserModel에는 저장되지 않은 모습 메일에 프로젝트 파일을 첨부하여 보내겠습니다. 감사합니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
VideoPlayer 강의에서 file 이 에러가 생기는데 왜일까요?;;;
file 에러가 뜨는데 이유를 모르겠습니다 ;;
-
해결됨Flutter로 SNS 앱 만들기
섹션 7 - 게시글 목록 화면 - 게시글 정보 가져오기에서 Logger에 아무것도 출력되지 않습니다...
커뮤니티에서 저랑 비슷한 증상을 보이는 2분의 질문을 봤습니다. FeedModel도 createAt으로 되어 있었습니다. 에뮬레이터를 수차례 삭제해보고, 재설치를 반복했습니다만 아무것도 찍히지 않았습니다.사용하는 에뮬레이터는 Pixel 8 API 34였고, 실제 안드로이드 14인 갤럭시 S21+ 에도 연결해서 테스트해봤으나, 똑같은 상황이 발생했습니다.코드는 아마 이메일로 보내면 되는 것 같아 이메일로 첨부하겠습니다!
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
에러가 생기네요 - 미세먼지앱 섹션57-19 부터 입니다.
에러가 생기네요 - 미세먼지앱 섹션57-19 부터 인데에러가 생기네요 - 미세먼지앱 섹션57-19 부터 인데, 구판 섹션26-19 입니다.수시로 에러 생기고 가끔 수십번에 1번은 데이터가 들어오는데 그것도 조금 지나면 에러 메세지가 나오네요.첨부파일 참조아마 오타 일건데 암만 강의하구 비교해도 오타를 찾지를 못하겠습니다.포기하구 강의따라가도 20, 21 에서도 계속 에러 나와서 강의 포기하구 있다가 연락드립니다.코드는 첨부 합니다./// component/main_app_bar.dart /// import 'package:flutter/material.dart'; import 'package:section26_fine_dust/constant/color.dart'; import 'package:section26_fine_dust/model/stat_model.dart'; import 'package:section26_fine_dust/model/status_model.dart'; class MainAppBar extends StatelessWidget { final StatusModel status; final StatModel stat; MainAppBar({ required this.status, required this.stat, super.key, }); @override Widget build(BuildContext context) { final ts = TextStyle( color: Colors.white, fontSize: 30.0, ); return SliverAppBar( backgroundColor: status.primaryColor, expandedHeight: 500, flexibleSpace: FlexibleSpaceBar( background: SafeArea( child: Container( margin: EdgeInsets.only(top: kToolbarHeight), child: Column( children: [ Text( '서을', style: ts.copyWith( fontSize: 40.0, fontWeight: FontWeight.w700, ), ), // const SizedBox(height: 20.0), Text( getTimeFromDateTime(dateTime: stat.dataTime), style: ts.copyWith( fontSize: 20.0, ), ), const SizedBox(height: 20.0), Image.asset( status.imagePath, width: MediaQuery.of(context).size.width / 2, ), const SizedBox(height: 20.0), Text( status.label, style: ts.copyWith( fontSize: 40.0, fontWeight: FontWeight.w700, ), ), const SizedBox(height: 8.0), Text( status.comment, style: ts.copyWith( fontSize: 20.0, fontWeight: FontWeight.w700, ), ), ], ), ), ), ), ); } String getTimeFromDateTime({required DateTime dateTime}) { return '${dateTime.year} ${dateTime.month} ${dateTime.day} ${dateTime.hour} ${dateTime.minute}'; } String getTimeFormat(int number) { return number.toString().padLeft(2, '0'); } } /// screen/home_screen.dart /// import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:section26_fine_dust/component/card_title.dart'; import 'package:section26_fine_dust/component/category_card.dart'; import 'package:section26_fine_dust/component/hourly_card.dart'; import 'package:section26_fine_dust/component/main_app_bar.dart'; import 'package:section26_fine_dust/component/main_card.dart'; import 'package:section26_fine_dust/component/main_drawer.dart'; import 'package:section26_fine_dust/component/main_state.dart'; import 'package:section26_fine_dust/constant/color.dart'; import 'package:section26_fine_dust/constant/status_level.dart'; import 'package:section26_fine_dust/model/stat_model.dart'; import 'package:section26_fine_dust/repository/stat_repository.dart'; import '../constant/data.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @override State<HomeScreen> createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> { Future<List<StatModel>> fetchData() async { final statModels = await StatRepository.fetchData(); print(statModels); return statModels; } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: primaryColor, drawer: MainDrawer(), body: FutureBuilder<List<StatModel>>( future: fetchData(), builder: (context, snapshot) { if (snapshot.hasError) { // 에러가 있을때 return Center( child: Text('에러가 있습니다.'), ); } if (!snapshot.hasData) { // 로딩 상태 return Center( child: CircularProgressIndicator(), ); } List<StatModel> stats = snapshot.data!; StatModel recentStat = stats[0]; // 1 - 5, 6 - 10, 11 - 15 // 7 final status = statusLevel .where( (element) => element.minFineDust < recentStat.seoul, ) .last; return CustomScrollView( slivers: [ MainAppBar( stat: recentStat, status: status, ), SliverToBoxAdapter( child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ CategoryCard(), const SizedBox(height: 16.0), HourlyCard(), ], ), ), ], ); }, ), ); } }
-
미해결[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!
[문의드립니다] supabase에서 제공하는 kakao Auth Providers를 활용하여 인증을 구현을 어떻게 진행하면 되는지요?
요셉님께.. 강의 잘 듣고 있습니다. 질문을 드립니다. Supabase 의 Auth Providers 에서 Kakao를 제공해주는데요..이를 활성화해서 로그인을 구현하고자 하려면 어떻게 해야 할런지요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
restaurant_repository.g.dart 파일에서 에러가 나옵니다.
g dart 파일을 생성하면 final value = RestaurantDetailModel.fromJson(_result.data!); 여기서 에러가 발생합니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
appBar bottom에 preferredSize 구성시 child 에 Row 로 TabBar 설정하면 TabBar 안보이는 경우
이때 row에 mainAxisSize: MainAsixSize.min 과 같이 사이즈를 설정하면 TabBar 가 보입니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
데이터가 구조가 List<dynamic> 형식일때 질문 드려 봅니다.
[ { "no": 1, "write_date": "2015-03-25 13:28:15", "content": "쇼핑몰 공지사항\r\n 활용한 게시판입니다." }, { "no": 2, "write_date": "2015-03-25 13:28:40", "content": "쇼핑몰 오픈이벤트!\r\n쇼핑몰 오픈이벤트로 최대 30% 까지 할인된 가격으로 만나보세요." },]안녕하세요.데이터가 강의처럼 meta와 data로 나뉘고 그안에 List로 들어오는게 아니고 위에처럼 그냥 List로 들어온다면 1.Future<CursorPagination<RestaurantModel>> paginate();이렇게 사용 못하는건가요?된다면class CursorPagination<T> extends CursorPaginationBase { 여기를 어떻게 해야 할지 모르겠습니다.} 2.Future<List<RestaurantModel>> paginate(); 이렇게 사용해야 한다면abstract class CursorPaginationBase {} 이거는 어떻게 사용해야 할까요? 3.Error: type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>?' in type cast 이렇게 에러가 뜨는데CursorPagination<T> 이런 구조로 한다는거 자체가 말이 안되는건가요?Future<List<RestaurantModel>> 이런 형식으로 해야 한다면 RestaurantModel을 T로 받으면서 할 수 없는건가요?CursorPaginationBase 이거는 RestaurantModel을 class RestaurantModel extends CursorPaginationBase이런식으로 사용해야 할까요?
-
미해결[플러터플로우]코딩 없이 한 달 만에 앱 만들기
테스트 모드 구글 Oauth 도메인 추가 방법 발견
테스트 모드로 앱을 켠다.개발자 모드로 들어간다.콘솔에 보면 다음과 같은 형태의 도메인이 노출되어 있다:'ff-debug-service-frontend-ygxkweukma-uc.a.run.app'노출된 도메인을 firebase->authentication->settings->승인된 도메인에 추가한다.칭찬해주시죠 강사님!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
여러개의 Repository 에서 하나의 Dio를 공유해야 하는 이유가 뭔가요?
여러개의 Repository 에서 하나의 Dio를 공유해야 하는 이유가 뭔가요? 장점에 대해서 나중에 설명해 주신다고 하셨는데 그 내용을 못찾았어요.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
속도 이슈
안녕하세요.맥북 사양이 낮아서 그런지 시뮬레이터를 켜두면 렉이 심해서 코드를 작성할때마다 재시작을 하고 있는데부팅하는데 시간이 꽤 걸려서요.혹시 시물레이터를 계속 켜두면서 컴퓨터에 부담이 덜가는 방법이 있을까요? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
itemcode.name
미세먼지 강의 중에 itemCode.name에 name을 쓰는 근거가 이해가 안됩니다.어디를 확인해 봐야 될까요 ?
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
class를 직접사용
강의를 들으면서 class에 대한 혼동이 생겨 문의합니다... static 을 쓰지 않았는데..class를 인스터스화 하지 않고 class를 직접사용이 가능한가요..? 미세먼지 강의 영상중 캡쳐해서 올립니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
디바이스 선택이 안됩니다
실행버튼 옆에 select device를 선택하려고 하니 not applicable for the "main.dart" configuration라고 뜨네요 ㅠㅠ
-
미해결Flutter로 SNS 앱 만들기
섹션2 TextFormField/ElevatedButton/TextButton사용에서
섹션2 회원가입TextFormField/ElevatedButton/TextButton사용에서 회원가입 버튼이 radius가 먹고 있는데 어디서 먹고 있는지 모르겠습니다. 안드로이드 업그레이드 하면서 이러네요. 메일 보냈습니다.
-
미해결[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!
카카오 로그인 질문드립니다
loginKakao 의 action code 맨 하단 // 5. DB 에 유저 데이터 동록 await maybeCreateUser(credential.user!);에서 에러 표시가 뜹니다.
-
미해결플러터와 장고로 1시간만에 퀴즈 앱/서버 만들기 [무작정 풀스택]
heroku 푸시 에러
! [remote rejected] master -> master (pre-receive hook declined) 이 에러가 계속 나오는데 검색해서 나오는master를 main으로 바꾸거나.. force 하거나... 등등 뭐 나오는 거 다 해 보고 스택오버플러우 챗지피티랑 구글 제미나이한테 물어봤는데 하라는 대로 해도 계속 안 됩니다.. 포기 일보 직전인데 방법이 있을까요.. 참고로 플러터까진 잘 듣다가 파이썬이랑 쟝고 몰라서 맹목적으로 따라하는 중인데 이게 의미가 있는 건지 모르겠습니다.. ㅜ깃랩도 처음 깔았고요(깃허브는 전에 가입만 했음)
-
해결됨Flutter로 SNS 앱 만들기
파베 생성 도와주세요
현재 강의와 유사한 프로젝트를 하고 있는 게 있어서 이 강의를 듣고 만들어 놓은 코드를 보면서 작업을 하고 있습니다.게시물 파베 생성 코드를 그대로 가져와서 데이터 종류만 몇 개 더 넣었는데 안되는 이유를 잘 모르겠습니다...현재 clubProvider와 clubRepository에서 잘못된 거 같은 느낌인데 감이 안옵니다.. screen/modify 디렉터리 안에 createClubScreen이 데이터를 저장하는 스크린입니다..한번만 봐주시면 감사하겠습니다.. https://github.com/gimseongcheol/clubproj
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
아이폰 배포 관련
안녕하세요 강사님~플러터로 웹뷰 이용하여 앱을 만들었는데안드로이드는 APK파일 만드는것이 간단하였으나아이폰의 IPA를 생성하려고 하니 좀 힘이듭니다.앱스토어 개발자 비용을 내지 않고는 IPA파일 생성이 전혀 불가능한지궁금합니다.xcode와 핸드폰 연결해서는 사용중인데, 내부 사용자들한테 배포를 좀 해보려고 하는데전혀 안되네요.. ㅠㅠ