묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
[질문] cascading operator 설명하실 때
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ...는 Spread Operator 이고..이 Cascading Operator 아닌가해서 질문드립니다. dart 강의 3강, 32분 쯤에 나오는 내용입니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
책과 강의
책과 병행하고 있습니다.현재 'U&I'를 클론코딩 중입니다.강의에서는 코드를 짠 이후 정리하는 과정이 있어서 좋았고,책에서는 미리 정리할 것을 산정하여 진행하는 방법도 좋았습니다.한데, 제 수준이 문외한이나 다름이 없어 두 교보재의 코딩 방식이 미묘하게 달라서 헛갈리네요.직장인이라 시간이 부족해서 둘 중 한 방식으로 복습하고자 합니다.어느 방식을 체득하면 더 좋을지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
voidcallback함수와 클래스내에 변수선언에 관한질문
toppart위젯의 빌드함수안에 final now = DateTime.now(); 를 선언하는것은 어떤이유인가요?final DateTime selectedDate; final VoidCallback onHeartPressed;밑에 선언해도(클래스의 변수로 선언해도) 동일한 동작을 하지않나요?어차피 toppart는 statelesswidget이라 setstate를 하게되면 homescreen의 state가 다시 빌드되면서 toppart위젯도 (빌드함수만실행되는게아니라) 새로 생겨날텐데 어떤거는 빌드함수내에 선언하고 어떤거는 클래스내부의 프로퍼티로 선언하는지 차이가 궁금합니다. toppart인스턴스에 onHeartPressed함수를 아규먼트로 넘겨줄때 함수기호인()괄호를 넣지않았는데 이는 voidcallback 과 관련있는것인가요? void함수도 파라미터를 만들수있는걸로 이해했는데 return이 있는(void가 아닌)함수만 함수를 사용할때 ()기호를넣는것인가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
android studio 세팅
android studio 세팅중에flutter doctor를 하면Unable to locate Android SDK. Install Android Studio from: https://developer.android.com/studio/index.html On first launch it will assist you in installing the Android SDK components. (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions). If the Android SDK has been installed to a custom location, please use flutter config --android-sdk to update to that location. 이런 메세지가 뜹니다.다른분 질문 답변 중 환경변수 문제 같다고 하셨는데혹시 환경변수 경로에도 한글이 들어가면 문제가 되는걸까요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
오늘도 출근 세팅하기
AppDelegate.swift에서 GMSServices.provideAPIKey(자신의 apikey)를 어떻게 숨기죠? github에 push하니까 다 보여서요.
-
미해결Flutter 중급 1편 - 클린 아키텍처
UI Event의 리턴값을 이용하고 싶습니다
안녕하세요, 좋은 강의 잘 듣고 있습니다.이벤트 컨트롤러를 이용하여 스낵바 이벤트를 발생시키는 부분에서 질문이 있습니다.스낵바 대신 alertDialog를 사용하려 하는데, alert사용자가 선택한 값을 받아오려면 어떻게 하면 될까요?result 값에 따라 분기를 태우고 싶은데, showDialog 이벤트를 사용하는 곳이 많아 showDialog 함수 내에서 분기를 태우긴 찝찝합니다.event.when( showDialog: () async { dynamic result = await showDialog( context: context, barrierDismissible: false, // user must tap button! builder: _buildPopup, ); // 여기에서 if (result==~) 하기엔 범용성이 적다 return result; },
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
재사용 클래스 임폴트 방법
다른 프로젝트들은 외부 프로젝트를 현재 만드는 프로젝트를 임폴트하여 접근이 가능한데플러터에도 이러한 방법이 있을까요 pub.dev를 이용하지 않고 제가 자주 쓰는 클래스를 따로 만들어 프로젝트를 진행할때 마다 import하는 방법을 알고 싶은데 해당 내용이 없어서 찾으려고 해도 어떤 용어로 어떻게 찾을 지 몰라서 여기다 물어봅니다. (ex : utils, repository connection...)아시면 꼭 답변 부탁드릴게요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
가상화를 못하는 CPU인건가요? 확인 부탁드립니다.
뜨면 안된다고 하는 메시지가 떠서요 ㅠㅠ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
flutter dispose 관련
안녕하세요액자 프로젝트에서dispose 함수로 Stateful 위젯 삭제할 때, if 문 안쓰고46번 코드만 적어도 되나요?제가 생각했을 땐, 어차피 init 함수 실행되면서 timer 무조건 실행되니까 timer 가 null 이 안되고,또, 느낌표로 null 아니라고 인증마크?도 했으니if 문으로 체크해야되나? 라는 의문이 들어서요^^
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
const constructor 강의
- import 'package:flutter/material.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({Key? key}) : super(key: key); @override State<HomeScreen> createState() => HomeScreenState(); } class HomeScreenState extends State<HomeScreen> { @override Widget build(BuildContext context) { return Scaffold( body: Container( width: MediaQuery.of(context).size.width, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ TestWidget(label: 'test1'), TestWidget(label: 'test2'), ElevatedButton( onPressed: (){ setState(() {}); }, child: Text( '빌드', ), ), ], ), ), ); } } class TestWidget extends StatelessWidget { final String label; const TestWidget({ required this.label, Key? key}) : super(key: key); @override Widget build(BuildContext context) { return const Placeholder(); } } const constructor 이론 강의와 코드를 똑같이 작성했는데 가상 화면엔 X 모양과 함께 A RenderFlex overflowed by 141 pixels on the bottom. 라는 오류가 뜨는데 어디서 잘못 된 걸까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
image_picker pub get 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 안녕하세요 강사님!image_picker pub get 관련하여 해당 오류가 지속적으로 발생해 질문 드립니다. 답변 부탁드립니다 ㅠㅠ!
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
build 함수안에 선언하는 것과 밖에 선언하는 것의 차이가 무엇인가요?
이번 강의에서 textStyle을 build 함수 안에 선언하는데그냥 밖에다가 밑에처럼 하면 안되는 건가요?안된다면 차이가 뭔가요?import 'package:calendar_scheduler/const/colors.dart'; import 'package:flutter/material.dart'; class TodayBanner extends StatelessWidget { final DateTime selectedDay; final int scheduleCount; const TodayBanner({ required this.selectedDay, required this.scheduleCount, Key? key, }) : super(key: key); static const textStyle = TextStyle( fontWeight: FontWeight.w600, color: Colors.white, ); // 이부부부부분 @override Widget build(BuildContext context) { //원래 선언 자리 return Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), child: Container( color: PRIMARY_COLOR, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( '${selectedDay.year}년 ${selectedDay.month}월 ${selectedDay.day}일', style: textStyle, ), Text( '$scheduleCount개', style: textStyle, ) ], ), ), ); } }
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
GoRouter return이 안됩니다.
final routeProvider = Provider<GoRouter>( (ref) { print('1 : routeProvider 실행'); final authState = ref.watch(authProvider); print('1 : authState is ${authState}'); print('------GoRouter return!!-------'); return GoRouter( initialLocation: '/', routes: authState.route, refreshListenable: authState, redirect: authState.redirect, ); }, ); 위에서 return GoRouter하는 순간 위와 같은 오류가 발생하네요...ㅠ몇 시간을 고민해도 도저히 모르겠습니다.복기하면서 나는 오류인데, 그 전에 강의 보면서 해놓은거랑 똑같이해도 이것만 오류가 나네요... 도와주세요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
class 문법 관련하여 질문있습니다.
final homeUrl = Uri.parse('https://blog.codefatory.ai');homeUrl을 해당 변수를 사용하는 클래스 밖(상위)에서 선언하는건 어떤이유인가요? loadRequest()가 수행되는공간과 같은 공간에 위치시켰더니'the instance member 'homeUrl' can't be accessed in an initializer. Try replacing the reference to the instance member with a different expression.' 이란 에러가 뜨더군요.클래스 컨스트럭터 내에서 변수를 사용하려면 상위공간에 미리 선언해야만 하는것인가요?(이전 코드에선 web view위젯 안에서 homeUrl을 call했기에 webview위젯 밖에 선언되어있어서 괜찮았던거라고 이해해도되는걸까요? WebViewController controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..loadRequest(homeUrl);새로 등장한 이 코드에서 (..)은 찾아보니 cascade notation 이라는 문법이더군요.맞다면 WebViewController controller = WebViewController();controller.setJavaScriptMode(JavaScriptMode.unrestricted);controller.loadRequest(homeUrl);과 같은 뜻일텐데 이 코드처럼 풀어서 쓰려하면' the name of a constructor must match the name of the enclosing class'라는 에러가 뜹니다. 이는 왜일까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
UserModel 에서는 IModelWithId를 implements하지 않는 이유가 있나요?
pagination을 할때 사용할 모델들에 IModleWIthId를 implements 한다고 하셨는데, UserModel 에서는 어떤 이유가 있어서 하지 않으신건가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
mainAxisSize
mainAxisSize는 주축 크기를 max일때 부모위젯의 크기만큼 꽉채우고,min일때 자식위젯들의 크기만큼만 채우는게 맞나요?그럼 따로 mainAxisSize파라미터를 사용하지 않을때는 defalut값이 max인건가요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
yaml구조 공부링크 요청드립니다
안녕하세요. 강의 중간에 yaml에 대해 더 궁금한 사람들을 위해 링크를 남겨주신다 하셨는데, 수업자료나 다른곳에서 링크를 찾을수가 없어서 질문드립니다.
-
미해결Flutter 중급 1편 - 클린 아키텍처
의존성 주입 질문있습니다.
안녕하세요~ 덕분에 클린 아키텍쳐 구조 잘 공부했습니다.혹시 의존성 주입부분에서 질문이 있습니다.제가 개인적으로 연습을 하면서 클린 아키텍쳐를 적용하고 있습니다./di/provider_setup.dart 에서 한번에 의존성 주입List<ChangeNotifierProvider> getProviders() { final dio = Dio(); SongRepository repository = SongRepository(dio); UseCases useCases = UseCases( getSearchSong: GetSearchSongUseCase(repository: repository), getSearchSinger: GetSearchSingerUseCase(repository: repository), getRecentlySongsList: GetRecentlySongsListUseCase(repository:repository), ); SearchViewModel searchViewModel = SearchViewModel(useCases: useCases); HomeViewModel homeViewModel = HomeViewModel(useCases: useCases); return [ ChangeNotifierProvider(create: (_) => searchViewModel), ChangeNotifierProvider(create: (_) => homeViewModel), ]; }main 에서 주입void main() { // provider 호출 final providers = getProviders(); runApp( MultiProvider( providers: providers, child: const MyApp(), ), ); }context.watch<SearchViewModel>(); 은 잘 작동해서 뷰에 출력을 잘 하고있습니다.class _SearchScreenState extends State<SearchScreen> { @override Widget build(BuildContext context) { final searchViewModel = context.watch<SearchViewModel>(); final state = searchViewModel.state; ... }context.watch<HomeViewModel>();은 에러가 발생합니다.class _Body extends StatelessWidget { const _Body({Key? key}) : super(key: key); @override Widget build(BuildContext context) { final homeViewModel = context.watch<HomeViewModel>(); final state = homeViewModel.state; ... }에러내용======== Exception caught by widgets library ======================================================= The following ProviderNotFoundException was thrown building _Body(dirty): Error: Could not find the correct Provider<HomeViewModel> above this _Body Widget This happens because you used a `BuildContext` that does not include the provider of your choice. There are a few common scenarios: - You added a new provider in your `main.dart` and performed a hot-reload. To fix, perform a hot-restart. - The provider you are trying to read is in a different route. Providers are "scoped". So if you insert of provider inside a route, then other routes will not be able to access that provider. - You used a `BuildContext` that is an ancestor of the provider you are trying to read. Make sure that _Body is under your MultiProvider/Provider<HomeViewModel>. This usually happens when you are creating a provider and trying to read it immediately. For example, instead of: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // Will throw a ProviderNotFoundError, because `context` is associated // to the widget that is the parent of `Provider<Example>` child: Text(context.watch<Example>().toString()), ); } ``` consider using `builder` like so: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // we use `builder` to obtain a new `BuildContext` that has access to the provider builder: (context, child) { // No longer throws return Text(context.watch<Example>().toString()); } ); } ``` If none of these solutions work, consider asking for help on StackOverflow: https://stackoverflow.com/questions/tagged/flutter The relevant error-causing widget was: When the exception was thrown, this was the stack: #0 Provider._inheritedElementOf (package:provider/src/provider.dart:343:7) #1 Provider.of (package:provider/src/provider.dart:293:30) #2 WatchContext.watch (package:provider/src/provider.dart:693:21) #3 _Body.build (package:what_do_you_want_to_sing/presentation/home/home_screen.dart:79:35) #4 StatelessElement.build (package:flutter/src/widgets/framework.dart:4949:49) #5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4878:15) #6 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5) #7 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:19) #8 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21) #9 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:378:5) #10 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1175:15) #11 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1104:9) #12 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:881:7) (elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch)저번에 이런 에러가 발생했을때, 의존성 주입이 안된 상태에서 context.watch() 를 해서 오류가 나 의존성을 추가해 해결했습니다.하지만 이번에는 잘모르겠습니다. 의존성도 잘 주입되어서 view 단에서 잘 호출 하고 있는거 같은데.. 어떻게 해결해야할까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
sdk 오류 문의입니다...
Android toolchain 부분에 오류가 발생하여 아래 명령어인 flutter doctor --android-licenses를 실행했을 때, 아래와 같은 에러가 발생합니다.JAVA_HOME 환경변수는 아래와 같습니다.도움 부탁드립니다!
-
미해결Flutter + Firebase로 넷플릭스 UI 클론 코딩하기 [무작정 플러터]
CarouselImage문제
안녕하세요, home_screen.dart 페이지에서 movies이 부분도 빨간줄이 쳐져 있습니다.어떻게 해결해야 할까요?