dart(11)
-
[Flutter/Dart] 확장 함수를 사용한 리스트 중복 체크
확장 함수를 사용한 리스트 중복 체크 이전에 Map에 확장함수(Extension method)를 만들어보자에서 간단하게 Map의 확장함수 fetch를 만들어서, 널 처리 및 타입 변환 등의 처리를 했었다. 이번에는 확장함수를 사용해서 배열의 중복 체크를 해보자. 결과부터 확인해보자. Dartpad에서 아래의 코드를 돌려보면 정상적으로 값이 출력되는 것을 확인할 수 있다. 간단하지만 자바스크립트로 구현했을때랑은 조금 다른데, 하나씩 살펴보도록 하자. extension ListExtension on List { bool isSameListWith(List other) { bool result = true; if (length == other.length) { asMap().forEach((index, val..
2021.09.13 -
[Flutter] Dart에서 Generic을 사용할 때, 런타임에서 타입을 확인해보자.
Dart에서 Generic을 사용할 때, 런타임에서 타입을 확인해보자. 종종 제네릭을 사용할 때 타입을 확인해야 할 때가 있다. 보통 나는 SharedPreferences나 JSONObject의 get함수 시리즈를 묶어버릴 때 사용하고는 한다. Kotlin에서는 Kotlin에서 JSONObject .get*의 확장 함수를 만들어봤다.와 같은 방식으로, reified를 사용해서 타입에 따른 분기를 처리했다. 아무래도 getString, getInt, gettBoolean등의 함수로 작성하면, 코드를 작성하다가 타입을 변경하기 영 귀찮았기 때문이다. 제네릭을 사용해서 함수를 이렇게 래핑하면 타입추론에 의지할수도 있어서, 아무래도 편리하다. 항상 타입추론을 맹신할 수는 없겠지만, 아무튼. Dart의 Type ..
2021.05.28 -
[Flutter] Provider로 비동기 통신을 하여 FutureBuilder를 대체하기
저번에 작성한 FutureBuilder에 대한 연장선에 있는 글이다. 비동기 처리에 익숙하다면 당연한 내용이기도 하다. 이번에는 FutureBuilder를 사용하여 비동기 처리를 했던 코드를, Provider로 분리하여 작성하는 방법에 대해 살펴보자. Provider를 사용하여 FutureBuilder를 대체하는 이유가 있을까? FutureBuilder를 사용해서 Widget의 초기 상태값을 결정할 때는 다음과 같은 문제점이 있다. FutureBuilder의 builder에서는 항상 비동기 처리에 대한 결과값으로, Widget을 반환해야 한다. 즉, 비동기 처리가 진행되는 동안 프로그레스 바를 띄운 뒤 다른 Widget으로 이동하려고 한다면, 렌더링과 관련해서 문제가 생긴다. 비동기 처리에 대한 로직이 ..
2021.03.25 -
[Flutter] Dart:io 패키지를 사용한 Http 통신 구현 및 주의점
이 글은 dart:io library를 참조하여 작성되었습니다. 만약 문제가 발생하는 경우, 다트의 버전을 확인해주세요. dart:io 패키지를 사용하면 Http 통신을 구현할 수 있습니다. 아마 좀 더 쉽게 HTTP 통신을 할 수 있는 패키지를 사용할수도 있겠지만... 요번에는 dart:io패키지를 사용하여 HTTP 통신을 구현하는 방법과 주의해야할 사항을 정리합니다. Dart:io library를 사용한 Http 통신 구현 dart:io library 페이지를 살펴보면 다음과 같은 내용을 발견할 수 있습니다. HttpServer and HttpClient The classes HttpServer and HttpClient provide HTTP server and HTTP client function..
2021.02.04 -
UDP 라이브러리를 통해 Flutter(Dart)에서 브로드캐스팅을 해보자
UDP 라이브러리를 통해 Flutter(Dart)에서 브로드캐스팅을 해보자 pub.dev에 등록된 라이브러리 중 UDP 라이브러리를 사용하면, 플러터에서도 쉽게 브로드캐스팅이 가능하다. UDP 라이브러리 페이지를 확인해보자. 인스톨 페이지에 나와있는대로 pubspec.yaml의 dependencies에 udp라이브러리를 등록하고, flutter pub get을 입력해주자. 라이브러리가 설치될 것이다. dependencies: udp: ^3.0.3예제 페이지에 나와있는대로, example/udp_example.dart를 확인해보면 쉽게 브로드캐스팅이 가능하다는 것을 알 수 있다. import 'dart:io'; import 'package:udp/udp.dart'; main()..
2020.11.30