반응형

flutter 32

권한가져오기(checkPermissionStatus)

원래는 simple_permissions를 이용하였었는데 androidx가 나와서 androidx로 프로젝트를 생성했다. >flutter create -a kotlin -i swift --androidx my_awesome_app 이 후 project 생성 후 빌드하는데 simple_permissions이 android.support 이기 때문에 실패 났다. 그개서 permission관련 다른 라이브러리인 permission_handler (https://pub.dev/packages/permission_handler)를 사용하게 되었다. checkPermissionStatus 이 권한확인이고, requestPermissions 이 권한요청이다. PermissionStatus permission = aw..

flutter 2019.11.13

폴더 경로 가져오기

1. 디펜던시 추가 pubspec.yaml dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 path_provider: #new 패키지 임포트 import 'package:path_provider/path_provider.dart'; 2. FutureBuilder 보일러 플레이트 FutureBuilder( future: ~~~, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { } else { return CircularProgressIndicator(); } }, ) 3. 폴더 경로 가져오기 getApplicationDocumentsDirec..

flutter 2019.11.06

Execution failed for task ':app:mergeDexDebug'.

Execution failed for task ':app:mergeDexDebug'. 플러터 빌드하다보면 자주 발생하는 에러입니다. https://developer.android.com/studio/build/multidex 에 보면minSdkVersion이 20 이하로 설정되어 있으면 multidex 지원 라이브러리를 사용해야 한다고합니다. android\app\build.gradle 를 열어 어보니 저의 현재 app의 minSdkVersion이 15로 되어 있네요. 그래서 아래와 같이 추가 했습니다. 그랬더니 빌드가 됩니다. android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 28 multiDexEnabled true } ... } dep..

flutter 2019.11.01

여러가지 화면크기와 화면방향으로 개발하기

모바일 앱들은 다양한 화면크기, 해상도, 화면방향을 지원해야합니다. 앱은 확장할 수 있어야하고, 화면방향을 다루어야하고 어러면서도 데이터를 유지해야합니다. 플러터에서는 이렇게 할 수는 여러가지 방법이 있습니다. 큰화면을 다루기 위한 안드로이드 솔루션 안드로이드에서는 landscapte/portrait와 화면 넓이에 따라 레이아웃 파일을 다르게하여 태블릿과 같이 큰 화면을 다룹니다. 즉, 폰 용 세로 레이아웃, 가로 레이아웃, 태블릿용 세로 레이아웃, 가로 레이아웃 런식으로 레이아웃 파일을 정의합니다. 이렇게 정의된 레이아웃 파일은 디바이스의 실행상태에 따라서 인스턴스화 됩니다. 그리고 어떤 레이아웃이 활성화 되는 지 확인하고 그에 따라 초기화 합니다. 많은 어플리케이션에서 마스터-디테일 플로우 큰 화면사..

flutter 2019.04.23

Widget, State, BuildContext 그리고 InheritedWidget

이 글에서 Widget, State, BuildContext, InheritedWidget 에 대해 알아 봅니다.특히 중요하지만 문서화가 덜된 InheritedWidget에 집중해 봅시다. 플러터에서 위젯, 상태, 빌드컨텍스트는 개발자들이 이해야할 중요한 개념들입니다.그러나 문서에는는 방대하고 이런 것들을 명확히 설명해주지 않습니다.이 개념을 나만의 방법으로 설명 할 것입니다. 마음에 들지 않는 사람도 있겠지만이 글의 실제 목적은 다음 주제를 명확히하기위한 것입니다. -.stateful과 stateless위젯의 차이-.BuildContext 란-.State란 무엇이고 어떻게 사요하는지.-.BuildContext와 State 사이의 관계-.InheritedWidget과 위젯트리안에서 정보를 전달하는 방법-..

flutter 2019.04.16

플러터용 파이어 베이스 1부

1-1. 새 플러터앱 생성 : baby_names으로 프로젝트를 생성합니다. 1-2. pubspec.yaml 파일에 cloud_firestore 디펜던시를 추가합니다. dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 cloud_firestore: ^0.11.0+1 #new 2-1. 아래 코드들을 입력합니다. import 'package:cloud_firestore/cloud_firestore.dart';import 'package:flutter/material.dart'; void main() => runApp(MyApp()); final dummySnapshot = [ {"name": "Filip", "votes": 15}, {"name": "..

flutter 2019.04.11

Dart에서 stream 만들기

다트의 dart:async 라이브러리의 많은API중에 Stream과 Future라는 중요한 타입이 있습니다.Future는 단일 계산을 나타내고 Stream은 결과의 시퀀스를 나타낸다. 스트림을 청취하고 결과를 받고 종료알림을 받습니다. 여기서는 스트림을 발생시키는 방법을 알아보겠습니다. 스트림은 몇가지 방법을 생성할 수 있습니다.-. 기존스트림 변환하기-. async* 함수에서 만들기-. StreamController로 만들기 기존 스트림 변환스트림을 만드는 일반적인 케이스는 기존의 스트림의 이벤트를 기반으로 새 스트림을 만들려는 경우입니다. 예를 들어, UTF-8 입력을 디코딩하여 문자열 스트림으로 변환하려는 바이트 스트림이있을 수 있습니다. 가장 일반적인 방법은 원본 스트림에서 이벤트를 기다린 다음 ..

flutter 2019.04.04