IT News/Flutter & Dart 16

윈도우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 상속(Inheritance)과 믹스인(Mixins) : extends, with

Dart 에서는 클래스 상속을 할때에는 extends 키워드를 사용합니다. Spacecraft 라는 클래스가 있고 이 클래스를 상속받는 Orbiter 클래스가 있습니다. class Spacecraft { String name; DateTime? launchDate; // Read-only non-final property int? get launchYear => launchDate?.year; // Constructor, with syntactic sugar for assignment to members. Spacecraft(this.name, this.launchDate) { // Initialization code goes here. } // Named constructor that forwards ..

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?...

Dart : DateTime 날짜 시간

DateTime 값은 그냥 날짜를 지정하면 않되고 now 함수 또는 utc 또는 parse 함수를 사용해야합니다. final now = DateTime.now(); final berlinWallFell = DateTime.utc(1989, 11, 9); final moonLanding = DateTime.parse('1969-07-20 20:18:04Z'); // 8:18pm print(berlinWallFell.year); // 1989 print(berlinWallFell.month); // 11 print(berlinWallFell.day); // 9 print(moonLanding.hour); // 20 print(moonLanding.minute); // 18 출처: https://api.dar..

플러터(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..