기본 콘텐츠로 건너뛰기

[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 프로젝트 구동환경을 설정하실 수 있으니 참고하시길 바랍니다.


 

 

 

 

 

이 블로그의 인기 게시물

[글로벌 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] 버튼을 클릭하시면 바로 참석하실 수 있습니다. 참고: 행사 신청하신 경우 시스템 상 자동으로 이메일을 통해서 안내드립니다.

[62회] 매년 바뀌는 프론트엔드 분야에서 개발자가 살아남는 방법 - 글로벌 IT전문가와 킹고인의 만남 시즌2 예순두번째 만남

글로벌 IT전문가와 킹고인의 만남 시즌2 62회차 강연자를 소개합니다! 안녕하세요, 미래의 IT 리더 여러분! 세계적으로 인정받는 글로벌 IT 전문가 Naman Gupta가 성균관대학교를 방문해 대학생들을 대상으로 특별한 강연을 개최합니다. Naman Gupta 님는 Neurotone AI의 시니어 소프트웨어 엔지니어로 활동하며, Google Developer Groups 뉴델리의 공동 조직자이자 Google Summer of Code 2017 수상자입니다. Naman Gupta 님의 강연에서는 인공지능, 머신러닝, 웹 개발 등 최신 IT 트렌드와 혁신적인 제품 개발 방법을 배울 수 있습니다. 또한, 글로벌 기업에서의 커리어 쌓기와 스타트업 창업 노하우도 공유할 예정입니다. 특히 IT 분야에 관심 있는 대학생들에게 큰 도움이 되는 만큼 많은 참여 부탁드립니다! 매년 바뀌는 프론트엔드 분야에서 개발자가 살아남는 방법 Surviving as a Developer in the Ever-Changing Frontend Field 📆 일시: 2024년 9월 12일(목) 12:00 ~ 13:00 💡 강연방식: 온/오프 하이브리드 강연 🔎 강연자: Naman Gupta (GDG New Delhi/University of Wisconsin-Madison) 🎬 강연참여 - 오프라인 강연 참여 (20명 선착순) : 자연과학캠퍼스 삼성학술정보관 2층 솦ː공방 인(仁) 480209호 - 온라인 강연 참여 : 신청자에 한하여 신청 이메일로 강연링크 발송 * 오프라인 참여 학생 : 약속을 지키는 성균인! NoShow 불가! 🏆 참석혜택 - 오프라인 참석 학생들에게 간단 도시락 증정 (종료 후)  - 온/오프 참석 전원 AI품 비교과 1시간 인정 - 온/오프 참석 전원 킹고코인 마일리지 10코인 부여 👉 신청방법 가이드: https://gdscskku.blogspot.com/2024/03/itglobalseminar-help.html 👉 행사 참석 URL (신청 필요...

[모집] 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   머신러...

[6월 행사] 스타트업을 할 만한 사람은 따로 있을까?— 글로벌 IT전문가와 킹고인의 만남 시즌2 (60회차)

  스타트업을 할 만한 사람은 따로 있을까? 이 질문에 대한 답을 찾고 싶다면 이번 세미나를 놓치지 마세요! 테일트리의 임수미 님을 초청하여 진행되는 이 특별한 세미나에서 스타트업 창업에 필요한 자질과 역량에 대해 깊이 있는 이야기를 들어볼 수 있습니다. 다양한 경험을 바탕으로 한 실제 창업 과정과 도전 과제들을 공유하며, 성공적인 스타트업을 위한 전략과 팁을 배울 수 있는 절호의 기회입니다. 창업에 관심 있는 분들, 혹은 스타트업을 시작하고자 하는 분들을 위한 이번 세미나에 참여해보세요!   https://gdsc.community.dev/j/4cpmuqyazwckd/