기본 콘텐츠로 건너뛰기

[Flutter] Flutter에 대한 소개 & 개발 환경 설정


 

Flutter구글에서 개발한 모바일 앱 개발 프레임워크로, 하나의 코드 베이스로 안드로이드, 리눅스, Windows, macOS, iOS 및 웹 브라우저에서 모두 동작되는 앱을 빠르게 개발할 수 있도록 지원합니다.

Flutter는 대화형 디자인 및 애니메이션을위한 다양한 위젯 라이브러리를 제공합니다. 이를 사용하여 다양한 디자인 패턴을 구현하고, UI 구성 요소를 구성하여 사용자 경험을 향상시킬 수 있습니다.

Flutter는 Dart 언어를 사용하며, Android 및 iOS와 같은 모바일 플랫폼 외에도 웹, 데스크톱 및 임베디드 장치에서도 사용할 수 있습니다.

Dart는 크로스 플랫폼 애플리케이션을 위해 디자인된 프로그래밍 언어로, 기본적으로 C언어의 문법과 유사하면서도 Java, C#, JavaScript의 특성을 지닌 언어입니다. 이전에 Java, C#와 같은 언어를 학습하신 경험이 있으면 쉽게 배우실 수 있습니다.

Dart 바로 사용하기: https://dartpad.dev/


Dart와 Java는 모두 객체 지향 프로그래밍 언어인 만큼 공통적인 특정을 지니만, 몇 가지 차이점이 있습니다.

  1. 타입 시스템: Dart는 선택적 타이핑을 사용합니다. 이것은 변수에 대해 타입을 지정하지 않아도 되지만, 필요한 경우 타입을 지정할 수 있습니다. 반면, Java는 강력한 타입 시스템을 가지고 있어 모든 변수와 함수에 대해 명시적으로 타입을 지정해야 합니다.
  2. 비동기 프로그래밍: Dart는 비동기 프로그래밍을 위한 내장 지원을 제공합니다. 이를 통해 비동기 코드를 작성하고 실행할 수 있으며, Future와 Stream 클래스 등의 API를 통해 이를 처리할 수 있습니다. 반면, Java는 비동기 코드를 작성하기 위해 별도의 라이브러리를 사용해야 합니다.
  3. 실행 환경: Dart는 별도의 가상 머신을 사용하지 않으며, AOT(Ahead-of-Time) 컴파일러 및 JIT(Just-in-Time) 컴파일러를 사용하여 코드를 실행합니다. 반면, Java는 Java 가상 머신(JVM)을 사용하여 코드를 실행합니다.
  4. null 값 처리: Dart는 null 값을 다루기 위해 Null-Safety 기능을 제공합니다. 이를 통해 null 값을 명시적으로 다룰 수 있습니다. Java는 null 값을 처리하기 위해 예외를 발생시키거나, null 처리를 위한 별도의 라이브러리를 사용해야 합니다.
  5. 확장 함수: Dart는 확장 함수(extension function)를 지원합니다. 이를 통해 기존 클래스에 새로운 함수를 추가할 수 있습니다. 반면, Java는 이러한 기능을 지원하지 않습니다.
  6. 라이브러리: Dart는 모든 코드가 라이브러리로 구성되어 있습니다. 이는 코드의 재사용성을 높이고, 모듈화를 강화합니다. 반면, Java는 이러한 기능을 지원하지 않습니다.
  7. 문법: Dart는 Java와 달리 세미콜론(;)을 필요로 하지 않습니다. 또한 Dart는 함수를 정의할 때 함수 이름 뒤에 괄호를 사용하지 않습니다. 이러한 문법적 차이점은 Dart 코드의 가독성을 높이고 코드 작성하는 속도를 높입니다.

Dart-Java의 차이점으로 인해 대체로 Dart로 작성한 코드는 Java로 작성한 것에 비해 간결한 편에 속합니다. 하지만 어느 프로그래밍 언어든 코드의 가독성과 유지 보수성을 고려하여 코드를 작성해야 질 좋은 코드가 나온다는 것을 잊지 말아 주세요!

 

개발 환경 셋업하기

Flutter 셋업하기 전에 우선 Android Studio부터 설치하도록 하세요!

https://developer.android.com/studio

 

이제 Flutter를 셋업하도록 하겠습니다.

아래 링크를 통해서 Flutter SDK를 다운로드 받아 설치합니다. Windows, macOS, Linux 운영체제에서 사용 가능한 만큼, 현재 사용 중인 운영체제에 해당되는 파일을 다운로드하시면 됩니다.

https://docs.flutter.dev/get-started/install

Windows일 경우 압축파일을 다운로드하신 뒤 C:\src\flutter 디렉토리를 만들어서 flutter 폴데에 압축을 푸시면 됩니다.

 

Flutter를 사용하기 위해서는 Flutter SDK의 경로를 시스템 환경 변수를 설정하여 Path 리스트에 추가해야 합니다. Path 설정 방법은 각 운영체제별로 다르므로, Flutter 설치 후 나오는 안내문을 참고해 주세요.

Windows일 경우: 시스템 속성 > 환경 변수 > Path

 


정상적으로 시스템에 반영되었는지 확인하시려면 콘솔에 들어가서 "where flutter dart" 입력하시면 됩니다. 아래 스크린샷처럼 출력되면 정상적으로 반영된 것입니다.


이제 flutter doctor를 실행해서 정상적으로 동작할 수 있는 환경이 구성되었는지 확인하시면 됩니다.

 

 

 

자주 발생하는 오류 1: cmdline-tools

flutter doctor 실행 결과 cmdline-tools를 찾을 수 없음 (cmdline-tools component is missing)이 출력될 경우 Android Studio 설정을 통해서 "Andnroid SDK Command-line Tools" 를 설치하시면 됩니다.

 

 

자주 발생하는 오류 2: 안드로이드 라이선스 (Android license status unknown)

flutter doctor 실행 결과 안드로이드 라이선스 상태 알 수 없음 (Android license status unknown)이 출력될 경우 아래 명령어 입력을 통해서 안드로이드 SDK 라이선스를 동의하시면 됩니다.

flutter doctor --android -licenses

 


자주 발생하는 오류 3: 비주얼 스튜디오 관련 오류 (Visual Studio is missing necessary components)

flutter doctor 실행 결과 안드로이드 라이선스 상태 알 수 없음 (Android license status unknown)이 출력될 경우 비주얼 스튜디오 설치 프로그램을 통해서 Desktop development with C++를 설치하시면 됩니다.

참고: 윈도우용 앱으로 빌드하지 않으실 계획이면 해당 오류는 무시하셔도 괜찮습니다.


 

기타 오류 해결 방법

콘솔에 flutter doctor -v 입력하시면 구체적인 설명이 모두 출력되니 참고하시면 됩니다.

 

flutter doctor 실행 결과 아래 스크린샷처럼 모두 초록색 체크가 출력될 경우 바로 Flutter 앱을 개발하실 수 있습니다!

 

Android Studio로 개발 시작하기

참고: Visual Studio Code로 개발하고자 하신 분들은 아래로 스크롤해주세요.


Android Studio에서 Flutter 앱을 개발하고자 하시는 경우 설정을 통해서 Flutter 모듈을 설치하셔야 합니다.

정상적으로 셋업하신 경우 Android Studio 실행 시 New Flutter Project 버튼이 생깁니다.


Visual Studio Code로 개발 시작하기

VS Code로 Flutter 앱을 개발하기 위해서는 우선 Flutter Extensions를 설치해야 합니다.

Extensions 설치 후 VS Code에 내장된 명령어 팔레트 (Command Palette)를 통해서 프로젝트 생성하실 수 있습니다.

생성한 Flutter 프로젝트를 시작하실 때는 디버그 시작하기 (단축키 F5)를 통해서 하실 수 있습니다. VS Code 하단에서 Flutter 프로젝트 구동환경을 설정하실 수 있으니 참고하시길 바랍니다.


 

 

 

 

 

이 블로그의 인기 게시물

[모집] 2024학년도 1학기 신규인원 모집: 3/10(일) 마감

안녕하세요, 구글 기술 앰버서더, 성균관대학교 Google Developer Student Clubs 입니다! GDSC (Google Developer Student Clubs)는 Google에서 학생들이 개발/리더십 능력을 향상할 수 있도록 지원하는 대학생 커뮤니티 프로그램입니다. 성균관대학교 GDSC는 구글 코리아, Google for Developers, SW중심대학사업단 등 다양한 단체와 협업하여 구글 기술을 대중에 알리고 관련 행사를 주최하며, 이러한 프로그램을 통해 협업성, 인적 네트워킹 및 리더십을 향상할 수 있습니다.

[11월 행사] 머신러닝/인공지능 (ML/AI) 스터디 워크샵: 사전 신청 오픈! — Google Developers 전문가와 함께하는 머신러닝/인공지능 학습, 텐서플로우 실습 및 네트워킹 기회! (11/9 사전신청 마감)

  👉 사전 신청 종료 추가적인 사전 신청을 원하시는 경우 연락 페이지 를 통해서 문의하시길 바랍니다. 업데이트 (11/8): 본 행사는 정책상 참여자 분들께서 요청하실 경우 행사 참여 확인서를 발급해드릴 예정입니다. 행사 참석 당일날 스태프 분께 말씀하시면 됩니다. 업데이트 (11/9):  상세한 행사 정보가 부분적으로 오류가 있어서 정정했습니다. (행사 시작 시간은 변경되지 않았습니다.) 기타 문의하실 사항이 있으실 경우 연락 페이지를 통해서 문의주시면 감사하겠습니다.   안녕하세요, 성균관대학교 Google Developer Student Club (GDSC) 입니다. Google Developers 전문가 분들과 함께 저희 GDSC SKKU TensorFlow 팀에서 11월 10일 💻November ML/AI Study Workshop💻을 주최합니다! 👏🏼 프로그램에서는 TensorFlow 기초 이해부터 주요 신경망 모델링 및 학습까지 TensorFlow 기술 전반에 대한 실습이 진행되며 관련 전문가 분들과의 네트워킹 기회가 제공될 예정입니다. 🍔 또한 본 행사에서는 참가자분들을 위한 간식, 음료와 간단한 저녁식사도 준비되어 있습니다! 👇🏼 이벤트 상세 내용은 아래와 같습니다. 📍 일시: 11월 10일 (금) 16:00 ~ 20:30 📍 장소: 자연과학캠퍼스 화학관 1층 330102 첨단강의실 📍 참가대상: 성균관대학교 학부생 누구나 📍 프로그램 내용 I. TensorFlow 기초 이해 II. 주요 신경망 모델링 및 학습 (CNN, Cloud Run, RNN) III. 종료 및 네트워킹 📍 진행자 이영빈 님 (GDG Songdo Organizer) 한상준 님 (GDG Songdo Organizer) 권정민 님 (Google Developer Experts) 장현수 님 ((전)성균관대학교 박사) 📍 사전 신청링크 https://gdscskku.blogspot.com/mlai-study   머신러닝 및 인공지능 분야 및 Tenso

[글로벌 IT전문가와 킹고인의 만남 시즌2] 행사 신청/참석 안내

  글로벌 IT전문가와 킹고인의 만남 시즌2에 대해 많은 관심 감사드립니다! 본 웹페이지를 통해서 학우님들의 원활한 행사 신청 및 참석을 위해 GDSC Community Platform 사용법을 안내드리고자 합니다 [카카오톡으로 링크 접속하신 경우 안내] 카카오톡 내장 브라우저에서 Google 로그인 시 "액세스 차단됨: Bevy의 요청이 Google 정책을 준수하지 않습니다"로 표시되는 사례가 확인되었습니다. 구글 계정 보안 정책상 카카오톡 내장 브라우저 내 로그인을 허용하지 않은 관계로, 디바이스에 설치된 기본 브라우저(Google Chrome 등)를 통해서 신청하시길 바랍니다. 👉 글로벌 IT전문가와 킹고인의 만남 시즌2 신청하기 플랫폼 인프라스트럭처 운영사/제공자: Google LLC/Bevy Labs, Inc. 행사 신청하기 1. GDSC 이벤트 플랫폼 웹사이트에서 구글 계정을 이용해서 로그인을 합니다. 2. (처음 로그인하는 경우) Sign up 페이지에서 필요한 정보를 입력합니다. 3. 로그인인 된 상태일 경우 "RSVP for this event now!" 아래에 온라인/오프라인 참석을 선택할 수 있습니다. 희망하시는 참석 방법 오른쪽에 있는 RSVP 버튼을 클릭하시면 됩니다. 4. RSVP 클릭 후 참석자 (Attendee Information) 입력하세요. (한글 설명, 학번, 전공 등) 5. RSVP Confirmed가 표시될 경우 신청이 완료되었음을 확인하실 수 있습니다. 행사 참석하기 (온라인) 행사가 시작될 경우 행사 웹페이지에서 [Join Event] 버튼이 표시됩니다. [Join Event] 버튼을 클릭하시면 바로 참석하실 수 있습니다. 참고: 행사 신청하신 경우 시스템 상 자동으로 이메일을 통해서 안내드립니다.

[12월 행사] ⭐ GDSC에서 연합 해커톤💻 행사를 개최합니다! 🎉

신청 URL: https://festa.io/events/4457 신청 마감시간: 12월 22일 금요일 21시 안녕하세요, 성균관대학교 Google Developer Student Club (GDSC) 입니다.  12월 28일부터 29일까지 마루 180에서 서울여자대학교, 연세대학교, 한양대학교의 GDSC 지부와 연합한 해커톤 대회를 주최하고 있습니다. 본 프로그램에서 참가자들은 서울여자대학교, 연세대학교, 한양대학교 학생들과 연합하여 팀을 구성하고 기업의 API 혹은 자체 개발 상품을 활용한 집중 해킹을 진행하며, GDE(Google Developer Experts) 및 GDG(Google Developer Groups)의 멘토링을 받아 프로젝트를 개발하고, 제휴기업 세미나 청강 및 네트워킹을 진행합니다. 행사 참가자와 수상팀에게 식사와 상품도 제공될 예정입니다. 아래 링크를 통해 이벤트 상세 내용 확인 및 티켓 구입이 가능합니다.  신청은 12월 22일 금요일 21시까지입니다. https://festa.io/events/4457 타학교 학생들과 연합하며 팀워크를 키우고 싶으신 분, 프로젝트 개발 경험을 쌓고 자신의 분야에 전문성을 키우고 싶으신 분, 전문가 및 공통 관심사의 학우들과 정보를 교환하고 협력하고 싶으신 분 모두 환영입니다! 학부생 여러분들의 많은 관심 부탁드립니다. 🙌🏼  공동 주최:  GDSC Yonsei | GDSC SWU | GDSC Hanyang | GDSC SKKU | 알파코 K-디지털 플랫폼(DT 그라운드) 주관: 성균관대학교 SW중심대학사업단 후원:  Google for Developers,  MONSTER ENERGY,  Wrtn Technologies

[9월 행사] 구글 클라우드 스터디 워크샵: 사전 숙지사항

9월달 구글 클라우드 스터디 워크샵에 신청해주신 여러분 감사드립니다. 행사 참여에 앞서, 아래의 사전 숙지사항을 반드시 확인해주시기 바랍니다. 여러분의 원활한 참여를 위해 준비 사항을 지켜주시면 감사하겠습니다. 필수 물품: 개인 노트북 필수 : 워크샵 동안 여러분의 개인 노트북을 사용하게 되는 만큼, 필히 노트북을 지참해 주시기 바랍니다. 실물 해외 신용카드 (VISA/MasterCard): GCP 계정을 생성할 때 결제 정보가 필요합니다. 권장 물품: 노트북 충전기/멀티탭: 각자의 노트북을 사용할 예정이므로 충전이 필요한 기기를 위해 노트북 충전기 및 멀티탭을 지참하시는 것을 추천드립니다. 진행장소: 성균관대학교 자연과학캠퍼스(수원) 화학관 1층 330118 첨단강의실 Google Map:  https://maps.app.goo.gl/841LUEsJB1mB8YPG6 카카오 맵: https://kko.to/-64Z139x7E 네이버 지도:  https://naver.me/GNUIWpp5