목록전체 글 (134)
Foggy day
TextFormField Flutter에서 사용자의 입력을 받을 때 TextFormField이나 TextField 위젯을 많이 사용합니다. 이번 포스팅에서는 TextFormField 위젯을 사용해서 validation체크와 에러 문구를 띄워주는 작업을 해보겠습니다. TextFormField 위젯을 사용할 때 불편했던 점은 decoration특성이었습니다. 어떤 특성들을 입력해야 내가 원하는 decoration설정이 되는지 찾아보는 것 부터 많은 시간이 필요했습니다. 아래 예제에서는 4가지의 border 특성을 주었습니다. 1. TextFormField 선택 안 했을 때(enableBorder) 2. TextFormField 선택 했을 때(focusedBorder, 3, 4번이 2번 Border보다 우선순..
이번 포스팅에서는 클래스의 상속, 추상클래스, implements(interface), mixin을 사용하는 방법에 대하여 알아보겠습니다. 1. 상속 Dart는 Java나 Kotlin처럼 extends키워드를 이용해 1개의 클래스만 상속받을 수 있습니다. 이때 상속당하는 클래스가 부모클래스, 상속을 하는 클래스는 자식 클래스라고 합니다. Animal 클래스와 Lion 클래스가 있습니다. Lion 클래스는 extends라는 키워드로 Animal을 상속받고 있습니다. 이때 Animal클래스가 부모 클래스, Lion클래스가 자식 클래스입니다. 자식 클래스는 부모 클래스에 있는 함수와 변수를 사용할 수 있습니다. class Animal { void eat(){} } class Lion extends Animal..
개발에 있어서 객체지향과 클래스의 개념은 매우 중요합니다. 하지만 처음에 개념을 이해하기는 어렵기 때문에 개발을 해 나가면서 차츰 이해도와 숙련도를 높이는 것을 추천합니다. 이번 포스팅에서는 객체지향에 대한 개념을 상세하게 소개하는 것이 아니기 때문에 Dart에서 class를 사용하는 방법을 익히는 것 위주로 다루겠습니다. 1. 객체지향(OOP, Object Oriendted-Programming) 객체지향프로그래밍의 핵심 개념은 모든 데이터를 객체(Object)로 본다는 것입니다. 무슨 말이냐면 String 타입의 변수나, int 타입의 변수 또한 객체라는 것입니다. 다른 예로 우리는 사람인 것과 동시에 동물입니다. 사람이 더 구체적인 개념이므로 String과 같고, 동물이 포괄적인 개념이므로 객체와 ..
알고 있으면 좋은 문법들에 대해 예제를 추가했습니다. 이중에서 spreadOperator는 특히 많이 사용되고, where도 필요에 따라서 많이 사용할 수도 있습니다. 어떠한 형태로 사용하는지 익혀두면 좋습니다. import 'dart:math'; // The imported package 'collection' isn't a dependency of the importing package. // 나올 경우 yaml -> dependencies -> collection: any 추가 import 'package:collection/collection.dart'; class Advanced { Advanced() { spreadOperator(); functionalProgramming(); whereSy..
함수란? 함수는 코드 덩어리를 모아둔 것이라고 생각하면 됩니다. 그리고 모아둔 코드 덩어리를 변수처럼 특정 이름으로 만들어줍니다. 동일한 10줄의 코드를 여러번 사용해야 하는 경우 함수로 선언해둔 이름만 호출함으로써 간편하게 사용할 수 있습니다. 자세한 것은 예제를 보면서 확인하겠습니다. 함수에서 중요한 요소는 입력과 반환이 있습니다. 예제의 add 함수에는 int a와 int b를 입력하도록 만들었고, int를 반환하도록 선언했습니다. 반환 타입은 제일 앞에 선언해주고, 그다음에 이름, 소괄호 안에는 입력받을 변수를 선언해줍니다. 함수 안에서는 입력한 a와 b를 더해서 return해주고 있습니다. /// 더하기 함수 int add(int a, int b) { int age = a + b; return ..
이번 포스팅에서는 3가지 for문에 대해 알아보겠습니다. for문은 반복적인 작업을 수행할 때 사용하는 문법입니다. 모든 개발 언어에서 사용되고 있으니 한번 개념과 사용법을 익혀두면 앞으로도 계속 사용할 수 있습니다. 1. 기본적인 for문 가장 기본적인 for문에는 3가지 요소가 필요합니다. index 값을 선언 몇 번 for문을 반복할지 for문을 반복할 때 마다 index 값을 어떻게 변화시킬지 사용 형태는 예제와 같습니다. for 키워드를 사용하고, 소괄호 안에 필요한 요소들을 입력해주면 반복될 때 마다 중괄호 안의 코드가 실행됩니다. void normalForLoop() { /// int i = 0 -> 값 /// i 종료 조건, true면 통과, false면 종료 /// i++ -..
이번 포스팅에서는 List, Map, Set에 대해 알아보겠습니다. 1. List List는 같은 타입의 자료를 여러개 담을 수 있습니다. 순서가 있으며 다른 언어와 다른 점은 Dart에서는 Array(배열)과 List를 구분하지 않고, List를 사용합니다. List의 순서는 0번부터 시작됩니다. 기본적인 선언 형태는 List 변수명 = []; 입니다. 안에 선언해준 타입과 동일한 타입만 List에 넣을 수 있습니다. List listString = ["aa", "bb", "cc"]; List listInt = [1, 2, 3, 4, 5]; List listBool = [true, true, true]; List는 가지고 있는 데이터를 추가, 삭제할 수 있습니다. - 데이터 추가 데이터를 추가할 때 a..
이번 포스팅에서는 If, Swtich, 삼항연산자를 알아보겠습니다. 1. If문 코딩할 때 가장 많이 사용되는 조건문입니다. 특정 값들을 비교해서 다른 이벤트나 UI를 연출하는 등 다양한 상황에서 사용됩니다. 키워드로는 if, else if, else 세가지가 있습니다. 시작은 무조건 if로 해야되지만 if 이후에 else if나 else를 사용하는 것은 자유입니다. else는 마지막에만 올 수 있고, else 이후에 else if나 if를 사용할 수 없습니다. 괄호는 true와 false의 값만 입력할 수 있고, true가 되면 해당 중괄호에 진입할 수 있습니다. 형태는 아래와 같습니다. void conditionalIf() { String value = "d"; if (value == "a") { p..
1. 연산자 연산자의 종류에는 산술, 증감, 비교, 논리가 있습니다. - 산술 연산자 : 사칙연산 - 증감 연산자 : 더하고 빼고 - 비교 연산자 : a가 b보다 큰지 작은지 혹은 같은지 비교 - 논리 연산자 : and, or, not, equal, not equal 2. 산술 연산자 산술 연산자는 사칙연산을 할 수 있는 기능을 제공합니다. 다트에서 기본적으로 제공하는 산술 연산자는 아래와 같습니다. - + : 더하기 - - : 빼기 - * : 곱하기 - / : 나누기 - ~/ : 나누기의 몫 구하기(int 타입으로 반환) - % : 나누기의 나머지 값 구하기(double 타입으로 반환) - 사용법 int age1 = 10 + 10; // 20 int age2 = 30 - 5; // 25 int age3..
Dart의 변수(Variable) 변수란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다. 즉, 변수란 데이터를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있습니다 - String : 문자열 - int : 정수 - double : 실수(소수점) - bool : 참(true) 또는 거짓(false) 1. 변수 선언 변수를 선언하기 위해서는 = 기호를 사용해야 합니다. 변수의 타입을 선언하고, 변수의 이름을 적어준 후에 = 기호로 값을 할당합니다. int age = 30; String name = "홍길동"; double weight = 70.5; bool b = true; 위와 같이 하면 age라는 int 타입의 변수에 30이라는 값이..