Flutter 10

윈도우11 에서 플러터(Flutter) 설치하기 : Desktop development with C++

플러터를 리눅스가 아닌 윈도우에서 설치를 해보았습니다. 우선 git 이 필요한데요. url 로 이동하여서 설치합니다. 참고로 회색으로 표시된 경로는 참고적으로 넣어 둔 내용이며, 녹색은 한글 설명 이외에 추가적으로 영문 설명을 적은 것입니다. 그리고 빨간색은 경로가 명령어를 적어둔 것이므로 이 부분을 가장 중요하게 보시면 됩니다. [install git] url) https://git-scm.com/download/win path) C:\Program Files\Git 그리고 플러터를 설치합니다. C 드라이브에 src 라는 폴더를 만들고 그 경로에 플러터를 다운받았습니다. 그러면 플러터는 C:\src\flutter 폴더에 파일들이 있으며 실행파일은 bin 폴더에 있습니다. [install flutter]..

Dart 언어에서 implements 예제

Using implements 클래스 상속은 extends 를 사용하지만 implements 와 차이가 있습니다. implements 를 사용하는 경우는 클래스의 모든 변수와 함수 등을 모두 상속받는 것이 아니라 단지 타입을 상속 받기 위한 것인데요. implements 하게되면 implements 클래스의 함수 등을 구현해주어야 합니다. 인터페이스(interface) 처럼 말이죠. bird(새) 와 duck(오리) 클래스를 implements 해야하는 경우가 있다고 가정해보겠습니다. 둘다 모두 animal(동물)입니다. bird 와 duck 은 모두 날 수(fly) 있지만 duck 은 swim(수영)할 수 있습니다. 아래의 예제 코드를 확인하세요. class Animal {} // behaviors a..

Dart 에서 Sound null safety 예제(example)

변수명 옆에 물음표(?)를 붙이면 그 변수는 null 값이 될 수 있다는 것을 의미하는데요. DateTime? launchDate; 여기에서 launchDate 값이 null 이 될 수 있습니다. 이렇게 선언한 이유는 값이 할당되지 못하는 경우가 있기 때문인데요. 예를 들어서 우주 탐사선인 보이저호가 1977년 9월 5일에 발사가 되었는데요. 보이저3호는 아직 발사일이 정해지지 않았습니다. 따라서 발사일인 launchDate 값은 null 이 될 수 있습니다. 아래의 예제를 확인해 보세요. class Spacecraft { String name; DateTime? launchDate; // Read-only non-final property int? get launchYear => launchDate?...

플러터(flutter) dart 언어에서 Non-nullable 타입, 물음표가 있는 이유? null safety

다트(dart) 언어에서는 널(null) 값을 사용하지 않도록 하게 되어있습니다. 그런데 null 값을 사용해야하는 경우가 있는데요. 아래 코드에는 int 로 선언된 변수 a 를 보시면 int 옆에 ? 표가 있는데요. 그 의미는 a 가 null 이 될 수 있다라는 것을 의미합니다. void main() { int? a; a = null; print('a is $a.'); } 그래서 a = null; 이 가능합니다. 즉 변수타입 옆에 물음표(?)가 있는 변수들은 null 이 될 수 있다라는 것을 의미합니다. 아래의 링크는 참고 주소입니다. https://dartpad.dev/workshops.html?webserver=https://dartpad-workshops-io2021.web.app/null_saf..

Flutter 앱 권한(permission) 요청하기

플러터에서 간단한 샘플 앱을 만들어 보았는데요. 테스트는 컴퓨터에서만 하다가 최종적으로 안드로이드 폰에서 실행을 해보았는데요. 그런데 권한 문제 때문에 실행이 정상적으로 되지 않았습니다. 예를 들어서 인터넷으로 세계 시간을 가져오는 코드인데요. 인터넷 접속 권한이 없으니 데이터를 가져오지 못했습니다. 그래서 의도하지 않은 에러가 발생하게 되었습니다. 그래서 권한 즉 Permission 를 사용해보게 되었습니다. 아래와 같은 명령어로 간단한 예제 어플을 permission 을 생성하게 되었습니다. flutter create 프로젝트명 flutter pub add permission_handler flutter pub get 참고로 프로젝트명과 패키지 이름이 같은 경우에는 패키지가 설치가 않되는 경우가 있습..

다트 언어(Dart language)에서 사용하는 클래스(class) 예시

다트 언어에서는 Null Safety 라고 해서 Null 값이 나오지 않도록 코딩 단계에서 부터 검사를 해주는데요. 예를 들어서 launchDate 값는 Spacecraft 라는 클래스 안에서 사용되어지는 변수이지만 DateTime 이라는 변수 타입 오른쪽에 ? 표시는 초기값이 세팅이 되어있지 않기 때문에 Null 값이 될 가능성이 있기 때문에 ? 표시를 하고 생성자를 통해서 값이 세팅이 되기 때문에 문제가 없습니다. Null Safety 는 컴파일 단계에서 체크를 하기 때문에 Null 값이 들어갈 가능성이 있는 변수에는 ? 표시를 해주어야 합니다. 참고로 ~/ 표현식은 나누기 해서 그 값이 소수가 아닌 정수값으로 가져올 때 사용합니다. class Spacecraft { String name; DateT..

다트언어(Dart language)의 기본 : 코멘트(comment), 임포트(import), 에로우함수(arrow)

다트 언어에서 코멘트는 3가지 종류가 있습니다. 기본적으로 // 이 사용이 되며 /// 을 사용하여 문서나 라이브러리 또는 클래스 안에서 사용할 수 있습니다. 물론 그냥 // 으로 다 작성해도 되지만 /// 을 사용해보는 것도 좋은것 같습니다. 그리고 /* */ 을 사용하면 여러 줄의 걸쳐서 주석을 작성할 수가 있습니다. // This is a normal, one-line comment. /// This is a documentation comment, used to document libraries, /// classes, and their members. Tools like IDEs and dartdoc treat /// doc comments specially. /* Comments like th..

Flutter (플러터) 개발 연습용 다트패드(dartpad)

요즘에 플러터에 대해서 관심있게 보고 있습니다. 구글에서 지원을 하고 있는데요. 다양한 개발 크로스플랫폼들이 있지만 여러가지를 고려해보고 플러터에 대해서 배워보기로 하였습니다. 아래의 주소로 이동하시면 위 이미지와 같이 웹브라우저에 다트패드가 나오게 되는데요. 다트(Dart) 언어의 문법을 간단히 테스트 해볼 수가 있습니다. https://dartpad.dev/ DartPad dartpad.dev 앞으로 기본적인 다트 언어의 문법과 예제를 정리해 보겠습니다. 조금이나마 도움이 되셨으면 좋겠습니다.

Cross-Platform App Development (다양한 크로스플랫폼 개발도구)

요즘에는 하나의 소스코드를 이용하여 다양한 플랫폼에서 실행되도록 하는 크로스플랫폼 개발 프레임워크들이 많은 각광을 받고 있는것 같습니다. 물론 특정 플랫폼을 위한 전용 개발 프레임워크를 사용하여 제작했다면 그것 만큼 좋은 것은 없을 것입니다. 하지만 다양한 플랫폼에서 실행되는 프로그램을 만들려면 각 플랫폼 마다 프로그램을 제작해야 하기 때문에 그 만큼 시간과 돈이 들어가게 됩니다. 그래서 저도 최적의 시간으로 최대의 효과를 낼 수 있는 프로그램을 만들어 보기 위해서 크로스 플랫폼에 대해서 알아보았습니다. 물론 전용 플랫폼을 위해 만들어진 프로그램 보다는 속도나 업데이트에 대한 빠른 적용 등에 있어서는 부족할 수는 있습니다. 그럼 제가 아는 6가지의 크로스플랫폼에 대해서 말씀드리겠습니다. Xamarin X..