본문 바로가기
  • 포르쉐타고싶다

인포테인먼트 - development/flutter26

[flutter-error] 에러 flutter: Error: Could not find the correct Provider<...> above this ~~ 해결 에러: flutter: Error: Could not find the correct Provider above this HotPlacePage Widget To fix, please: * Ensure the Provider is an ancestor to this HotPlacePage Widget * Provide types to Provider * Provide types to Consumer * Provide types to Provider.of() * Ensure the correct `context` is being used. 해결 MainPage.dart에서 Multiprovider에 해당 Provider를 ChangeNotifierProvider로 등록한다 2020. 6. 19.
[flutter] Row긴한데 기본적인 정렬이 들어가야할 때 : Stack + Align 1. 배경 Flutter에서는 정말 많은 위젯들을 제공하고 그 사용법 또한 간단하기 때문에 알기만 훨씬 효과적으로 ui를 짤 수 있어 아는것이 힘인 프레임워크라고 할 수 있다. 하지만 위젯이 많은 만큼 그 많은 위젯을 모두 외우기 힘들고 특정한 상황에서 어떤 위젯이 가장 어울리는지 결정하는것 또한 하나의 일이될 수 있다. 특정 상황에 걸맞는 위젯이 존재하는데도 그 당시에는 알지못하여 다른 위젯들을 사용하여 겨우겨우 구현해냈다가 걸맞는 위젯을 나중에서야 알게되어 '아..진작이 이 위젯을 알았다면..'하고 현자가 되는 경우가 다반사이다. (물론 필자같이 입문한지 얼마 안 된 개발자에 한해!) 아까말한대로 Flutter는 수많은 위젯들을 제공하지만 필자가 의외로(?) 고생한 부분이 '레이아웃'부분이다. Flu.. 2020. 6. 19.
[flutter] Flexible Flexible의 fit 속성 - FlexFit.tight: 아래 child의 높이가 뭐든 상관없이 다른 Flexible과 같은 비율을 차지하게 된다 import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; class MyWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Column( children: [ Flexible( flex: 1, fit: FlexFit.tight, //아래 child의 높이가 뭐든 상관없이 다른 Flexible과 같은 비율을 차지하게 된.. 2020. 6. 18.
[flutter] Future, 그리고 async await Flutter를 시작한 지 얼마되지 않은 개발자분들 중 필자같이 Future와 async await의 관계 혹은 차이에 대해 헷갈리는 분들이 있을 수 있다. 그 관계, 그리고 차이에 대해 예제와 함께 알아보겠다. 핵심은 다음과 같다 1. Future함수, async함수들을 모두 await하지 않았을 때 2. Future함수를 await! 3. async함수를 await! 4. Future함수를 갖고있는 변수의 Type결정(Future형 vs T형) 기본적으로 사용하는 예제는 다음과 같다 void main() { print('Main program: Starts'); printFileContent(); print('Main program: Ends'); } printFileContent() { Future.. 2020. 6. 18.
[flutter] Stack 에서 center horizontal 구현 1. 배경 이미지 위에서 텍스트들을 구현해야 할 일이 생겨 Stack을 사용하였는데 맨 위 중간(center_horizontal)에 제목을 구현해야했다. Stack의 children 안에서 어떤 Widget을 사용해야 Stack 안에서 center-horizontal을 구현할 수 있을까 2. 개념 Align: https://www.youtube.com/watch?v=g2E7yl3MwMk 3. 해결 Stack( . . ., Align( alignment: Alignment.topcenter, child: Container( margin: ..., child: [위젯] ) ) ) 이렇게 Stack안에서의 center_horizontal를 구현할 수 있다. 2020. 6. 16.
[flutter] CupertinoButton 사이즈 조정하기 1. 배경 CupertinoButton의 사이즈를 조정하려면 어떻게 해야할까. 2. 개념 CupertinoButton은 defualt로 설정되어있는 최소 사이즈(minSize)와 패딩값(padding)이 상당해서 처음 사용하는 사람들은 그 사이드를 조정하는데 애를 먹는다. 2. 해결 CupertinoButton 사이즈를 육안으로 설정하기 위해서는 1) 최소사이즈를 최대한 줄여주고(최대한 작게 0으로 설정하면 좋다) 2) 버튼 그 모습 자체 갖고있는 공간 외에 버튼이 차지하고 있는 공간 => padding값을 없애주어야 한다. 예시: CupertinoButton( minSize: 0.0, padding: EdgeInsets.all(0), child: Icon(...), onPressed: () {...},.. 2020. 6. 16.
[flutter-error] 에러 [SEVERE] Conflicting outputs were detected and the build is unable to prompt ... 해결 1. 배경 flutter에서 통신에서 가져오는 데이터의 모델에 대해 json 모델의 자동 직렬화를 위해 @JsonSerializable 를 사용하는데 factory [Model].fromJson(Map json) => ...); 에서 수동으로 일일이 매칭하는 것이 아닌 build_runner에게 맡기고 factory [Model].fromJson(Map json) => _$SearchFromJson(json); 이렇게 _$SearchFromJson을 넣고 flutter pub run build_runner build 명령어를 입력하면 build되면서 json파일의 직렬화 과정의 코드가 자동으로 생성된다. 이 과정에서 [INFO] Found 1 declared outputs which already exi.. 2020. 6. 14.
[flutter] 에러명: "No file or variants found for asset: ~" 해결 1. 배경 나의 플러터 프로젝트가 가끔 No file or variants found for asset: assets/ 라는 에러를 내뱉으면서 프로젝트의 assets의 파일들을 불러오지 못하는 경우가 있다. 여러 해결하는 경우의 수가 있지만 assets폴더 안에서 폴더링했을 때의 상황에 대해서 대표적인 해결책 하나를 살펴보자 2. 해결 pubspec.yaml안에서는 띄어쓰기도 조심해야 한다. 필자의 경우 이렇게 assets폴더를 폴더링 해놓은 상태에서 pubspec.yaml 파일을 보면 이렇게 설정을 해놓아야 한다. 포인트는 - assets/icons/ // 총 2번의 띄어쓰기(맨처음, 하이픈 뒤에)가 들어가며 마지막은 /로끝나야 한다 를 유념해야 한다 2020. 6. 3.
[flutter] 에러명: 'Expected a key while parsing a block mapping' .yaml 파일을 만지면서 발생하는 오류다 .yaml파일은 들여쓰기의 의미가 중요하다 flutter_test: sdk: flutter flutter: uses-material-design: true assets: - loadjson/person.json 와 flutter_test: sdk: flutter flutter: uses-material-design: true assets: - loadjson/person.json 는 똑같은 내용을 담고있지만 assets의 들여쓰기 정도가 다르다. 따라서 아래의 코드는 성공하는 반면, 위의 코드는 'Expected a key while parsing a block mapping' 라는 에러가 발생하고만다. 들여쓰기를 신경써주자 2020. 5. 23.
[flutter-Error] BuildConfig is public, should be declared in a file named BuildConfig. java 해결 Tools -> Flutter -> Flutter Clean 해주고 다시 run하면 된다. 2020. 5. 21.
[flutter] 에러 'Android toolchain - develop for Android devices ' 해결 1. 상황 - flutter를 설치하고 나서 기본적인 sdk를 설치했음에도 flutter doctor을 입력하면 아래와 같이 각 모듈들의 상태중에서 warning( [!] ) 표시가 붙어있는 것을 볼 수 있다. 1) Android license status unknown 2) Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses 이는 아래와 같은 두 단계로 해결할 수 있다. 2. 해결 1) [SDK Manager] -> [Android SDK] -> [SDK Tools] -> Android SDK Tools (Obsolete) 설치 이것은 flutter를 설치한다고 해도 자동으로 설치되지 않고 .. 2020. 4. 22.