ื–ืžื™ื ื•ืช ืฉืคืช ืชื›ื ื•ืช Dart 2.15 ื•ืžืกื’ืจืช Flutter 2.8

ื’ื•ื’ืœ ืคืจืกืžื” ืืช ื”ืžื”ื“ื•ืจื” ืฉืœ ืฉืคืช ื”ืชื›ื ื•ืช Dart 2.15, ืฉืžืžืฉื™ื›ื” ื‘ืคื™ืชื•ื— ืฉืœ ืขื ืฃ Dart 2 ืฉืขื•ืฆื‘ ืžื—ื“ืฉ ื‘ืื•ืคืŸ ืงื™ืฆื•ื ื™, ื”ืฉื•ื ื” ืžื”ื’ืจืกื” ื”ืžืงื•ืจื™ืช ืฉืœ ืฉืคืช Dart ื‘ืฉื™ืžื•ืฉ ื‘ื”ืงืœื“ื” ืกื˜ื˜ื™ืช ื—ื–ืงื” (ื ื™ืชืŸ ืœื”ืกื™ืง ืกื•ื’ื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™, ื•ืœื›ืŸ ื™ืฉ ืœืฆื™ื™ืŸ ืื™ืŸ ืฆื•ืจืš ื‘ื”ืงืœื“ื” ื“ื™ื ืžื™ืช, ื•ื‘ื—ื™ืฉื•ื‘ ื”ืจืืฉื•ื ื™ ื”ืกื•ื’ ืžื•ืงืฆื” ืœืžืฉืชื ื” ื•ื‘ื”ืžืฉืš ืžื™ื•ืฉืžืช ื‘ื“ื™ืงืช ื˜ื™ืคื•ืก ืงืคื“ื ื™ืช).

ืชื›ื•ื ื•ืช ืฉืœ ืฉืคืช Dart:

  • ืชื—ื‘ื™ืจ ืžื•ื›ืจ ื•ืงืœ ืœืœืžื™ื“ื”, ื˜ื‘ืขื™ ืœืžืชื›ื ืชื™ JavaScript, C ื•-Java.
  • ื”ื‘ื˜ื—ืช ื”ืฉืงื” ืžื”ื™ืจื” ื•ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ืขื‘ื•ืจ ื›ืœ ื“ืคื“ืคื ื™ ื”ืื™ื ื˜ืจื ื˜ ื”ืžื•ื“ืจื ื™ื™ื ื•ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ืกื‘ื™ื‘ื•ืช, ืžืžื›ืฉื™ืจื™ื ื ื™ื™ื“ื™ื ื•ืขื“ ืฉืจืชื™ื ืจื‘ื™ ืขื•ืฆืžื”.
  • ื”ื™ื›ื•ืœืช ืœื”ื’ื“ื™ืจ ืžื—ืœืงื•ืช ื•ืžืžืฉืงื™ื ื”ืžืืคืฉืจื™ื ืื ืงืคืกื•ืœืฆื™ื” ื•ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืฉื™ื˜ื•ืช ื•ื‘ื ืชื•ื ื™ื ืงื™ื™ืžื™ื.
  • ืฆื™ื•ืŸ ืกื•ื’ื™ื ืžืงืœ ืขืœ ื ื™ืคื•ื™ ื‘ืื’ื™ื ื•ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช, ื”ื•ืคืš ืืช ื”ืงื•ื“ ืœื‘ืจื•ืจ ื•ืงืจื™ื ื™ื•ืชืจ ื•ืžืคืฉื˜ ืืช ื”ืฉื™ื ื•ื™ ื•ื”ื ื™ืชื•ื— ืฉืœื• ืขืœ ื™ื“ื™ ืžืคืชื—ื™ ืฆื“ ืฉืœื™ืฉื™.
  • ื”ืกื•ื’ื™ื ื”ื ืชืžื›ื™ื ื›ื•ืœืœื™ื: ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ hashes, ืžืขืจื›ื™ื ื•ืจืฉื™ืžื•ืช, ืชื•ืจื™ื, ืกื•ื’ื™ ืžืกืคืจื™ื ื•ืžื—ืจื•ื–ื•ืช, ืกื•ื’ื™ื ืœืงื‘ื™ืขืช ืชืืจื™ืš ื•ืฉืขื”, ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืจื™ื™ื (RegExp). ืืคืฉืจ ืœื™ืฆื•ืจ ืกื•ื’ื™ื ืžืฉืœืš.
  • ื›ื“ื™ ืœืืจื’ืŸ ื‘ื™ืฆื•ืข ืžืงื‘ื™ืœ, ืžื•ืฆืข ืœื”ืฉืชืžืฉ ื‘ืžื—ืœืงื•ืช ืขื ืชื›ื•ื ืช isolate, ืฉื”ืงื•ื“ ืฉืœื”ืŸ ืžื‘ื•ืฆืข ื›ื•ืœื• ื‘ืžืจื—ื‘ ืžื‘ื•ื“ื“ ื‘ืื–ื•ืจ ื–ื™ื›ืจื•ืŸ ื ืคืจื“, ืชื•ืš ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ืชื”ืœื™ืš ื”ืจืืฉื™ ืขืœ ื™ื“ื™ ืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช.
  • ืชืžื™ื›ื” ื‘ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื•ืช ื”ืžืคืฉื˜ื•ืช ืืช ื”ืชืžื™ื›ื” ื•ื ื™ืคื•ื™ ื‘ืื’ื™ื ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื ื‘ืื™ื ื˜ืจื ื˜. ื ื™ืชืŸ ืœื›ืœื•ืœ ืžื™ืžื•ืฉื™ื ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ื‘ืฆื•ืจื” ืฉืœ ืกืคืจื™ื•ืช ืžืฉื•ืชืคื•ืช. ื ื™ืชืŸ ืœื—ืœืง ืืช ื”ืืคืœื™ืงืฆื™ื•ืช ืœื—ืœืงื™ื ื•ืœื”ืคืงื™ื“ ืืช ื”ืคื™ืชื•ื— ืฉืœ ื›ืœ ื—ืœืง ื‘ื™ื“ื™ ืฆื•ื•ืช ื ืคืจื“ ืฉืœ ืžืชื›ื ืชื™ื.
  • ืกื˜ ื›ืœื™ื ืžื•ื›ื ื™ื ืœืชืžื™ื›ื” ื‘ืคื™ืชื•ื— ื‘ืฉืคืช Dart, ื›ื•ืœืœ ื”ื˜ืžืขืช ื›ืœื™ ืคื™ืชื•ื— ื“ื™ื ืžื™ ื•ื ื™ืคื•ื™ ื‘ืื’ื™ื ืขื ืชื™ืงื•ืŸ ืงื•ื“ ืชื•ืš ื›ื“ื™ ืชื ื•ืขื” ("ืขืจื™ื›ื”-ื•ื”ืžืฉืš").
  • ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ืคื™ืชื•ื— ื‘ืฉืคืช Dart, ื”ื•ื ืžื’ื™ืข ืขื SDK, ืคืื‘ ืœืžื ื”ืœ ื—ื‘ื™ืœื•ืช, ืžื ืชื— ืงื•ื“ ืกื˜ื˜ื™ dart_analyzer, ืกื˜ ืกืคืจื™ื•ืช, ืกื‘ื™ื‘ืช ืคื™ืชื•ื— ืžืฉื•ืœื‘ืช DartPad ื•ืชื•ืกืคื™ื ื”ืชื•ืžื›ื™ื ื‘-Dart ืขื‘ื•ืจ IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 ื•-Vim.
  • ื—ื‘ื™ืœื•ืช ื ื•ืกืคื•ืช ืขื ืกืคืจื™ื•ืช ื•ืฉื™ืจื•ืชื™ื ืžื•ืคืฆื•ืช ื“ืจืš ืžืื’ืจ ื”ืคืื‘, ื”ื›ื•ืœืœ ื›-22 ืืœืฃ ื—ื‘ื™ืœื•ืช.

ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื ื‘ืžื”ื“ื•ืจืช Dart 2.15:

  • ืžืกืคืง ื›ืœื™ื ืœื‘ื™ืฆื•ืข ืžืงื‘ื™ืœ ืžื”ื™ืจ ืฉืœ ืžืฉื™ืžื•ืช ืขื ื‘ื™ื“ื•ื“ ืฉืœ ืžื˜ืคืœื™ื. ื‘ืžืขืจื›ื•ืช ืžืจื•ื‘ื•ืช ืœื™ื‘ื•ืช, ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ Dart ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืžืจื™ืฅ ืงื•ื“ ื™ื™ืฉื•ื ืขืœ ืœื™ื‘ืช ืžืขื‘ื“ ืื—ืช ื•ืžืฉืชืžืฉ ื‘ืœื™ื‘ื•ืช ืื—ืจื•ืช ืœื‘ื™ืฆื•ืข ืžืฉื™ืžื•ืช ืžืขืจื›ืช ื›ื’ื•ืŸ I/O ืืกื™ื ื›ืจื•ื ื™, ื›ืชื™ื‘ื” ืœืงื‘ืฆื™ื ืื• ื‘ื™ืฆื•ืข ืฉื™ื—ื•ืช ืจืฉืช. ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ืฉืฆืจื™ื›ื™ื ืœื”ืคืขื™ืœ ืืช ื”ืžื˜ืคืœื™ื ืฉืœื”ื ื‘ืžืงื‘ื™ืœ, ืœืžืฉืœ, ื›ื“ื™ ืœืขื‘ื“ ืื ื™ืžืฆื™ื” ื‘ืžืžืฉืง, ืืคืฉืจ ืœื”ืคืขื™ืœ ื‘ืœื•ืงื™ื ื ืคืจื“ื™ื ืฉืœ ืงื•ื“ (isolate), ืžื‘ื•ื“ื“ื™ื ื–ื” ืžื–ื” ื•ืžื‘ื•ืฆืขื™ื ืขืœ ืœื™ื‘ื•ืช CPU ืื—ืจื•ืช ื‘ื•-ื–ืžื ื™ืช ืขื ืฉืจืฉื•ืจ ื”ืืคืœื™ืงืฆื™ื” ื”ืจืืฉื™ . ื›ื“ื™ ืœื”ื’ืŸ ืžืคื ื™ ืฉื’ื™ืื•ืช ื”ืžืชืขื•ืจืจื•ืช ื‘ืขืช ื‘ื™ืฆื•ืข ื‘ื•-ื–ืžื ื™ืช ืฉืœ ืงื•ื“ ืฉืขื•ื‘ื“ ืขื ืื•ืชื” ืงื‘ื•ืฆืช ื ืชื•ื ื™ื, ืืกื•ืจ ืฉื™ืชื•ืฃ ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ื”ื ื™ืชื ื™ื ืœืฉื™ื ื•ื™ ื‘ื‘ืœื•ืงื™ื ืžื‘ื•ื“ื“ื™ื ืฉื•ื ื™ื, ื•ืžื•ื“ืœ ื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช ืžืฉืžืฉ ืœืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ ืžื˜ืคืœื™ื.

    Dart 2.15 ืžืฆื™ื’ ืงื•ื ืกืคื˜ ื—ื“ืฉ - ืงื‘ื•ืฆื•ืช ื‘ืœื•ืง ืžื‘ื•ื“ื“ื•ืช (ืงื‘ื•ืฆื•ืช ืžื‘ื•ื“ื“ื•ืช), ื”ืžืืคืฉืจ ืœืืจื’ืŸ ื’ื™ืฉื” ืžืฉื•ืชืคืช ืœืžื‘ื ื™ ื ืชื•ื ื™ื ืคื ื™ืžื™ื™ื ืฉื•ื ื™ื ื‘ื‘ืœื•ืงื™ื ืžื‘ื•ื“ื“ื™ื ืฉื”ื ื—ืœืง ืžืื•ืชื” ืงื‘ื•ืฆื”, ืžื” ืฉื™ื›ื•ืœ ืœื”ืคื—ื™ืช ืžืฉืžืขื•ืชื™ืช ืืช ื”ืชืงื•ืจื” ื‘ืขืช ืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ ืžื˜ืคืœื™ื ื‘ืงื‘ื•ืฆื” . ืœื“ื•ื’ืžื”, ื”ืฉืงืช ื‘ืœื•ืง ื‘ื™ื“ื•ื“ ื ื•ืกืฃ ื‘ืงื‘ื•ืฆื” ืงื™ื™ืžืช ืžื”ื™ืจื” ืคื™ 100 ื•ื“ื•ืจืฉืช ืคื™ 10-100 ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ ืžืืฉืจ ื”ืฉืงืช ื‘ืœื•ืง ื‘ื™ื“ื•ื“ ื ืคืจื“, ื‘ืฉืœ ื‘ื™ื˜ื•ืœ ื”ืฆื•ืจืš ื‘ืืชื—ื•ืœ ืžื‘ื ื™ ื ืชื•ื ื™ื ืฉืœ ืชื•ื›ื ื™ืช.

    ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื‘ืœื•ืงื™ื ืžื‘ื•ื“ื“ื™ื ื‘ืงื‘ื•ืฆื” ืขื“ื™ื™ืŸ ืื•ืกืจื™ื ื’ื™ืฉื” ืžืฉื•ืชืคืช ืœืื•ื‘ื™ื™ืงื˜ื™ื ื”ื ื™ืชื ื™ื ืœืฉื™ื ื•ื™, ื”ืงื‘ื•ืฆื•ืช ืžืฉืชืžืฉื•ืช ื‘ื–ื™ื›ืจื•ืŸ ืขืจื™ืžื” ืžืฉื•ืชืฃ, ืฉื™ื›ื•ืœ ืœื”ืื™ืฅ ืžืฉืžืขื•ืชื™ืช ืืช ื”ืขื‘ืจืช ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืžื‘ืœื•ืง ืื—ื“ ืœืื—ืจ ืœืœื ืฆื•ืจืš ื‘ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ื”ืขืชืงื” ืขืชื™ืจื•ืช ืžืฉืื‘ื™ื. ื”ื’ืจืกื” ื”ื—ื“ืฉื” ื’ื ืžืืคืฉืจืช ืœืš ืœื”ืขื‘ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœ ื”ืžื˜ืคืœ ื‘ืขืช ืงืจื™ืื” ืœ-Isolate.exit() ื›ื“ื™ ืœื”ืขื‘ื™ืจ ื ืชื•ื ื™ื ืœื‘ืœื•ืง ื”-Isolate ื”ืื‘ ืœืœื ืคืขื•ืœื•ืช ื”ืขืชืงื”. ื‘ื ื•ืกืฃ, ืžื ื’ื ื•ืŸ ื”ืขื‘ืจืช ื”ื”ื•ื“ืขื•ืช ืขื‘ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” - ื”ื•ื“ืขื•ืช ืงื˜ื ื•ืช ื•ื‘ื™ื ื•ื ื™ื•ืช ืžืขื•ื‘ื“ื•ืช ื›ืขืช ื›ืคื™ 8 ืžื”ืจ ื™ื•ืชืจ. ืื•ื‘ื™ื™ืงื˜ื™ื ืฉื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ื‘ื™ืŸ ืžื‘ื•ื“ื“ื™ื ื‘ืืžืฆืขื•ืช ื”ืงืจื™ืื” SendPort.send() ื›ื•ืœืœื™ื ื›ืžื” ืกื•ื’ื™ื ืฉืœ ืคื•ื ืงืฆื™ื•ืช, ืกื’ื™ืจื•ืช ื•ืขืงื‘ื•ืช ืžื—ืกื ื™ื•ืช.

  • ื‘ื›ืœื™ื ืœื™ืฆื™ืจืช ืžืฆื‘ื™ืขื™ื ืœืคื•ื ืงืฆื™ื•ืช ื‘ื•ื“ื“ื•ืช ื‘ืื•ื‘ื™ื™ืงื˜ื™ื ืื—ืจื™ื (ืงืจืข), ื”ื•ืกืจื• ื”ื’ื‘ืœื•ืช ืขืœ ื™ืฆื™ืจืช ืžืฆื‘ื™ืขื™ื ื“ื•ืžื™ื ื‘ืงื•ื“ ื”ื‘ื ืื™, ืžื” ืฉื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ ื‘ืขืช ื‘ื ื™ื™ืช ืžืžืฉืงื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ืกืคืจื™ื™ืช Flutter. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœื™ืฆื•ืจ ื•ื•ื™ื“ื’'ื˜ Column ื”ื›ื•ืœืœ ืžืกืคืจ ื•ื•ื™ื“ื’'ื˜ื™ื ืฉืœ ื˜ืงืกื˜, ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ".map()" ื•ืœื”ืขื‘ื™ืจ ืžืฆื‘ื™ืขื™ื ืœื‘ื ืื™ Text.new ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ Text: class FruitWidget ืžืจื—ื™ื‘ ืืช StatelessWidget { @override Widget build(BuildContext context) { return Column( children: ['Apple', 'Orange'].map(Text.new).toList()); } }
  • ื”ื•ืจื—ื‘ื• ื”ืืคืฉืจื•ื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืฉื™ืžื•ืฉ ื‘ืžืฆื‘ื™ืขื™ ืคื•ื ืงืฆื™ื•ืช. ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื•ืช ื’ื ืจื™ื•ืช ื•ื‘ืžืฆื‘ื™ืขื™ ืคื•ื ืงืฆื™ื•ืช ื›ื“ื™ ืœื™ืฆื•ืจ ืฉื™ื˜ื” ื•ืžืฆื‘ื™ืข ืœื ื’ื ืจื™: T id (ืขืจืš T) => ืขืจืš; var intId = ืžื–ื”ื” ; // ืžื•ืชืจ ื‘ื’ืจืกื” 2.15 ื‘ืžืงื•ื "int Function(int) intId = id;" const fo = ืžื–ื”ื”; // ืžืฆื‘ื™ืข ืœืžื–ื”ื” ืคื•ื ืงืฆื™ื”. const c1 = fo ;
  • ืกืคืจื™ื™ืช dart:core ืฉื™ืคืจื” ืชืžื™ื›ื” ื‘-enums, ืœื“ื•ื’ืžื”, ื›ืขืช ืชื•ื›ืœ ืœื”ื•ืฆื™ื ืขืจืš ืžื—ืจื•ื–ืช ืžื›ืœ ืขืจืš enum ื‘ืฉื™ื˜ืช ".name", ืœื‘ื—ื•ืจ ืขืจื›ื™ื ืœืคื™ ืฉื, ืื• ืœื”ืชืื™ื ื–ื•ื’ื•ืช ืขืจื›ื™ื: enum MyEnum { one , two, three } void main() { print(MyEnum.one.name); // "ืื—ื“" ื™ื•ื“ืคืก. print(MyEnum.values.byName('two') == MyEnum.two); // "true" ื™ื•ื“ืคืก. final map = MyEnum.values.asNameMap(); print(map['three'] == MyEnum.three); // "ื ื›ื•ืŸ". }
  • ื”ื•ื˜ืžืขื” ื˜ื›ื ื™ืงืช ื“ื—ื™ืกืช ืžืฆื‘ื™ืขื™ื ื”ืžืืคืฉืจืช ืฉื™ืžื•ืฉ ื‘ื™ื™ืฆื•ื’ ืงื•ืžืคืงื˜ื™ ื™ื•ืชืจ ืฉืœ ืžืฆื‘ื™ืขื™ื ื‘ืกื‘ื™ื‘ื•ืช ืฉืœ 64 ืกื™ื‘ื™ื•ืช ืื ืžืกืคื™ืง ืฉื˜ื— ื›ืชื•ื‘ื•ืช ืฉืœ 32 ืกื™ื‘ื™ื•ืช ืœื”ืชื™ื™ื—ืกื•ืช (ืœื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื™ื•ืชืจ ืž-4 GB ืฉืœ ื–ื™ื›ืจื•ืŸ). ื‘ื“ื™ืงื•ืช ื”ืจืื• ืฉืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื›ื–ื• ืžืืคืฉืจืช ืœื”ืงื˜ื™ืŸ ืืช ื’ื•ื“ืœ ื”ืขืจื™ืžื” ื‘ื›-10%. ื‘-Flutter SDK, ื”ืžืฆื‘ ื”ื—ื“ืฉ ื›ื‘ืจ ืžื•ืคืขืœ ืขื‘ื•ืจ ืื ื“ืจื•ืื™ื“ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื•ืžืชื•ื›ื ืŸ ืœื”ื™ื•ืช ืžื•ืคืขืœ ืขื‘ื•ืจ iOS ื‘ืžื”ื“ื•ืจื” ืขืชื™ื“ื™ืช.
  • ื”-Dart SDK ื›ื•ืœืœ ื›ืœื™ื ืœื ื™ืคื•ื™ ื‘ืื’ื™ื ื•ื ื™ืชื•ื— ื‘ื™ืฆื•ืขื™ื (DevTools), ืฉืกื•ืคืงื• ื‘ืขื‘ืจ ื‘ื—ื‘ื™ืœื” ื ืคืจื“ืช.
  • ื›ืœื™ื ื ื•ืกืคื• ืœืคืงื•ื“ื” "dart pub" ื•ืœืžืื’ืจื™ ื”ื—ื‘ื™ืœื•ืช pub.dev ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ืคืจืกื•ื ืžืงืจื™ ืฉืœ ืžื™ื“ืข ืกื•ื“ื™, ืœืžืฉืœ, ื”ืฉืืจืช ืื™ืฉื•ืจื™ื ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื•ืช ื•ืกื‘ื™ื‘ื•ืช ืขื ืŸ ื‘ืชื•ืš ื”ื—ื‘ื™ืœื”. ืื ื™ืชื’ืœื• ื“ืœื™ืคื•ืช ื›ืืœื”, ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื” "ื“ืืจื˜ pub publish" ื™ื•ืคืกืง ืขื ื”ื•ื“ืขืช ืฉื’ื™ืื”. ืื ื”ื™ื™ืชื” ื—ื™ื•ื‘ื™ืช ืฉื’ื•ื™ื”, ืืคืฉืจ ืœืขืงื•ืฃ ืืช ื”ืฆ'ืง ื“ืจืš ืจืฉื™ืžื” ืœื‘ื ื”.
  • ื”ื™ื›ื•ืœืช ืœื‘ื˜ืœ ื’ืจืกื” ืฉื›ื‘ืจ ืคื•ืจืกืžื” ืฉืœ ื—ื‘ื™ืœื” ื ื•ืกืคื” ืœืžืื’ืจ pub.dev, ืœืžืฉืœ, ืื ืžืชื’ืœื•ืช ืฉื’ื™ืื•ืช ืื• ืคื’ื™ืขื•ื™ื•ืช ืžืกื•ื›ื ื•ืช. ื‘ืขื‘ืจ, ืขื‘ื•ืจ ืชื™ืงื•ื ื™ื ื›ืืœื”, ื”ื ื•ื”ื’ ื”ื™ื” ืœืคืจืกื ื’ืจืกื” ืžืชืงื ืช, ืืš ื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื ื™ืฉ ืฆื•ืจืš ืœื‘ื˜ืœ ืืช ื”ื”ืคืฆื” ื”ืงื™ื™ืžืช ื•ืœื”ืคืกื™ืง ื‘ื“ื—ื™ืคื•ืช ืืช ื”ืžืฉืš ื”ืคืฆืชื• (ืœืžืฉืœ, ืื ื”ืชื™ืงื•ืŸ ืขื“ื™ื™ืŸ ืœื ืžื•ื›ืŸ ืื• ืื ื”ื•ืฆืื” ืžืœืื” ืคื•ืจืกื ื‘ื˜ืขื•ืช ื‘ืžืงื•ื ื’ืจืกืช ื‘ื“ื™ืงื”). ืœืื—ืจ ื‘ื™ื˜ื•ืœ ื”ื—ื‘ื™ืœื” ืื™ื ื” ืžื–ื•ื”ื” ื™ื•ืชืจ ื‘ืคืงื•ื“ื•ืช "pub get" ื•-"pub upgrade", ื•ื‘ืžืขืจื›ื•ืช ืฉื›ื‘ืจ ื”ืชืงื™ื ื• ืื•ืชื”, ืžื•ื ืคืงืช ืื–ื”ืจื” ืžื™ื•ื—ื“ืช ื‘ืคืขื ื”ื‘ืื” ืฉ"pub get" ืžื‘ื•ืฆืข.
  • ื ื•ืกืคื” ื”ื’ื ื” ืžืคื ื™ ืคื’ื™ืขื•ืช (CVE-2021-22567) ื”ื ื’ืจืžืช ืžืฉื™ืžื•ืฉ ื‘ืชื•ื•ื™ unicode ื‘ืงื•ื“ ื”ืžืฉื ื™ื ืืช ืกื“ืจ ื”ืชืฆื•ื’ื”.
  • ืชื•ืงื ื” ืคื’ื™ืขื•ืช (CVE-2021-22568) ื”ืžืืคืฉืจืช ืœืš ืœื”ืชื—ื–ื•ืช ืœืžืฉืชืžืฉ pub.dev ืื—ืจ ื‘ืขืช ืคืจืกื•ื ื—ื‘ื™ืœื•ืช ืœืฉืจืช ืฆื“ ืฉืœื™ืฉื™ ื”ืžืงื‘ืœ ืืกื™ืžื•ื ื™ ื’ื™ืฉื” ืฉืœ pub.dev oauth2. ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคื’ื™ืขื•ืช ื›ื“ื™ ืœืชืงื•ืฃ ืฉืจืชื™ ื—ื‘ื™ืœื•ืช ืคื ื™ืžื™ื™ื ื•ืืจื’ื•ื ื™ื™ื. ืžืคืชื—ื™ื ื”ืžืืจื—ื™ื ืจืง ื—ื‘ื™ืœื•ืช ื‘- pub.dev ืื™ื ื ืžื•ืฉืคืขื™ื ืžื”ื‘ืขื™ื” ื”ื–ื•.

ื‘ืžืงื‘ื™ืœ, ื”ื•ืฆื’ื” ืžื”ื“ื•ืจื” ืžืฉืžืขื•ืชื™ืช ืฉืœ ืžืกื’ืจืช ืžืžืฉืง ื”ืžืฉืชืžืฉ Flutter 2.8, ื”ื ื—ืฉื‘ืช ื›ื—ืœื•ืคื” ืœ-React Native ื•ืžืืคืฉืจืช, ื‘ื”ืชื‘ืกืก ืขืœ ื‘ืกื™ืก ืงื•ื“ ืื—ื“, ืœืฉื—ืจืจ ืืคืœื™ืงืฆื™ื•ืช ืขื‘ื•ืจ iOS, Android, Windows, macOS ื• ืคืœื˜ืคื•ืจืžื•ืช ืœื™ื ื•ืงืก, ื›ืžื• ื’ื ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ื ืœื”ืคืขืœื” ื‘ื“ืคื“ืคื ื™ื. ืžืขื˜ืคืช ืžื•ืชืืžืช ืื™ืฉื™ืช ืขื‘ื•ืจ ืžืขืจื›ืช ื”ื”ืคืขืœื” Fuchsia microkernel ืฉืคื•ืชื—ื” ืขืœ ื™ื“ื™ ื’ื•ื’ืœ ื‘ื ื•ื™ื” ืขืœ ื‘ืกื™ืก Flutter. ื™ืฆื•ื™ืŸ ื›ื™ ื‘ืžื”ืœืš ืฉืฉืช ื”ื—ื•ื“ืฉื™ื ื”ืื—ืจื•ื ื™ื ื’ื“ืœ ืžืกืคืจ ื”ืืคืœื™ืงืฆื™ื•ืช ืฉืœ Flutter 2 ื‘ื—ื ื•ืช Google Play ืž-200 ืืœืฃ ืœ-375 ืืœืฃ, ื›ืœื•ืžืจ. ื›ืžืขื˜ ืคืขืžื™ื™ื.

ื”ื—ืœืง ื”ืขื™ืงืจื™ ืฉืœ ืงื•ื“ Flutter ืžื™ื•ืฉื ื‘ืฉืคืช Dart, ื•ืžื ื•ืข ื–ืžืŸ ื”ืจื™ืฆื” ืœื‘ื™ืฆื•ืข ื™ื™ืฉื•ืžื™ื ื›ืชื•ื‘ ื‘-C++. ื‘ืขืช ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื, ื‘ื ื•ืกืฃ ืœืฉืคืช Dart ื”ืžืงื•ืจื™ืช ืฉืœ Flutter, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืžืžืฉืง Dart Foreign Function ื›ื“ื™ ืœืงืจื•ื ืœืงื•ื“ C/C++. ื‘ื™ืฆื•ืขื™ ื‘ื™ืฆื•ืข ื’ื‘ื•ื”ื™ื ืžื•ืฉื’ื™ื ืขืœ ื™ื“ื™ ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ื ืœืงื•ื“ ืžืงื•ืจื™ ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ื™ืขื“. ื‘ืžืงืจื” ื–ื”, ืื™ืŸ ืฆื•ืจืš ืœื”ื“ืจ ืžื—ื“ืฉ ืืช ื”ืชื•ื›ื ื™ืช ืœืื—ืจ ื›ืœ ืฉื™ื ื•ื™ - Dart ืžืกืคืง ืžืฆื‘ ื˜ืขื™ื ื” ื—ื•ื–ืจืช ื—ืžื” ื”ืžืืคืฉืจ ืœื‘ืฆืข ืฉื™ื ื•ื™ื™ื ื‘ืืคืœื™ืงืฆื™ื” ื”ืคื•ืขืœืช ื•ืœื”ืขืจื™ืš ืžื™ื“ ืืช ื”ืชื•ืฆืื”.

ื‘ื™ืŸ ื”ืฉื™ื ื•ื™ื™ื ื‘ืžื”ื“ื•ืจื” ื”ื—ื“ืฉื” ืฉืœ Flutter, ืžืฆื•ื™ืŸ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžื”ื™ืจื•ืช ื”ื”ืฉืงื” ื•ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื‘ืžื›ืฉื™ืจื™ื ื ื™ื™ื“ื™ื. ืงืœ ื™ื•ืชืจ ืœื—ื‘ืจ ืืคืœื™ืงืฆื™ื•ืช ืœืฉื™ืจื•ืชื™ ืงืฆื” ื›ืžื• Firebase ื•-Google Cloud. ื”ื›ืœื™ื ืœืฉื™ืœื•ื‘ ืขื Google Ads ื”ืชื™ื™ืฆื‘ื•. ื”ืชืžื™ื›ื” ื‘ืžืฆืœืžื•ืช ื•ื‘ืชื•ืกืคื™ ืื™ื ื˜ืจื ื˜ ืฉื•ืคืจื” ืžืฉืžืขื•ืชื™ืช. ื”ื•ืฆืขื• ื›ืœื™ื ื—ื“ืฉื™ื ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ืคื™ืชื•ื—, ืœื“ื•ื’ืžื”, ื ื•ืกืฃ ื™ื™ืฉื•ืžื•ืŸ ืœืื™ืžื•ืช ื‘ืืžืฆืขื•ืช Firebase. ืžื ื•ืข ื”-Flame, ื”ืžื™ื•ืขื“ ืœืคื™ืชื•ื— ืžืฉื—ืงื™ ื“ื•-ืžืžื“ ื‘ืืžืฆืขื•ืช Flutter, ืขื•ื“ื›ืŸ.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”