[플러터] SVG(벡터 이미지) 불러오기
·
Flutter/Flutter Tech
SVG 디자이너와 협업을 하거나, 이미지를 공급받는 경우 흔히 아는 PNG, JPG 타입이 아닌 SVG 형식이라는 것을 본적이 있을 것이다. SVG는 벡터 이미지의 일종으로 쉽게 코드의 형태로 된 이미지라고 말할 수 있다. 위처럼 이미지가 코드로 표현된다. 벡터 이미지에 대한 자세한 설명은 생략하겠다. 필자는 외부 디자이너에게 의뢰한 앱디자인을 어도비 XD파일로 제공받았는데 아이콘 파일들은 별도로 주지 않고, XD내에 첨부해주었다. XD에서는 아래와 같이 이미지를 SVG 코드로 변환할 수 있다. Flutter SVG flutter_svg | Flutter Package An SVG rendering and widget library for Flutter, which allows painting and d..
[플러터/다트] 삼항연산자와 nullish coalescing
·
Flutter/Dart
삼항연산자 int value1 = 5; bool value2 = false; value2 = value ? 100 : 200; ?는 자바에서도 볼 수 있는 삼항연산자입니다. ? 앞의 수식이 true면 :의 앞쪽을 반환하고 false면 :의 뒤쪽을 반환합니다. 플러터에서 굉장히 자주 사용하게 되는데, widget내에서는 if문을 사용하지 못하기 때문입니다. isSignIn ? RaisedButton( child: Text('SingUP') onPressed:(){} ) : SizedBox(), 예시처럼 조건에 맞게 widget이 랜더되야하는 경우에는 삼항연산자를 사용해야합니다. 또, 크기나 기타 위젯의 속성들을 조건에 맞추는 경우도 마찬가지입니다. 그리고 삼항연산자는 반드시 true와 false 두가지 반..
[플러터/다트] where 함수 (JS의 Filter)
·
Flutter/Dart
Filter 자바스크립트의 배열 타입의 변수에서 Filter()를 사용하곤한다. 하지만 왜 다트에는 없을까? 찾아보았더니 where이라는 함수가 이를 대신하고 있다. 보시다시피 파생 함수가 많은데 메인 동작은 동일하고 함수명으로 차이점을 대략 유추할 수 있다. Where where의 주요 동작은 자바스크립트의 filter와 같이 각 요소들을 조건으로 걸러 새로운 배열을 만드는 함수이다. 조금 다른 점이 있다면 index 값을 제공해주지 않는다. 아래는 배열의 요소 중 짝수만을 골라 새로운 배열을 생성하는 예시이다. where은 return 값이 배열이므로 기존 배열을 수정하길 원하면 retainWhere을 사용해야한다. List list = [...] List evenNumbers = list.where..
[플러터/다트]map() 함수
·
Flutter/Dart
iterable 함수 설명의 return 값을 보면 iterable 이라고 하는 타입이 종종보인다. iterable는 List의 추상 클래스로 순서가 있는 배열이다. 일반적으로 선언해서 사용하지는 않지만 함수에서 순서가 있음을 표현하기 위해 사용된다. 은 제네릭을 의미한다. Map 함수 map()은 iterable를 가공하여 iterable로 반환하는 함수이다. forEach()가 단순 루프인것에 반해 map()은 반환이 존재한다. List data = [Item ....]; List containers = data.map((Item item) { //에는 반환값, ( )는 배열의 요소 값 return Container( child : Text('Item.name'));})
[플러터/다트] 메모리 주소로 전달되는 List
·
Flutter/Dart
Dart의 List는 매개변수, '= '등 으로 전달시 메모리 주소 값으로 전달되어 이름이 다르더라도 한 곳에서 요소를 변경하면 모두 다 변경된다. 예제1 void main() { List pointer = [1,2,3]; myClass myclass = myClass(pointer); myclass.reverse(); print(pointer.toString()); } class myClass{ myClass(this.pointer); List pointer; void reverse(){ for(int i =0; i