묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
nested구조에서 JsonSerializable를 사용하고 싶을 땐 어떤 방법을 고려해야하나요?
만약 deliveryFee에 대한 서버의 응답이 json['delivery']['fee'] 일 경우 deliveryFee 란 변수를 그대로 사용한다는 가정하에JsonSerializable에선 어떤 방법으로 처리해줘야하는걸까요?
-
해결됨Flutter 앱 개발 실전
Flutter 빌드 범위
안녕하세요 flutter 개발을 수행하려고합니다.flutter로 강의를 들어보면서 build를 수행해보니 궁금한 점이 하나 있습니다.macos 환경에서 사용할 애플리케이션을 만들려면 macPC에서만 빌드를 할 수 있나요? window 환경에서는 macos 애플리케이션이 빌드 바이너리 생성이 불가능한지 궁금합니다. 반대로 window환경에서 사용할 애플리케이션을 만들려면 windowPC에서만 빌드를 할 수 있나요?만약 된다면 둘을 한번에 shall script 배치 등을 통해 아웃풋으로 각각의 환경의 애플리케이션을 만들 수 있는게 가능한지 궁금합니다.아직 관련 프로젝트 경험이 많지않아 문의 드려봅니다
-
해결됨[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
scrollController 관련 에러입니다.
이런 식으로에러가 발생하는데 이유를 모르겠네요;;강사님 깃 들어가서 코드 비교해보기도 하고 에러를 검색해보기도 했는데 아직 해결하지 못했습니다ㅠ 아래는 코드 전문입니다.import 'package:dusty_dust/component/category_card.dart'; import 'package:dusty_dust/component/hourly_card.dart'; import 'package:dusty_dust/component/main_app_bar.dart'; import 'package:dusty_dust/component/main_drawer.dart'; import 'package:dusty_dust/model/stat_and_status_model.dart'; import 'package:dusty_dust/model/stat_model.dart'; import 'package:dusty_dust/repository/stat_repository.dart'; import 'package:dusty_dust/utils/data_utils.dart'; import 'package:flutter/material.dart'; import '../const/regions.dart'; class HomeScreen extends StatefulWidget { HomeScreen({super.key}); @override State<HomeScreen> createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> { String region = regions[0]; bool isExpanded = true; ScrollController scrollController = ScrollController(); @override initState() { super.initState(); scrollController.addListener(scrollController); } @override dispose() { scrollController.removeListener(scrollController); scrollController.dispose(); super.dispose(); } Future<Map<ItemCode, List<StatModel>>> fetchData() async { Map<ItemCode, List<StatModel>> stats = {}; List<Future> futures = []; for (ItemCode itemCode in ItemCode.values) { futures.add( StatRepository.fetchData( itemCode: itemCode, ), ); } final results = await Future.wait(futures); for (int i = 0; i < results.length; i++) { final key = ItemCode.values[i]; final value = results[i]; stats.addAll({ key: value, }); } return stats; } scrollListener() { bool isExpanded = scrollController.offset < 500 - kToolbarHeight; if (isExpanded != this.isExpanded) { setState(() { this.isExpanded = isExpanded; }); } } @override Widget build(BuildContext context) { return Scaffold( drawer: MainDrawer( selectedRegion: region, onRegionTap: (String region) { setState(() { this.region = region; }); Navigator.of(context).pop(); }, ), body: FutureBuilder<Map<ItemCode, List<StatModel>>>( future: fetchData(), builder: (context, snapshot) { if (snapshot.hasError) { return Center( child: Text('에러가 있습니다.'), ); } if (!snapshot.hasData) { return Center( child: CircularProgressIndicator(), ); } Map<ItemCode, List<StatModel>> stats = snapshot.data!; StatModel pm10RecentStat = stats[ItemCode.PM10]![0]; // 미세먼지 최근 데이터의 현재 상태 final status = DataUtils.getStatusFromItemCodeAndValue( value: pm10RecentStat.seoul, itemCode: ItemCode.PM10, ); final ssModel = stats.keys.map((key) { final value = stats[key]!; final stat = value[0]; return StatAndStatusModel( itemCode: key, status: DataUtils.getStatusFromItemCodeAndValue( value: stat.getLevelFromRegion(region), itemCode: key, ), stat: stat, ); }).toList(); return Container( color: status.primaryColor, child: CustomScrollView( controller: scrollController, slivers: [ MainAppBar( region: region, stat: pm10RecentStat, status: status, dateTime: pm10RecentStat.dataTime, isExpanded: true, ), SliverToBoxAdapter( child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ CategoryCard( region: region, models: ssModel, darkColor: status.darkColor, lightColor: status.lightColor, ), const SizedBox( height: 16.0, ), ...stats.keys.map((itemCode) { final stat = stats[itemCode]!; return Padding( padding: const EdgeInsets.only(bottom: 16.0), child: HourlyCard( darkColor: status.darkColor, lightColor: status.lightColor, category: DataUtils.getItemCodeKrString(itemCode: itemCode), stats: stat, region: region, ), ); }).toList(), ], ), ) ], ), ); }), ); } }
-
해결됨[플러터플로우]코딩 없이 한 달 만에 앱 만들기
섹션2.1부 프로필 완성하기 selected reference to update 에 authenticated User 에 설정 질문
"섹션2.1부 프로필 완성하기" 수강중아래 이미지와 같이 selected reference to update 에 authenticated User 에 설정을 하려하는데알려준 항목이 없고, 선택이 되지 않습니다. 다른 source를 찾아봐도 알려준 항목이 없는데 왜 그런걸까요?이부분 설정이 안되어서 계속 에러로 남아서 run도 되지 않습니다. 어떤부분을 봐야할까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
아래 질문 하신분이랑 정확히 같은 증상입니다
정확히 ‘127.0.0.1:3000’ const로 선언 해놨는데로그인 요청시마다 포트가 랜덤하게 바뀌며 61번 에러가 납니다디오 버전 똑같이 설정했습니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Api 요청 오류
강의 진행하면서 fetchData()로 api요청을 하면 오류가 나며 실행이 되질 않고 여러번 요청하면 가끔 한번 되는식의 문제가 있었습니다. 그런데 future를 묶어서 요청을 한번에 보내는 작업을 하고 나니 이제 아예 실행이 성공되는 일 없이 오류만 일어납니다.혹시 램 용량 부족때문에 api요청이 실패하는 경우도 있을까요?현재 공부중인 노트북 램 용량이 8기가 인데 그게 문제가 될 수도 있을까요? 실행이 아예 안됐던것도 아니고 됐다 안됐다 하니까 어떤게 문제인지 감도 안오네요ㅠ+동일한 조건에서 가끔 요청이 성공 했던걸 보면 코드의 문제는 아닌것 같습니다+포스트맨에선 정상적으로 데이터가 생성되는것을 확인 했습니다현재는 이렇게 하이브 관련 에러만 뜨는데 하이브 적용 전에도 에러 화면만 나타났었습니다ㅠ 뭐가 문제인지 정말 모르겠네요,,원격으로 확인 부탁드려도 될까요?
-
해결됨Flutter 앱 개발 실전
파이어베이스 연결만 하면 에러가 발생해요
파이어베이스 연결하려고 하면 에러가 발생하네요그래들과 플러그인 버전의 문제인거 같기도 하고 ㅜㅜㅜ아무리 검색해도 해결방법을 잘 모르겠어요아래가 에러 내용이에요 FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'android'.> Could not resolve all artifacts for configuration ':classpath'. > Could not find com.android.tools.build:gradle:8.7. Searched in the following locations: - https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/8.7/gradle-8.7.pom - https://jcenter.bintray.com/com/android/tools/build/gradle/8.7/gradle-8.7.pom - https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/8.7/gradle-8.7.pom Required by: project :* 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.org.BUILD FAILED in 5sRunning Gradle task 'assembleDebug'... 5.7sError: Gradle task assembleDebug failed with exit code 1
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
MACOS android 가상 머신 main.dart 실행 시 에러
공부를 몇달 쉬다가 다시 해보려고 맘잡고 하고 있는데 뭔가 환경이 달라 졌는지 안드로이드 가상머신이 에뮬레이터로 띄워는 지는데 main.dart를 실행하면 자꾸 에러가 뜹니다... 인터넷에서 나름 검색을 좀 먼저 해보고 sdk등 도 업데이트를 했는데도 이러네요.tools-sdk 매니저 에서 Tiramisu관련된 모든 sdk를 다 받았고, flutter clean, flutter run 등 실행해도 계속 같은 버그가 뜨네요 ㅠㅠㅠㅠㅠㅠ iOS 가상머신으로 테스트 하고 있어서 당장 강의를 듣는데는 문제가 없는데 뭐가 문제인지 너무 궁금합니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
flutter 설치 질문있습니다
강의를 샀는데요.선생님 nest강의 수강중이라 아직 시작은 안했는데요. 혹시 제 컴퓨터 사용자명이 한글명인데 이거 영문으로 바꿔야지 강의 들을 수 있는건가요?? ㅠㅠ 저번에 한 번 바꾸다가 컴퓨터 잘못될뻔해서 무섭네요
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
에뮬레이터 홈화면
에뮬레이터를 실행하면 강사님같은 위젯화면이 아닌 홈화면이 나옵니다. 어떻게 해결해야할까요?모든 과정 다 제대로 수행했는데 이러네요...참고로 저 번개모양도 불이 들어오지 않습니다..
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
print(resp.data); 여기부터 안되네요
응답이 없네요메세지가 안나와요D/EGL_emulation( 5140): app_time_stats: avg=6131.28ms min=9.11ms max=12253.46ms count=2이건만 나오는데 안드로이드 사용해서 ip 문제인가 해서 final ip = Platform.isAndroid ? simulatorIp : emulatorIp; 이걸로 바꾸어 봐도 안되구요단, 메세지는 조금 달라졌습니다.D/EGL_emulation( 7555): app_time_stats: avg=13725.68ms min=13725.68ms max=13725.68ms count=1D/EGL_emulation( 7555): app_time_stats: avg=688.99ms min=273.39ms max=1104.59ms count=2E/flutter ( 7555): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DioError [DioErrorType.other]: SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = 127.0.0.1, port = 52818E/flutter ( 7555): Source stack:이하 생략... 해결 부탁드립니다.
-
해결됨Flutter 중급 1편 - 클린 아키텍처
sealed class 적용 시...
마지막에 올려주신 강의를 보고 freezed를 sealed class로 변경하여 적용하는 부분을 복습 중 입니다. 영상에서 event부분을 sealed class로 변경하셨는데,state 부분은 어떻게 변경이 되야되는건지 잘 모르겠는데 간단히 설명 해주실수 있을까요? ^^;
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 백그라운드 관련 질문이 있습니다.
이 강의를 보고 영감을 받아 작은 프로젝트를 진행중에 있는데 궁금한점이 있어서 올립니다.알람 기능을 개발하면서 android_manager_alarm_plus 패키지를 사용중인데 최근 안드로이드 버전은 Doze모드로 인해 백그라운드에서는 알람매니저가 제대로 활성화되지 않는다고 들었습니다.저 역시 만든 코드를 테스트하면 백그라운드 상황에서 알람 상태처리까지는 이루어지더라도 포그라운드 화면으로 넘어가는(쉽게 말해 홈화면이나 꺼진 화면에서 알람 화면이 떠야하는) 과정이 이루어지지 않아 다른 방법을 모색하고 있는 중입니다. 코팩님도 백그라운드에서 처리하는 앱개발이나 유지보수를 해보신 경험이 있으셨다면 안드로이드 버전이 올라갈수록 어떻게 진행하셨는지 궁금해서 여쭤봅니다.최근 구글링을 하다보니 FCM을 권장한다는 말이 있던데 이건 아무래도 서버통신이다보니 네트워크연결이 반드시 필요해보이는 것 같아 고려중에 있습니다
-
미해결Flutter 중급 1편 - 클린 아키텍처
클린 아키텍처 질문
안녕하세요. 이미지 검색 앱만들기 파트를 다 보고 몇가지 의문점이 생겨 질문 올립니다.클린아키텍처의 레이어를 보면 RepositoryImpl는 Data 레이어, Repository(추상클래스)는 Domain 레이어로 정의 되어있는데, RepositoryImpl와 Repository의 레이어 단계나 폴더구조를 다르게 가져가는 이유가 있을까요?DI 를 Spring 처럼 어노테이션 같은 것을 이용해 별도의 코드를 작성하지 않고 하는 방법은 없나요?
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터 텍스트 드래그 질문드립니다.
안녕하세요.ios시뮬레이터에서 글자를 드래그 표시하는방법은 어떻게 하는거에요? 선생님
-
미해결Flutter 중급 1편 - 클린 아키텍처
sealed class 데이터 접근
38 강의 내용 관련입니다. import 'package:json_annotation/json_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:note_app/domain/util/order_type.dart'; part 'note_order.freezed.dart'; @freezed abstract class NoteOrder with _$NoteOrder { const factory NoteOrder.title(OrderType orderType) = NoteOrderTitle; const factory NoteOrder.date(OrderType orderType) = NoteOrderDate; const factory NoteOrder.color(OrderType orderType) = NoteOrderColor; }위의 코드는 타입 매칭을 위한 거기 때문에 아래와 같이 dart 에서 지원하는 sealed 클래스를 사용하는 방법으로 고쳤습니다. import 'package:note_app/domain/util/order_type.dart'; sealed class NoteOrder<T> { const factory NoteOrder.title(OrderType orderType) = NoteOrderTitle; const factory NoteOrder.date(OrderType orderType) = NoteOrderDate; const factory NoteOrder.color(OrderType orderType) = NoteOrderColor; } class NoteOrderTitle<T> implements NoteOrder<T> { final OrderType orderType; const NoteOrderTitle(this.orderType); } class NoteOrderDate<T> implements NoteOrder<T> { final OrderType orderType; const NoteOrderDate(this.orderType); } class NoteOrderColor<T> implements NoteOrder<T> { final OrderType orderType; const NoteOrderColor(this.orderType); } order_section.dart 에서 Radio<NoteOrder>( value: NoteOrder.title(noteOrder.orderType), groupValue: noteOrder, onChanged: (NoteOrder? value) { onOrderChanged(NoteOrder.title(noteOrder.orderType)); }, activeColor: Colors.white, ),dart 지원 sealed 클래스를 사용하면 noteOrder.orderType에 접근이 안 되는데 어떻게 수정해야 할까요?
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
range 기능 테스트 중인데요 스타일이 안먹습니다.
날짜 범위 선택 기능 구현 작업중인데 범위 지정시 선택한 두 날짜 스타일을 변경할 수 가 없어요 CalendarBuilders > rangeStartBuilder, rangeEndBuilder속성이 호출되지 않아요 rangeStartBuilder, rangeEndBuilder 를 트리거하는 방법이 있을까요? 아님 아직 구현이 안되어 있을까요?
-
해결됨Flutter로 SNS 앱 만들기
삼항연산자에 대한 질문
안녕하세요 . 프로필 사진에서 삼항연산자를 아래처럼 사용하면 코드가 더 효율적일꺼라 생각했는데 에러가 발생합니다.아래처럼 사용하는 건 틀린건가요? CircleAvatar( radius: 64, backgroundImage: _image == null ? AssetImage('assets/images/profile.png') : MemoryImage(_image!),)
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
dartpad 에서 연습중인데 Future 키워드가 안먹습니다.
안녕하세요Dartpad 에서 연습중인데도강의중 async 프로그램중Future 키워드가 에러가 발생합니다.왜그런지요 알려주세요
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!