묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
중첩 map 쓰는 부분
안녕하세요 강사님.return query.watch().map( (rows) => rows .map( (row) => ScheduleWithColor( schedule: row.readTable(schedules), categoryColor: row.readTable(categoryColors), ), ) .toList(), );이 부분에 질문이 있어서 글 남깁니다.제 생각에는 데이터 구조가 위와 같다고 생각했습니다. 이에 그냥 아래와 같이 작성하면 어떨까라는 생각이 들었습니다.return query.watch().map( (rows) => ScheduleWithColor(schedule: rows[0].readTable(schedules), categoryColor: rows[0].readTable(categoryColors)), ).toList();근데 이와 같이 작성하면 return 타입이 Stream이 아니라 Future가 되는 것 같더군요. 제가 어느 부분에서 혼란을 겪고 있는지 알고 싶습니다. + 추가제가 이렇게 생각한 이유는return query.watch().map((rows) { print(rows.length); return rows .map( (row) => ScheduleWithColor( schedule: row.readTable(schedules), categoryColor: row.readTable(categoryColors), ), ) .toList(); });코드를 이렇게 변경해 봤을 때, rows.length가 1이 출력되었기 때문입니다.
 - 
      
        
    해결됨[플러터 상태관리] Bloc 마스터 코스 기초부터 응용까지!
8-1에서 build하는 app 별 상태가 다르게 나오는데 원인이 무엇일까요?
안녕하세요 강의 잘 보고 있습니다!제가 초기에 아이폰 에뮬로 하기 귀찮아서 mac app이랑 chrome app으로 강의를 따라하고 있었는데요... 약 30분까지의 스크롤 해결 전까지 진행한 상태에서 발견한 에러입니다.보니까 Mac App으로 하니 DioError: SockerException: Connection Failed가 되면서 아래 같이 에러가 발생합니다.chrome으로 하는 경우에는 데이터는 되는데 이미지를 못 읽는듯해요...그래도 아이폰 에뮬로 하니 잘 되긴 하던데... 이 차이는 앱별로 동작하는게 달라서 그런가요??혹시 동일하게 다 가능하도록 해결하는 방법도 있을까요?
 - 
      
        
    미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
프로바이더질문
처음 데이터를 가지고올때 if(state is! CursorPagination){ await this.paginate(); } 위의 코드를 실행하는데만약 데이터가 없다면final resp = await repository.paginate( paginationParams: paginationParams );여기서 캐스팅 오류가납니다.혹시 따로 해결방법이있을까요?? 너무 어렵네요
 - 
      
        
    미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
provider질문
void init(){ state is CursorPaginationLoading; }이런식으로 코드를 짜면 프로바이더 내용이 초기화 되는건가요?
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
children 속성과 관련하여 질문이 있습니다.
children: [ 123, 456, 789, ].map((e) => Row( children:[ e.toString().split('').map((y) => Image.asset('asset/img/$y.png')).toList(), ] )).toList(), ),이 부분에서 강사님이 children에 [] 부분을 빼고 코드 작성을 하셨지만 저는 안드로이드 스튜디오에서 children : [] 을 자동완성 시켜주기도 하고 []의 존재 이유가 복수의 위젯을 넣기 위함이니 그냥 하나만 넣어서 작성하여도 상관없을 것이라고 생각하였습니다.하지만 막상 그렇게 작성해보니 오류가 나서 인터넷도 찾아보고 GPT한테도 물어봤지만 마땅한 해답은 못찾은 채 children 부분에 []를 지우니 오류가 사라지더군요. 왜 그런지 알 수 있을까요?
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
CrossAxisAlignment 질문
import 'package:flutter/material.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @override State<HomeScreen> createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text('랜덤숫자 생성기'), IconButton( onPressed: () {}, icon: Icon( Icons.settings, ), ), ], ), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('123'), Text('456'), Text('789'), ], ), ), Container( width: double.infinity, child: ElevatedButton( onPressed: () {}, child: Text('생성하기!'), ), ), ], ), ), ); } }그냥 수업 내용인데, 왜 첫번째 Column에서는 container나 sizedBox하지 않고 그냥 crossAxisAlignment가 바로 적용되는 건가요?? 혹시 SafeArea 영역이 width가 최대라서 바로 횡축 정렬이 가능해지나요?
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
앱번들 빌드 에러좀 봐주세요.
유튜브 다트 강의, 인프런 플러터 강의, 그리고 코드팩토리의 플러터 프로그래밍 책까지 잘 보고 있습니다.양질의 컨텐츠와 친절한 답변에 매번 감사드립니다.현재 챗gpt api를 이용한 간단한 앱을 만들었고 이것을 빌드하려고 합니다.책 606쪽의 flutter build appbundle이라고 터미널에 치면 아래 에러가 납니다. mac@HanHoseokui-iMac kind_teacher_han % flutter build appbundle💪 Building with sound null safety 💪FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:mergeReleaseResources'.> Multiple task action failures occurred: > A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:/Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: AAPT: error: file failed to compile. > A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:/Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: file failed to compile. > A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:/Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: AAPT: error: file failed to compile.* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 5sRunning Gradle task 'bundleRelease'... 6.2sGradle task bundleRelease failed with exit code 1 이미지 쪽에 에러가 있는 것 같아 보입니다. 저는 앱 아이콘 만들기 웹 사이트(https://www.appicon.co)에서 제가 만든 아이콘으로 안드로이드용 이미지를 만든 후 /Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res에 폴더 붙여넣기를 했었는데 이게 문제가 되었을까요? 옛날에 앱인벤터라는 교육용 블록코딩 앱 개발 플랫폼으로 했을 때는 앱 출시까지 그렇게 어렵지 않게 했었는데.. 한 달가량 헤메고 있으니 힘드네요ㅠㅠ 도와주세요!^^
 - 
      
        
    미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
상속받은 클래스의 named parameter 사용방법이 궁금합니다
상속받은 클래스의 named parameter 사용방법은 없는건가요?BoyGroud의 생성자에 required를 사용해 강의 속(36분) bts 객체의 파라미터를 name:'bts'로 넘겨주는 방법은 없을까요?
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
클래스 상속 질문있습니다.
부모 클래스를 상속할 때..class Idol { String name; int membersCount; Idol({ required this.name, required this.membersCount, }); void sayName() { print('저는 ${this.name}입니다.'); } void sayMembersCount() { print('${this.name}은/는 ${this.membersCount}명의 멤버로 구성되어 있습니다.'); } } 강의에서 설명해주신class GirlGroup extends Idol { GirlGroup( String name, int membersCount, ) : super( name: name, membersCount: membersCount, ); }이 코드 대신 명시적으로class BoyGroup extends Idol { BoyGroup({ required super.name, required super.membersCount, }); }이렇게 사용해도 인스턴스에서 명시적으로 선언하는 것 외에 다른 차이는 없는 건가요?(두 가지 모두 정상 출력확인했습니다.)
 - 
      
        
    미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
GridView에 데이터가 표시가 안됩니다.
안녕하세요. 인스타그램 클론 강의 듣고, 혼자 토이플젝을 하나 하고 있는데 GridView에 데이터가 표시되지 않아 질문드립니다. 기능 #가치 라는 해시태그 버튼을 클릭하면 단어들중 #가치 라는 카테고리에 속하는 단어를 하단에 출력 #구현 사항단어를 여러 카테고리에 속하게 나누어 파이어베이스에 등록 완료해시태그 버튼 클릭했을때, 해당하는 단어들 list로 가지고 옴.#문제사항단어들을 list로 가지고와서 GridView에 출력하게 했으나 출력되지 않음. 첫번째 이미지는 더미데이터를 집어놓은거구요. 두번째 이미지가 현재 상황입니다. import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:uddutsi/tab/home/home_model.dart'; import 'package:uddutsi/tab/search/search_model.dart'; import '../../model/category.dart'; import '../../model/word.dart'; class HomePage extends StatefulWidget { const HomePage({Key? key}) : super(key: key); @override State<HomePage> createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { final dics = const [ '단어1', '차갑다', '버르장머리없다','거지같다','착하다', '단어1', '차갑다', '버르장머리없다','거지같다','착하다', '단어1', '차갑다', '버르장머리없다','거지같다','착하다', '단어1', '차갑다', '버르장머리없다','거지같다','착하다', ]; @override Widget build(BuildContext context) { final model = HomeModel(); final searchModel = SearchModel(); List<Word> wordList = []; return Scaffold( appBar: AppBar( title: const Text('[test]'), ), body: Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ const SizedBox(height: 10), StreamBuilder<QuerySnapshot<Category>>( stream: model.categoriesStream, builder: (context, snapshot) { if (snapshot.hasError) { return const Text('Something went wrong'); } if (snapshot.connectionState == ConnectionState.waiting) { return const Center(child: CircularProgressIndicator()); } List<Category> categories = snapshot.data!.docs.map((e) => e.data()).toList(); return Wrap( direction: Axis.horizontal, //나열 방향 alignment: WrapAlignment.start, //정렬방식 spacing: 5, //좌우간격 runSpacing: 5, //상하간격 children: <InkWell>[ for(var i = 0; i<categories.length; ++i) ...[ InkWell( child: Container( padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: const Color(0xffdddddd), borderRadius: BorderRadius.circular(6), ), child: Text('#${categories[i].name}'), ), onTap: () async{ print('click ${categories[i].name}'); List<dynamic> _listData = await searchModel.getWordsByCategoryId(categories[i].id); setState(() { wordList.clear(); wordList = _listData.map((dynamic item) => Word.fromJson(item)).toList(); wordList.forEach((element) {print('${element.name}');}); }); }, ), ], ], ); } ), const SizedBox(height: 10), Expanded( child: GridView.builder( itemCount: wordList.length, gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, //3열을 만드는 속성 crossAxisSpacing: 2.0, mainAxisSpacing: 2.0, ), itemBuilder: (BuildContext context, int index){ final dic = wordList[index]; return GestureDetector( onTap: (){ print('click ${dic.name}'); }, child: Hero( tag: dic, child: Text(dic.name), ) ); }, ), ), ], ), ), ); } }setState 함수안에 데이터를 업데이트 한후, 출력을 해보면 wordList가 잘 출력되는것까지는 확인했는데 GridView에서는 출력이 안됩니다. 혹시 GridView가 아닌 다른 위젯으로 출력을 해야할까요? 검색을 하려해도 무슨 키워드로 검색을 해야할지 감이 안 잡혀서요. 답변 기다리겠습니다. ^^
 - 
      
        
    해결됨처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)
dispose() 관련 질문 있습니다~
바로 만들어보기: 이미지 갤러리 화면 구성하기2강의 12:04~12:22, 해당 코드 기반 질문입니다! Q1. "이 클래스(MyHomePage)가 사라지면" 이라는 설명이 있는데, 앱 종료시 이외에 이 클래스가 사라지는 시점은 언제언제인가요?! Q2. 반대로, 위 클래스의 인스턴스(?)가 생성되는 시점은 홈 화면에 접속할 때마다 인가요?.?
 - 
      
        
    해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
색상정보 입력 테스트 시 id 문제 문의 드립니다ㅜㅜ
[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: SqliteException(1299): while executing statement, NOT NULL constraint failed: category_colors.id, constraint failed (code 1299)이란 에러가나는데 flutter pub run build_runner build로햇는데도 이런데 어떻게하면될까요?ㅠㅠ
 - 
      
        
    해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
로그인버튼을 눌렀을때 refreshToken이 안뜹니다ㅠㅠ
안녕하세요! Dio로 Auth API 요청해보기 강의에서 11분50초쯤 알려주셧듯, 로그인버튼을 클릭했는데[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: DioError [DioErrorType.other]: SocketException: Connection refused (OS Error: Connection refused, errno = 61), address = 127.0.0.1, port = 64549 이렇게 에러가뜨면서 refreshToken이 안뜨는데 시뮬레이터 IP문제일까요..?
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
자동완성 시 좌측에 같이 뜨는 심볼 의미
위 사진처럼 자동완성 박스가 뜨면, 왼쪽에 심볼의 의미가 궁금합니다.검색 해봤을때 C는 class, E는 enum 이라고 하는데 =의 의미는 무엇인가요??
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안드로이드 스튜디오 자동정렬
Flutter Hello World 강의에서 강사님이 작성하시는것과 똑같이 괄호 안에서 엔터키를 누르면서 코드를 작성을 했는데 에뮬레이터를 실행하니 모든 코드에 한줄에 자동으로 정렬되는데 한줄에 코드가 정렬되있으니 보기가 너무 힘든데 자동정렬을 없앨 수 있는방법이 있을까요? 그리고 강의에서는 에뮬레이터를 켜놓고 hot restart를 눌러도 에뮬레이터 화면이 내려가지 않는데 저는 에뮬레이터를 켜놓고 안드로이드 스튜디오의 화면을 클릭하면 에뮬레이터가 뒤로가서 번거로운데 이건 어떻게 해결하죠????
 - 
      
        
    미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
nRequest Interceptor 작업하기 부분 storage 질문드립니다.
여기서 data.dart에 있는 storage를 사용하지 않고 새로 생성해서 사용하는 이유가 무엇인가요??class CustomIntercepter extends Interceptor { final FlutterSecureStorage storage; CustomIntercepter({required this.storage}); // 1) 요청을 보낼 때 @override void onRequest( RequestOptions options, RequestInterceptorHandler handler) async { print('[REQ] [${options.method}] ${options.uri}'); if (options.headers['accessToken'] == 'true') { options.headers.remove('accessToken'); final token = await storage.read(key: ACCESS_TOKEN_KEY); options.headers.addAll({'authorization': 'Bearer $token'}); } return super.onRequest(options, handler); } // 2) 응답을 받을 때 // 3) 에러가 났을 때 }
 - 
      
        
    해결됨Flutter 앱 개발 기초
Bookstore url_launcher 패키지 안드로이드
https://pub.dev/packages/url_launcher 안녕하세요. 강의 잘듣고 있습니다!Bookstore 만들어보고 있는데, 노션에는 안드로이드 부분 예시가 있지만, url_launcher 패키지 Configuration 쪽에는 안드로이드 부분 예시가 없어서 문의드립니다.따로 설정을 해야하는 걸까요? 설정해야한다면, 저 부분 코드를 복사할 수 있게끔 노션에 적어주실 수 있으실까요?감사합니다^^
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
flutter설치 오류
파란 버튼을 이용해서 플러터 SDK를 다운로드 받았는데 flutter doctor을 실행해보니Flutter (the doctor check crashed)X Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us knowabout this issue at https://github.com/flutter/flutter/issues.X Exception: Cannot find the executable for where. This can happen if the System32 folder (e.g.C:\Windows\System32 ) is removed from the PATH environment variable. Ensure that this is present and then tryagain after restarting the terminal and/or IDE.라는 오류가 뜹니다. 이건 어떻게 해결해야 하는건가요? 그리고 또 안드로이드 스튜디오에선 [!] Android Studio (version 2022.1) X Unable to find bundled Java version. 라는 오류가 뜨는데 해결을 어떻게 해야하나요?
 - 
      
        
    미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
구글지도가 뜨기는 한것 같은데 지도가 안보입니다.
강의 잘보고 있습니다.구글지도 사용해 보기에서 run하면 아래와 같은 화면이 보이고 지도는 보이지 않습니다.디바이스도 변경해 보았는데 증상이 같습니다.문제가 무엇일 까요?
 - 
      
        
    해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
라우터 셋팅 에러가 발생합니다.
강의 내용 따라하면서 하고 있는데요강사님하고는 다르게 아래와 같이 기본값을 넣어라정의되어 있지 않다? 아래 캡쳐와 같이 나오더라구요막혀서 더이상 진행이 안되고 있는데제가 한 부분 첨부 드리니 확인 부탁드릴께요!https://drive.google.com/file/d/1609gWfNr-B7Nvc9dlBW9ve_zGff89gd2/view?usp=sharing