플러터닷(Flutter.Dart)

고정 헤더 영역

글 제목

메뉴 레이어

플러터닷(Flutter.Dart)

메뉴 리스트

  • 홈
  • 태그
  • 분류 전체보기 (150)
    • Dart (24)
      • 기초 (24)
    • Flutter (46)
      • 기초 (5)
      • LED 검사(Windows) (31)
      • 블럭 퍼즐 맞추기(Android) (8)
      • 대용량 파일 전송(Android) (2)
    • Data Science (67)
      • Python (38)
      • R (1)
    • ETC (7)

검색 레이어

플러터닷(Flutter.Dart)

검색 영역

컨텐츠 검색

dart

  • [Dart] 조건들을 순열로 만드는 yield 함수 예제

    2023.06.02 by FDG

  • [Dart] Isolate간 데이터 처리 예제(Completer 사용) - 백그라운드 작업(멀티쓰레딩)

    2023.05.24 by FDG

  • [Dart] 플러터 동기(sync), 비동기(async), 멀티쓰레딩(isolate/compute) 속도 비교 예제

    2023.05.22 by FDG

  • [Flutter] 플러터 화면 버벅 거림에 멀티스레딩 compute(isolate) 사용 예제

    2023.05.21 by FDG

  • [Dart] 실행 파일 또는 임의의 파일 메모리 사용 용량 확인

    2023.05.09 by FDG

  • [Dart] 키보드 눌러지면 키 출력(ESC 등은 안됨)

    2023.05.08 by FDG

  • [Dart] FFi 사용할 때 DynamicLibrary 선언 위치

    2023.05.06 by FDG

  • [Dart] 이미지 blur 처리 함수 구현 (Image Blur Algorithm)

    2023.05.01 by FDG

  • [Dart/C++] 검정 배경에서 흰색 영역 찾는 함수 (Code to find centers & sizes of white areas in black background)

    2023.05.01 by FDG

  • [Dart] 2차원 List 배열 깊은 복사 (How to Deep Copy of multi dimensional List(array) )

    2023.05.01 by FDG

[Dart] 조건들을 순열로 만드는 yield 함수 예제

Dart yield 함수 예 // 주어진 임의의 5가지 조건 List conditions = [ { 'name': 'I0', 'move': [0, 1] }, { 'name': 'I1', 'move': [0, 2] }, { 'name': 'I2', 'move': [0, 1] }, { 'name': 'J0', 'move': [0, 1] }, { 'name': 'J1', 'move': [1, 1] } ]; // preProcess 함수 preProcess(int i, List item) { // 인자를 해석함 for (int j = 0; j < item.length; j++) { print('$i ,${item[j]}'); } } // 가능한 모든 순열(n factorial) 생성 함수 Iterable gen..

Flutter/블럭 퍼즐 맞추기(Android) 2023. 6. 2. 09:41

[Dart] Isolate간 데이터 처리 예제(Completer 사용) - 백그라운드 작업(멀티쓰레딩)

Isolate 생성하는 함수를 4가지로 만들어 봄. 코드 : Isolate 10개를 생성하고 실행 import 'dart:io'; import 'dart:async'; import 'dart:isolate'; // Task 결과 저장을 위한 변수 List iTask = []; // Task 모니터링 함수 // Monitoring count, repetition interval (ms), maximum number of Tasks, target for stopping Future futureCheckTask( int repeatCount, int interval, int taskCount, int targetValue) async { DateTime startTime = DateTime.now(); // ..

Flutter/LED 검사(Windows) 2023. 5. 24. 00:01

[Dart] 플러터 동기(sync), 비동기(async), 멀티쓰레딩(isolate/compute) 속도 비교 예제

Dart에서 동기, 비동기, 멀티쓰레딩이 어떤 순서로 작업이 되는지 확인하고 소요 시간을 비교해 봤다. 참고로 compute함수는 isolate를 간단한 방식으로 사용하기 위해 flutter foundation.dart에서 별도로 정의한 함수이다. 그래서 Dart SDK에서는 사용이 불가능하다. compute는 isolate과 통신을 할 수가 없기 때문에, 일방적인 작업을 시킬 때 사용한다. compute에서는 작업의 진행 상태 등을 알 수가 없고, 종료가 된 후에 결괏값만 확인할 수 있다. import 'dart:io'; import 'dart:async'; import 'dart:isolate'; // Declare a global variable to store the results per task..

Flutter/LED 검사(Windows) 2023. 5. 22. 02:09

[Flutter] 플러터 화면 버벅 거림에 멀티스레딩 compute(isolate) 사용 예제

사용하는 함수가 로드가 많이 걸리니까 플러터 화면이 정지가 된다. 멀티쓰레딩으로 해결하기 위해 compute를 사용했다. compute는 인자 1개만 전달할 수 있기 때문에 복수의 인자를 Map 컴프리헨션으로 묶어서 전달했다. (윈도우10 환경) import 'package:flutter/material.dart'; import 'package:flutter/foundation.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( restorati..

Flutter/LED 검사(Windows) 2023. 5. 21. 01:11

[Dart] 실행 파일 또는 임의의 파일 메모리 사용 용량 확인

윈도우의 tasklist 명령어를 이용해 프로그램 메모리 사용 용량을 확인하는 코드. dart ffi를 사용하지 않아도 됨. import 'dart:io'; // For only windows platform List memoryUsageFileTaskList(String fileName) { String extension = '.exe'; if (!fileName.toLowerCase().endsWith(extension.toLowerCase())) { fileName += extension; } final tasklist = Process.runSync('tasklist /NH', [], runInShell: true); final memoryUsage = tasklist.stdout .split('..

Dart/기초 2023. 5. 9. 01:01

[Dart] 키보드 눌러지면 키 출력(ESC 등은 안됨)

import 'dart:io'; // https://api.flutter.dev/flutter/dart-io/Stdin/echoMode.html int waitForKeys(List chars) { // On Windows this mode can only be disabled if echoMode is disabled as well. // Maintain code order bool exitStatus = false; stdin.echoMode = false; // Input from the console will not be echoed. stdin.lineMode = false; // Characters will be available as typed. print("Press the key(s) t..

Dart/기초 2023. 5. 8. 09:51

[Dart] FFi 사용할 때 DynamicLibrary 선언 위치

DLL내에 있는 함수를 반복 실행하고 속도를 측정해 봤다. 1회 실행할 경우에는 DART(test 함수, test2 함수)와 C++에서 실행 속도 차이가 없었다. 그런데 반복적으로 여러 번 실행하게 되면 속도 차이가 발생한다. 아래 test함수처럼 DynamicLibrary을 선언하면 속도가 매우 느려진다. 속도 차이를 최소화하기 위해서는 DynamicLibrary을 Global 선언해서 1회만 실행되도록 해야 한다. DynamicLibrary는 Global 선언해야 중복 실행이 안된다. (속도 저하가 없음) // 반복해서 사용할 경우 DynamicLibrary 선언 나쁜 예 void test(int n) { final path2 = './user_func.dll'; final _lib2 = Dynami..

Flutter/LED 검사(Windows) 2023. 5. 6. 04:01

[Dart] 이미지 blur 처리 함수 구현 (Image Blur Algorithm)

ChatGPT에서 가져옴. void blur(List image, int kernelSize) { int kernelRadius = kernelSize ~/ 2; int width = image[0].length; int height = image.length; List tempImage = List.generate(height, (_) => List.filled(width, 0)); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { int sum = 0; int count = 0; for (int ky = -kernelRadius; ky = 0 && py < height) { sum += image[py][px]; count++;..

Flutter/LED 검사(Windows) 2023. 5. 1. 04:07

[Dart/C++] 검정 배경에서 흰색 영역 찾는 함수 (Code to find centers & sizes of white areas in black background)

ChatGPT에서 코드 받아서 마사지했음. Dart Code (참고) Dart에서 호출 함수에 입력 변수로 List, Map, Set 넣어주고 호출 함수 안에서 입력 변숫값 변경하면, 호출 함수가 종료된 후에도 변경된 값이 유지됨. 단 배열 개념이 아닌 변수는 안됨. (파이썬도 마찬가지) class Point { int x, y; Point(this.x, this.y); } void findCentersAndSizes( List image, List centers, List sizes) { final int width = image[0].length; final int height = image.length; for (int i = 0; i < height; i++) { for (int j = 0; j ..

Flutter/LED 검사(Windows) 2023. 5. 1. 01:21

[Dart] 2차원 List 배열 깊은 복사 (How to Deep Copy of multi dimensional List(array) )

2차원 List의 Deep Copy를 위해서는 신규 변수를 선언하고 List.add()로 생성해야 함! List deepCopy(List original) { // Create a new list of lists List copy = []; // Iterate over the original list and copy each inner list for (int i = 0; i < original.length; i++) { List innerCopy = List.from(original[i]); copy.add(innerCopy); } return copy; } void main(){ // List List myList=[]; List clonedList=[]; // Case 1 myList=[[0,0],..

Dart/기초 2023. 5. 1. 00:33

추가 정보

인기글

최신글

페이징

이전
1 2 3
다음
.
플러터닷(Flutter.Dart) @ metania
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바