프로그래밍/Flutter & Dart60 Flutter 앱에서 Firebase 사용 하기 (iOS 편) Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼 Firebase 에서 제공하는 수많은 기능을 통해 사용자의 데이터를 저장하고 분석하며 비즈니스를 성장시킬 수 있다? 잘 이해가 안간다면 우선 뭐든 만들어보고 무엇을 의미했던건지 역추적해보도록 하자. 해당 게시글에서 Firebase 프로젝트를 생성하는 방법에 대해 알아볼 것이다. #1. 구글 로그인 및 Firebase 프로젝트 생성 #2. Flutter 앱 만들기 (Android Studio 기준) #3. Firebase - iOS 플랫폼 추가하기 #1. 구글 로그인 및 Firebase 프로젝트 생성 - Firebase 프로젝트를 생성하기 위해선 일단 본인의 구글 계정으로 로그인이 필요하다. 자.. 2021. 1. 31. Flutter 앱에서 Firebase 사용 하기 (Android 편) Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼 Firebase 에서 제공하는 수많은 기능을 통해 사용자의 데이터를 저장하고 분석하며 비즈니스를 성장시킬 수 있다? 잘 이해가 안간다면 우선 뭐든 만들어보고 무엇을 의미했던건지 역추적해보도록 하자. 해당 게시글에서 Firebase 프로젝트를 생성하는 방법에 대해 알아볼 것이다. #1. 구글 로그인 및 Firebase 프로젝트 생성 #2. Flutter 앱 만들기 (Android Studio 기준) #3. Firebase - Android 플랫폼 추가하기 #1. 구글 로그인 및 Firebase 프로젝트 생성 - Firebase 프로젝트를 생성하기 위해선 일단 본인의 구글 계정으로 로그인이 필요하.. 2021. 1. 25. CLLANGEDU화상영어 개발~출시~배포~홍보 트러블슈팅 모음 2020.12.28- 앱의 기능이 아직 제대로 동작하지 않는 것들이 많고.. 구글플레이스토어에 출시한 1.0.0버전을 설치하고 구글/카카오 로그인을 해보지만... 제대로 동작도 하지 않는다. 슬프다.- 구글로그인 이슈는 다행히도 해결되었다. 해결방법 : Firebase > 안드로이드앱에 구글 콘솔에서 얻을 수 있는 앱 배포용 키를 복사해서 넣으니 제대로 동작한다. - 구글콘솔의 앱 서명값을 (배포하게 되면 새로운 앱서명이 되기 때문에) 카카오 측에는 키해시값으로 추가해줘야 카카오 로그인이 정상작동하게 된다. 이를 위해 아래의 명령어로 앱서명값을 키해시로 변경한 후 카카오개발자 측 키해시값 입력란에 추가해주자. 앱서명값 -> 키해시 변경 명령어 : echo SHA-1값(앱서명키) | xxd -r -p | .. 2020. 12. 28. Flutter & Firebase - 인스타그램 클론 (5-1) - 프로필 화면 만들기 오늘의 목표 프로필 페이지를 만들어보자. 내 프로필을 보는 경우, 프로필 편집 버튼이 보여야 할 것이며 다른 사용자의 프로필을 보는 경우, 팔로우 상태가 아니라면 팔로우 버튼이 보여야 하고 팔로우 상태라면 언팔로우 버튼이 보여야 할 것이다. #1. 프로필 화면 구성 #2. 프로필 화면 결과 화면 #3. 프로필 수정 화면 #4. 프로필 수정 화면 결과 화면 #1. 프로필 화면 구성 - 기본 화면 구성 중 프로필 상단부 영역 // build method @override Widget build(BuildContext context) { return Scaffold( appBar: header(context, isAppTitle: false, title: 'Profile',), body: ListView( c.. 2020. 9. 3. Flutter & Firebase - 인스타그램 클론 (4) - 업로드 화면 만들기 오늘의 목표 이미지를 업로드하기 위한 페이지를 만들어보자. 이미지는 카메라 촬영, 갤러리에서 가져오기의 기능으로 가져올 것이다. #1. 업로드 화면 구성 #2. 업로드 화면 #3. 결과 화면 #1. 업로드 화면 구성 - Upload Image 버튼 클릭 - 사진촬영/갤러리에서 가져오기 기능을 위한 다이얼로그 팝업 - 사진 선택 후 게시를 위한 동작 (share버튼 클릭시) #2. 업로드 화면 - 업로드화면 displayUploadScreen() { return Container( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(Icons.add_photo_alternate, color: Colors.grey, siz.. 2020. 9. 2. Flutter & Firebase - 인스타그램 클론 (3) - 사용자 검색화면 만들기 오늘의 목표 사용자를 검색하는 사용자 검색화면(Search Page)을 만들어보자. 검색어 입력시 입력한 검색어와 일치하거나 검색어를 포함하는 사용자 리스트를 보여주게 된다. #1. 검색창 화면 구성 #2. 검색창(상단) 만들기 #3. 검색결과(하단) 만들기 #4. 참고내용 #5. 결과화면 #1. 검색창 화면 구성 - 상단 : appBar로 된 검색창 - 하단 : 검색 결과를 보여줄 ListView @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.black, appBar: searchPageHeader(), body: futureSearchResults == null ? displayNoSearc.. 2020. 9. 2. Flutter & Firebase - 인스타그램 클론 (2) - 기본 화면 만들기 (OAuth 구글 로그인) 오늘의 목표 앞서 추가한 기본 화면에 구글 SignIn 버튼을 실제로 동작하도록 구현해보자. #0. 구글 SignIn 관련 variable 설명 #1. 앱 시작시 build 전 initState #2. 구글 SignIn 버튼 클릭시 동작 #0. 구글 SignIn 관련 variable 설명 - GoogleSignIn : 구글 로그인의 기능을 담당할 변수 - GoogleSignInAccount : 구글 로그인시 계정을 담을 변수 - userReference : 로그인시 user정보 db(firestore)에 저장할 때 사용할 변수 - isSignedIn : 앱 시작시 기 로그인여부를 확인할 변수 - DocumentSnapshot : Firestore에서 실시간 데이터를 주고받을 때 사용하는 용도 // var.. 2020. 9. 2. Flutter & Firebase - 인스타그램 클론 (1) - 기본 화면 만들기 (로그인 페이지) 오늘의 목표 #1. 프로젝트 생성 (시작이 반이다.) #2. firebase 프로젝트 생성 #3. 로그인 화면 만들기 #4. 하단부 bottomNavigator로 각 페이지 연결해주기 #1. 프로젝트 생성 (시작이 반이다.) #2. firebase 프로젝트 생성 - Android 앱 추가 - iOS 앱 추가 #3. 로그인 화면 만들기 - home_page.dart 파일을 생성하고 간단히 구글 버튼을 추가해보자. import 'package:flutter/material.dart'; class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState ext.. 2020. 8. 31. Flutter 구글 지도 (Google maps) 추가하기 Flutter 구글 지도 (Google maps) 추가하기 구글 지도를 추가해 플러터 앱 내에서 사용하는 법을 알아보겠다. 1. pubspec.yaml에 의존성 추가 : google_maps_flutter, http, json_serializable 2. Google Maps API 사용을 위한 Key 발급받아 적용하기 3. AndroidManifest.xml 설정 추가 1. pubspec.yaml에 의존성 추가 : google_maps_flutter, http, json_serializable 2. Google Maps API 사용을 위한 Key 발급받아 적용하기 앱에서 Google지도를 사용하려면, 별도의 Google Cloud Platform 에서 프로젝트를 생성하고 API Key를 발급 받아야 한.. 2020. 8. 27. Flutter 움직이는 그림(Lottie) 넣기 Flutter 움직이는 그림(Lottie) 넣기 이번에는 Lottie 를 활용한 움직이는 그림 넣는 방법에 대해 알아보겠다. 사용법은 매우매우 간단하다. 동작 원리 1. pubspec.yaml 추가 (lottie) 2. 파일 추가 1. pubspec.yaml 추가 (lottie) dependencies: flutter: sdk: flutter lottie: 2. 파일 추가 ListView( shrinkWrap: true, children: [ // Load a Lottie file from your assets Lottie.asset('assets/LottieLogo1.json'), // Load a Lottie file from a remote url Lottie.network( 'https://raw.. 2020. 8. 27. Flutter 프로필 사진 등록/변경하기 Flutter 프로필 사진 등록/변경하기 이번에는 내정보의 프로필 사진 등록/변경에 대해 알아보겠다. ImagePicker 위젯을 사용할 것이다. 사용법은 아래와 같다. 동작 원리 0. 화면 구성 1. Profile camera 아이콘 클릭 => 카메라로 찍기 / 갤러리에서 가져오는 모달창 생성 2. 카메라로 찍기 또는 갤러리에서 가져오기 + 변경된 내용 반영하기 0. 화면 구성 @override Widget build(BuildContext context) { return Scaffold( appBar: appBarWidget('Regist Profile'), body: Padding( padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 20).. 2020. 8. 27. Flutter 터치로 사진 확대/축소 시키기 Flutter 터치로 사진 확대/축소 시키기 이번에는 화면 터치를 통해 사진/그림을 확대/축소 시키는 방법에 대해 알아보겠다. Animation 위젯을 응용하여 사용할 것이고 관련 내용을 통해 progress bar 등으로의 활용도 가능하다. 사용법은 매우매우 간단하다. 동작 원리 1. Animation, AnimationController 생성 2. 특정 행동(터치)을 감지하여 행동 발생시 설정한 애니메이션이 동작하도록 수행 1. Animation, AnimationController 생성 Animation _animation; AnimationController _animationController; @override void initState() { // TODO: implement initStat.. 2020. 8. 27. Flutter 공유하기, Calendar 기능 사용하기 Flutter로 공유하기 앱을 사용하다보면 카톡이나 다른 앱에 공유하는 기능을 사용할 때가 있다. flutter에서도 컨텐츠를 공유하는 기능을 구현할 수 있다. (안드로이드에서 ACTION_SEND, iOS에서 UIActivityViewController로 불림) 사용법은 매우매우 간단하다. 1. pubspec.yaml 파일에 의존성 추가하기 2. 기능 구현하기 1. pubspec.yaml 파일에 의존성 추가하기 : share 패키지 dependencies: flutter: sdk: flutter share: 2. 기능 구현하기 : flutter 프로젝트로 만든 기본 테스트화면에 TextField와 Button 만 만들었다. class _MyHomePageState extends State { Strin.. 2020. 8. 1. 완전 쉽고 간단한 Flutter 로 카메라 사용하기 어플에서 자주 쓰는 카메라 연동에 대해 알아볼 것이다. Dart 패키지에는 camera 관련 패키지가 있어 라이브러리를 가져와서 사용하면 된다. 아래의 단계별로 테스트를 진행해보겠다. 정말 별거 없고.. image_picker 패키지만 가져다가 조금만 구현하면 되는구나 1. pubspec.yaml 에 의존성 추가하기 (라이브러리 가져와서 사용하겠다는 의미) 2. 카메라로 직접 촬영하던지, 갤러리에서 가져와 쓸 수 있도록 구현하자 1. pubspec.yaml 에 의존성 추가하기 (라이브러리 가져와서 사용하겠다는 의미) image_picker 패키지는 pub.dev에서 99점의 점수를 기록하고 있어서 말해뭐해? 정도의 퀄리티를 자랑한다고 할까나.. 2. 카메라로 직접 촬영하던지, 갤러리에서 가져와 쓸 수 있.. 2020. 7. 31. 5분만에 Flutter 에서 kakao login 버튼 추가하기 * 해당 게시글 최하단에 아래의 2가지 형태의 예제를 구현한 github 링크를 공유해두었으니 참고하실 분들은 도움이 되셨으면 좋겠습니다. - 단순 카카오 로그인 - 카카오 로그인 후 정보저장(Firebase) 및 자동로그인 Flutter에서 소셜 로그인을 할 수 있는 여러 가지 방법이 있는데 그 중 하나가 카카오계정 로그인이다. Flutter에서 간단히 구현을 해볼텐데 방법은 아래와 같다. 1. pub.dev (flutter 패키지 모음) 에서 어떤 라이브러리 사용할 것인지 확인 : kakao_flutter_sdk (카카오 공식) 👉🏻 카카오에서 공식 지원하는 라이브러리를 가져다가 쓸 예정이다. 2. Flutter 에서 pubspec.yaml 의존성 추가하기 👉🏻 kakao_flutter_sdk를 가져.. 2020. 7. 30. Flutter trouble shooting - 잘 되던 빌드가 갑자기 안될 때가 있다. 에러문구 D8: Cannot fit requested classes in a single dex file 원인 : 앱 및 앱이 참조하는 라이브러리에서 메서드가 65,536개를 초과하면 앱이 Android 빌드 아키텍처의 제한에 도달했음을 알리는 빌드 오류가 발생합니다. 개발에 실수해서 생긴건 아니고 pjt에 포함된 메소드 개수가 65,536개가 초과되면 발생하는 오류 조치방법 : android/app/build.gradle에 설정 변경해주기 - 쿼리스냅샷을 가져오는데 시간이 걸려 null 오류가 발생하는 경우가 있다. 또는 가져오는동안 값이 바뀌지 않아 최초 초기화값인 0으로 표시되는 경우가 있다. 후자의 경우는 setState를 통해 설정을 바꿔주었는지 확인.. 2020. 7. 5. Flutter webview widget 이용하기 앱 개발을 하게 되면 개발을 어떤식으로 할지 정해야 할 것이다. 정하는 갈림길에는 네이티브, 하이브리드(웹/앱), 웹뷰 등 크게 3가지로 볼 수 있다. Flutter는 네이티브를 지원(?)한다고 해야하나.. 나도 정확한 개념은 아직 모르지만 우선 웹뷰는 아니다. 웹뷰는 기존의 웹 방식으로 동작하는걸 앱에서 껍데기만 씌워서 껍데기 안에 웹으로 보여지도록 하는 방식이다. 내가 개발 중인 앱 중에 '책 구매하기' 등의 버튼을 클릭하면 인터파크의 책구매 사이트로 이동하도록 구현해야 하는데 이걸 굳이 Dart로 개발하려면 막막한데 웹뷰 라이브러리를 이용하여 나는 껍데기만 만들고 웹뷰로 보여주면 훨씬 수월하게 개발을 할 수가 있다. 아래의 준비과정 및 구현 방법을 통해 Flutter 내에서 웹뷰를 사용할 수 있다... 2020. 6. 27. Flutter web project 만들어보기 1. web project를 만들기 위해 아래의 설정으로 변경하자. 나는 mac의 terminal에서 아래의 명령어를 실행시켰다. $ flutter channel beta $ flutter upgrade $ flutter config --enable-web 2. android studio를 통해 새로운 flutter project를 생성했다. 이제 기기선택에 보면 web이 보일 것이다. 2020. 6. 22. 구글스토어 앱 버전업하기 앱을 처음으로 구글스토어에 배포까지 해보았는데 일부 변경사항이 생겨서 버전업이 필요했다. 그런데 내가 여러 번 겪은 상황은.. 구글스토어에 내 apk 파일을 업로드하는데 자꾸 오류가 나는 것이다. 이미 같은 버전이 있으니 버전을 올려서 다시 업로드하라는............. 나와 같은 문제를 겪은 사람이 있다면 아래의 내용을 보고 해결하기 바란다. 문제는 바로, Flutter에서 version 관리 방식때문이었다. 버전코드가 versionCode.toInteger() 등의 표현으로 저장되기 때문에 최초 1.0 에서 1.1로 변경했다고 버전코드가 변경된게 아니었다. 그냥 둘 다 1로 저장되고 있었던 것이다. 자, 소수점 제외한 숫자형으로 저장이 되므로 버전코드는 반드시 1, 2, 3, ... 과 같이 소.. 2020. 6. 18. Flutter 개발환경 셋팅 - (windows 기준) 1. flutter 설치페이지로 접속해서 Windows 기준의 flutter sdk 를 다운로드 받자. https://flutter.dev/docs/get-started/install/windows Windows install How to install on Windows. flutter.dev 2. c:\dev\sdk\ 폴더 생성해서 그 안에 압축 풀기 사람마다, 상황별로 폴더를 어디에 위치시키고 압축을 풀어라 이야기가 달라서 스스로 판단해서 위치를 정하면 될 것 같다. 폴더를 정하는게 별거 아니긴 하나 중요하게 생각해야 할 이유는 PATH 설정이 필요하기 때문이다. (나는 그냥 압축 풀고 sdk 폴더로 옮김. 다 옮기면 path는 c:\dev\sdk\flutter\... 요렇게 되면 완료) ⭐️ PA.. 2020. 6. 10. 안드로이드 앱 구글스토어에 배포하기 1. 앱 서명하기 keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key 잘 생성되었다. 2. 앱으로부터 keystore 참조하기 배포용 앱을 빌드할 때 참조하기 위해 프로젝트의 android/ 폴더에 key.properties 파일을 생성한 후 다음과 같이 작성한다. storePassword= keyPassword= keyAlias=key storeFile= 3. build.gradle android 상단에 붙여넣기 // start of Gradle 서명 구성 def keystoreProperties = new Properties() def keystorePropertiesFile = rootP.. 2020. 6. 8. Flutter Firebase auth 사용하기 로그인 또는 회원가입시 email / password로 동작하는 과정을 알아보고자 한다. 입력시 validate과정, flutter와 firebase를 이용해서 firebase authenticate 동작하는 과정이 되겠다. 흐름을 파악하고 이해한 후에 코드를 다시 보자. 1. email / password 입력시 validate되는 과정 (email / password를 제대로 입력했는지 검증) email / password 입력하기 : TextFormField TextFormField와 상응하는 formKey 존재 formKey의 currentState (입력상태랄까?) validate() 메소드로 검증하기 → 비어있진 않은지 등의 내가 체크하고자 넣었던 로직 검증이 완료되면 Sign in 버튼 누르.. 2020. 5. 27. Flutter로 ToDo앱 클라우드DB로 데이터 관리하기 (feat. Firestore) Firestore는 문서기반 구조로 데이터를 저장하며 기존 SQL 등의 문법 없이도 실시간으로 손쉬운 데이터 CRUD(쓰/읽/업/삭)이 가능하다. 저장단위는 문서(document)이다. 문서는 컬렉션(collection)에 저장되며 문서에는 키-값 형태로 다양한 자료(data) 저장이 가능하다. 자료구조 : Collection > Document > Data (key-value) 1. 컬렉션 생성 : 할일 정보를 저장할 컬렉션을 생성. Firestore화면에서 '컬렉션 시작' 클릭 > '컬렉션 ID'에 'todo' 입력 > 다음 클릭 2. 할일 목록 가져오기 (Query) main.dart에 cloud_firestore.dart import 하기 Todo 클래스 수정 import 'package:flut.. 2020. 5. 23. Flutter로 ToDo앱 클라우드DB로 연결하기 (feat. Firebase) 지난 번 만든 ToDo 앱은 종료를 하게 되면 데이터가 초기화될 것이다. 다음으로 클라우드DB인 Firebase와 연동하여 데이터를 관리해보자. 1. Firebase 연동하기 (android, iOS) 2. Firestore 설정 1. Firebase 연동하기 - firebase.google.com 구글계정 로그인 후 시작하기 버튼 클릭 - 프로젝트 추가 - 프로젝트 이름 작성 후 계속 버튼 클릭 - Google 애널리틱스 체크해제 후 프로젝트 만들기 클릭 - 생성 완료 - 안드로이드 버튼 클릭 - android > app > build.gradle : applicationId 복사 - 앱 등록 경로에 붙여넣기 후 앱 등록 클릭 - 다음 화면에서 google-services.json 받고 android .. 2020. 5. 23. Flutter로 ToDo앱 만들기 (feat. GitHub) ToDo 앱에서는 클라우드 DB를 활용하는 앱이다. 할일 추가하기, 할일 완료하기, 할일 삭제하기, 할일 추가/완료/삭제시 클라우드DB인 Firestore에서 데이터 관리 Step1. git repository 만들고 연결 Step2. ToDo앱 기본버전 작성 Step1. git repository 만들고 연결 - flutter app 생성 > 프로젝트 열기 > VCS > Import into Version Control > Create Git Repository - flutter_todo_app 선택 - Git init > Yes 클릭 > (다음캡쳐본 보면 알겠지만) 모든 파일들이 빨간 표시로 보임 - flutter_todo_app 우클릭 > Git > Add (Git에 내 프로젝트들 Add 시키자) .. 2020. 5. 22. Flutter로 비만도 계산기 만들기 키, 몸무게 2개의 숫자값을 입력받아 비만도를 계산하는 어플 1. 입력 화면 2. 결과 화면 3. 값 검증 및 화면 전환 4. 최종 화면 및 소스 1. 입력 화면 키, 몸무게 입력받는 양식을 Form 위젯으로 wrap해준다. 그리고 submit을 누를 때 키, 몸무게값을 검증하기 위해 form의 상태를 얻기위한 key가 필요하다. 키는 GlobalKey타입으로 선언하고 Form 위젯의 key 프로퍼티로 선언하면 상태를 얻을 수 있다. 키, 몸무게 입력필드는 검증 로직을 작성할 수 있는 TextFormField를 사용한다. form key의 currentState.validate()로 Form 입력값에 대한 검증이 가능하다. (아래 소스는 검증부분 미작성) import 'package:flutter/mat.. 2020. 5. 19. Flutter 자주 쓰이는 생산성 높여주는 단축키 Flutter로 앱개발을 하다보면 Column, Row, Padding 등의 위젯으로 감싸는 경우가 자주 발생한다. 반대로 감싸고 있던 위젯을 제거해야 하는 경우도 있을 것이다. 내가 작성하고 있는 코드의 탭 위치가 맞지 않는 것 같다. 자동으로 정렬할 순 없을까? 이 때 쉽게 처리해주는 단축키에 대해 정리해보자. 1. 위젯을 다른 위젯으로 감싸거나 감싸져 있는 위젯 제거하기 - 감싸고 싶거나 제거하고 싶은 위젯에 커서를 위치하고 Alt + Enter (mac기준 option + enter)를 누른다. 감싸고 싶다면 Wrap with Widget 으로 가능하며 제거하고 싶은 경우 Remove this widget으로 가능하다. 2. 코드 정렬하기 - 안드로이드스튜디오 : 'Code > Reformat C.. 2020. 5. 17. Flutter 자주 쓰이는 위젯을 이용한 복잡한 UI 그리기 주요 사용 위젯 - BottomNavigationBar : 하단 탭 구성 - AppBar : 상단 제목줄 구성 - Row, Column : 가로, 세로 레이아웃 구성 - GestureDetector : 클릭 이벤트 만들기 위한 위젯 - Opacity : 투명도 - CarouselSlider : 좌우 슬라이드하는 UI 작성을 위한 라이브러리 - Listview : ListTile과 함께 사용하여 스크롤 가능한 리스트를 만드는 위젯 * ListView 안에 ListView 를 넣어야 하는 경우 physics / shrinkWrap 프로퍼티를 지정해줘야 함 Step 1. 전체 틀 잡기 2. BottomNavigationBar를 이용해 하단 탭 만들기 + AppBar 수정해서 상단부 만들기 3. 메인 화면(Ho.. 2020. 5. 17. Flutter 버튼 관련 위젯 버튼 위젯은 onPressed 프로퍼티를 꼭 추가하여 클릭했을 때 실행될 함수를 반드시 정해줘야 한다. RaisedButton, FlatButton, IconButton, FloatingActionButton return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Column( children: [ RaisedButton( // 입체감을 가진 버튼 child: Text('RaisedButton', style: TextStyle(color: Colors.blue)), color: Colors.amber, onPressed: () {} // 클릭시 실행할 영역 ), FlatButton( // 평평한 버튼 child: Text('FlatBut.. 2020. 5. 15. flutter 개발환경 셋팅 - (macOS 기준) 1. flutter 설치페이지에서 flutter sdk 다운로드하기 https://flutter.dev/ 2. development 폴더 생성해서 그 안에 압축 풀기 $ mkdir ~/development $ cd ~/development $ unzip ~/Downloads/flutter_macos_v1.12.13+hotfix.8-stable.zip (나는 그냥 Finder에서 압축 풀고 development 폴더로 옮김) ⭐️ PATH 추가하기!!! - development 폴더에서 PATH 추가하기 (해당 폴더 이외에서는 flutter 먹지 않는다) $ export PATH=`pwd`/flutter/bin:$PATH - 터미널 어느 세션이든 flutter 명령어를 사용하기 위해서는 bash_profi.. 2020. 2. 19. 이전 1 2 다음