Flutter 중급 - Http통신, 상태관리

Flutter 중급 - Http통신, 상태관리

(20개의 수강평)

401명의 수강생
Google FlutteriOSAndroid웹앱
33,000원
지식공유자 · 오준석
33회 수업· 총 4시간 28분수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 초급
이성학 프로필

could not reach cloud firestore backend 에러가 자꾸 발생합니다ㅠㅠ 이성학 10일 전

안녕하세요 선생님 강의 잘 듣고있습니다.

이번 강의에는 포함되지 않은 내용인데 검색해도 뾰족한 방법이

없어서 부득이 질문 드립니다ㅠㅠ

플러터 생존코딩 책에서 Streambuilder와 Firebase를 이용하여

데이터를 실시간으로 받아서 앱에서 출력하는 부분을 작성하고있었습니다.

책에서 나오는 대로 Firebase와 연결을 하고 앱을 실행했는데

자꾸 아래와 같은 메시지가 나옵니다.

W/Firestore(11071): (21.3.0) [OnlineStateTracker]: Could not reach Cloud Firestore backend. Connection failed 1 times. Most recent error: Status{code=PERMISSION_DENIED, description=The project was disabled or deleted., cause=null}

W/Firestore(11071): This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.

그래서 혹시몰라서 코드에 snapshot에 데이터가 있을 경우 휴지통을 출력하게 했는데 시간이 좀 걸렸지만 휴지통이 나오더군요ㅠㅠ

집에서 하는거라 인터넷도 연결이 되어있고 이전에는 됐었는데 연습한다고 코드 다시 짰더니 이런 문제가 발생했습니다ㅜㅜ

답변 부탁드리겠습니다.ㅠㅠ

4
DDOLSOON 프로필

Weather의 ws 값이 double 형태가 될때가 있네요. DDOLSOON 13일 전


as-is
int ws;
ws
= json['ws'];

to-be
double ws;
ws = json['ws'].toDouble();

파싱하다 오류가 나서, 다음과 같이 해결했네요. 다른 수강생 분들도 참고하시면 좋을거같아요~

1
허태정 프로필

NoSuchMethodError 여러번 반복해서 눌렀을 때 발생 허태정 16일 전

그러면 아래의 에러는 어떻게 처리할까요?

double과 int 차이로 인해서 발생하는 문제는 num으로 해당 처리했는데

계속 버튼을 눌러서 여러번 반복을 했더니 http 요청에 문제가 생겼는지.. pollution이 Null이라면서 안됩니다.

더 골때리는 건 stream.hasData = True, stream.hasError = False 이고, try catch로 로딩바를 보여주게 해놨는데 무한 로딩만 되고 아무것도 안됩니다.

NoSuchMethodError: The getter 'pollution' was called on null.

1
허태정 프로필

Refresh 반복, int is not subtype of double 허태정 16일 전

이건 무슨 에러인가요?

Refresh를 여러번 반복하면 자꾸 발생합니다.

그리고 자꾸 int is not subtype of double 에러도 났다가 안났다가 하네요

════════ Exception caught by widgets library

═════════════════════════════════════════════════════

══

The following NoSuchMethodError was thrown building StreamBuilder<Object>(dirty, state: _StreamBuilderBaseState<Object, AsyncSnapshot<Object>>#3c54d):

The getter 'pollution' was called on null.

Receiver: null

Tried calling: pollution

The relevant error-causing widget was: 

  StreamBuilder<Object> file:///D:/Project/Flutter/flutter_mise_app/flutter_mise_app/lib/main.dart:40:16

When the exception was thrown, this was the stack: 

#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)

#1      _MainState.getMappedData (package:fluttermiseapp/main.dart:148:47)

#2      _MainState.buildPadding (package:fluttermiseapp/main.dart:72:30)

#3      _MainState.build.<anonymous closure> (package:fluttermiseapp/main.dart:45:24)

#4      StreamBuilder.build (package:flutter/src/widgets/async.dart:509:81)

...

1
이강훈 프로필

네이티브 연동에관련하여 이강훈 1달 전

플러터 문서에도 그렇고 인터넷을 뒤져서 찾아봣지만 연동은 네이티브 기능을 들고오는것들이 대다수더라구요 제가 궁금한건 안드로이드 기준으로 view(화면)단을 안드로이드 코드로 작성하고 그화면은 flutter로 접근할수 있는지 궁금합니다. 앱쪽 전공이 아니라서 잘모르지만 안드로이드는 view파일은 따로 존재하고 그 부분은 flutter로 연동하는지 찾기가 어려워서 기술적으로 가능한건지 묻고싶습니다. 혹시가능하다면 키워드나 예제파일 url을 알려주시면 제가 한번 찾아보겠습니다.

7
홍정민 프로필

MethodChannel 오류 발생문제. 홍정민 1달 전

강사님 안녕하세요.

flutter methodchannel을 구동 하려고 하는데요. flutter <---> kotlin 이렇게 채널을 만들려고 합니다.

플러터 공식문서에 있는 그대로 구성을 하는데 다음과 같이 에러가 발생합니다.

이런식으로 에러 메세지가 나오면서 빌드를 하면 실패합니다.

onCreate 방식으로 해도 마찬가지고 구글에서 왠만한건 다 검색을 해도 해결이 안되네요.

현재 플러터 최신버전에서 MethodChannel을 구성하는 방법이 있나요?

1
홍정민 프로필

ListView 스크롤시 Card 및 RaisedButton elevation 번짐 문제 홍정민 1달 전

안녕하세요.

Flutter로 작은 프로젝트를 개발중인데요.

가르쳐주신 대로 학습하고 하니 잘 만들어 집니다.

다름이 아니라 ListView에서 Card 위젯을 Provider로 받아서 빌드 하는데

처음 몇개는 깔끔하게 잘나오는데

스크롤을 하여 카드가 한 10~12개 정도 넘어가면 Card와 RaisedButton의 외곽선이 점차 번집니다.

Release 모드로 실행하여도 마찬가지 문제가 발생하네요. (다른 디바이스에서 테스트해도 동일한 결과)

사진 첨부하여 질문드립니다.

감사합니다.

First Card in Listview

Last Card in ListView

3
guide94 프로필

StreamBuilder와 Bloc과 Provier guide94 1달 전

보통 Block 패턴에 StreamBuilder를 많이 쓰는데

Provider에서는 StreamBuilder를 안 써도 되는건가요?

Provider를 쓰다보니까 StreamBuilder의 필요성을 잘 못 느끼겠는데 제가 Provider나 StreamBuilder에 관한 이해가 아직 부조한 것인가요?

또한, Bloc과 Provider의 역할을 비슷하게 봐도 무방한 것인가요?

그리고, 요즘에는 Provider를 쓰는 것이 간편하고 좋다고 해서 Provider를 주로 쓰고 있는데 실제로 써보니까 Bloc보다 훨씬 편한 것 같습니다.

Provider를 쓰면 StreamBuilder를 쓰지 않아도 문제가 되는 것이 없는지 궁금합니다.

4
홍정민 프로필

GlobalKey를 이용한 StatefulWidget의 상호 연결 홍정민 2달 전

안녕하세요.

Flutter도 widget tree를 구성하여 하나의 앱 시스템을 구축하는데요.

예를 들어  3개의 StateFulWidget A, B, C가 있다고 가정하면 서로 필요한 함수 및 변수를 조작하기 위햐서

GlobalKey를 사용하고 있고 구동도 잘됩니다.

GlobalKey를 static 으로 선언하고 

필요한 곳에서 (특정 위젯의 )globalkey.currentState.doSomeThing(); 이런식으로 사용합니다.

하지만 로그를 보면 'Multiple widgets use same Globalkey'  라고 빨간색으로 경고 표시가 나오네요.

구동은 이상없이 잘되는데요. 무시하고 이런방식으로 구현을 해도 되는건가요?

1
홍정민 프로필

provider 의 Consumer builder함수에서 반복문 사용 문제 홍정민 2달 전

강사님 강의 잘 듣고 현재 간단한 프로젝트를 flutter로 만들고 있는데요.

저는 상태관리를 provider 방식으로 하고 있습니다.

궁금한점이 ListView에 게시글을 서버에서 받아서 복수개를 보여주는 로직인데요.

List<게시글 VO> 형식으로 Provider Model에 저장하고

Consumer 에서 반복문으로 게시글을 보여줍니다. 동작은 잘하는데 의문이

예를 들어

ListView에 200~300여개의 게시글을 보여준다고 하면  Consumer 내부에서 200~300회의 반복문이 수행되는데

그때 ListView에 보여지는 것이 문제가 없이 잘될까요?

일단 테스트로 ListView의 하단에 도달하면 2개씩 불러오는 코드에서는 잘 되는것 같습니다.

아니면 반복문 처리를 provider model 에서 미리 해놓고 Cosumner에서는 그대로 위젯 리스트를 리턴만 시키는게 좋을까요?

코드는 아래와 같습니다.

Consumer<RecruitModel>(
builder: (context,recruit,child){
List<Widget> resultList=[];
for(Recruit recruit in recruit.listInMain){
Widget recruitCard = _buildRecruitCard(
name:recruit.name,
regDate:recruit.regDate );
resultList.add(recruitCard);
}
return Column(
children: resultList,
);
},
)


class RecruitModel with ChangeNotifier{
var client = http.Client();
var listInMain=[];
var listInSearch=[];

void getListInMain({var start, var cnt}) async{
var requestUrl = clientUrl+'/rc_grlbc';
Uri uri = Uri.parse(requestUrl);
var urlWithParam = uri.replace(queryParameters: {
'start':start.toString(),
'cnt':cnt.toString()
});
try{
var response = await client.get(urlWithParam);
var list = jsonDecode(response.body);
var tempList=[];
for(int i=0;i<list.length;i++){
Recruit recruit = Recruit.fromJson(list[i]);
tempList.add(recruit);
}
listInMain..addAll(tempList);
}catch(e){
print('e : $e');
}
notifyListeners();
}
}

1
하늘의개혁 프로필

BehaviorSubject를 쓰면 오류가 발생합니다. 하늘의개혁 2달 전

I/flutter (30325): 213123123

E/flutter (30325): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null.

E/flutter (30325): Receiver: null

E/flutter (30325): Tried calling: length

E/flutter (30325): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)

Stream<String> get centerResult => _centerSubject.stream;

이런식으로 쓴 부분에서 게터 부분이 자꾸 오류가 발생하는거 같은데 아무리 찾아봐도 방법이 없어 문의드립니다.

플루터 자체 구조적인 문제라고 봐야되나요?

4
1eedaegon 프로필

MaterialApp에 대해 질문이 있습니다. 1eedaegon 2달 전

안녕하세요 강의 잘 보고있습니다.

첫강의부터 쭉 따라하고있습니다.

따라할 때 Scaffold만 사용해서 앱을 실행하면 미디어쿼리 오류가 발생해서 항상 MaterialApp을 랩핑해서 리턴하고있는데요

무슨 차이가 있는지 잘 모르겠어서 질문드립니다.

쓸데없는 질문이지만 책 ebook으로도 출시하나요?ㅎㅎㅎ;

4
kkimj 프로필

첫 Page가 로딩되자 마자 "반갑습니다." SnackBar를 띄우고 싶습니다. kkimj 2달 전

안녕하세요. 

올려주신 강의 잘 보고 있습니다.

첫 Page가 로딩되자 마자 "반갑습니다." SnackBar를 띄우고 싶습니다.

Page가 로딩되자마자 환영메세지를 Snack바로 보여주고 싶습니다.

방법을 알려주신다면 감사하겠습니다.

감사합니다.

1
Jinsub Kim 프로필

안드로이드 스튜디오에서 변수 타입 확인 어떻게 하시나요? Jinsub Kim 3달 전

가끔 snapshot이나 var로 선언한 변수들에 커서 갖다놓고 오른쪽 하단에서 확인하시던데

어떤 걸 누르면 볼 수 있나요?

저도 맥 환경에서 fn, ctr, opt, command키 다 눌러봤는데도 안나오네요 ㅜㅜ

2
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스