ื–ืžื™ื ื™ื ื‘ืฉืคืช Dart 2.14 ื•ืžืกื’ืจืช Flutter 2.5

ื’ื•ื’ืœ ืคืจืกืžื” ืืช ื”ืžื”ื“ื•ืจื” ืฉืœ ืฉืคืช ื”ืชื›ื ื•ืช Dart 2.14, ืฉืžืžืฉื™ื›ื” ื‘ืคื™ืชื•ื— ืฉืœ ืขื ืฃ 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.
  • ื—ื‘ื™ืœื•ืช ื ื•ืกืคื•ืช ืขื ืกืคืจื™ื•ืช ื•ืฉื™ืจื•ืชื™ื ืžื•ืคืฆื•ืช ื“ืจืš ืžืื’ืจ ื”ืคืื‘, ื”ื›ื•ืœืœ ื™ื•ืชืจ ืž-20 ืืœืฃ ื—ื‘ื™ืœื•ืช.

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

  • ื ื•ืกืฃ ืื•ืคืจื˜ื•ืจ ืžืฉื•ืœืฉ ืžืฉืžืจืช (>>>) ื—ื“ืฉ, ืฉื‘ื ื™ื’ื•ื“ ืœืื•ืคืจื˜ื•ืจ ">>", ืžื‘ืฆืข ืœื ืืจื™ืชืžื˜ื™ืงื”, ืืœื ืชื–ื•ื–ื” ืœื•ื’ื™ืช ื”ืคื•ืขืœืช ืœืœื ื”ืชื—ืฉื‘ื•ืช ื‘ืกื™ื‘ื™ืช ื”ืกื™ืžืŸ (ื”ืžืฉืžืจืช ืžืชื‘ืฆืขืช ืœืœื ื—ืœื•ืงื” ืœ- ืžืกืคืจื™ื ื—ื™ื•ื‘ื™ื™ื ื•ืฉืœื™ืœื™ื™ื).
  • ื”ืกืจื” ืืช ื”ื”ื’ื‘ืœื” ืขืœ ืืจื’ื•ืžื ื˜ื™ื ืžืกื•ื’ ืฉืžื ืขื• ืžืกื•ื’ื™ ืคื•ื ืงืฆื™ื•ืช ื’ื ืจื™ื™ื ืœืฉืžืฉ ื›ืืจื’ื•ืžื ื˜ ืกื•ื’. ืœื“ื•ื’ืžื”, ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ: ืžืื•ื—ืจ ืจืฉื™ืžื” (T)>idFunctions; var callback = [ (ืขืจืš T) => ืขืจืš]; ืžืื•ื—ืจ S ืคื•ื ืงืฆื™ื” (T)>(S) f;
  • ืืคืฉืจ ืœืฆื™ื™ืŸ ืืจื’ื•ืžื ื˜ื™ื ืขื ืกื•ื’ื™ื ื‘ื”ืขืจื•ืช ื›ื’ื•ืŸ @ ื”ื•ืฆื ืžืฉื™ืžื•ืฉ. ืœื“ื•ื’ืžื”, ื›ืขืช ืชื•ื›ืœ ืœืฆื™ื™ืŸ: @TypeHelper (42, "ื”ืžืฉืžืขื•ืช")
  • ื”ืžืชื•ื“ื•ืช ื”ืกื˜ื˜ื™ื•ืช hash, hashAll ื•-hashAllUordered ื ื•ืกืคื• ืœืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช (ื”ืœื™ื‘ื”) ื‘ืžื—ืœืงื” Object. ืžื—ืœืงืช DateTime ืฉื™ืคืจื” ืืช ื”ื˜ื™ืคื•ืœ ื‘ื–ืžืŸ ืžืงื•ืžื™ ื‘ื”ืžืจืช ืฉืขื•ื ื™ื ื‘ื™ืŸ ืฉืขื•ืŸ ืงื™ืฅ ืœื—ื•ืจืฃ ืฉืื™ื ื ื ื™ืชื ื™ื ืœื—ืœื•ืงื” ื‘ืฉืขื” ืื—ืช (ืœื“ื•ื’ืžื”, ื‘ืื•ืกื˜ืจืœื™ื” ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื”ื™ืกื˜ ืฉืœ 30 ื“ืงื•ืช). ื—ื‘ื™ืœืช ffi ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžื ื’ื ื•ืŸ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ื”ื–ื™ืจื”, ื”ืžืฉื—ืจืจ ืžืฉืื‘ื™ื ืื•ื˜ื•ืžื˜ื™ืช. ื—ื‘ื™ืœืช ffigen ื”ื•ืกื™ืคื” ืืช ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ื”ื’ื“ืจื•ืช typedef ืฉืœ ืกื•ื’ื™ Dart ืžืฉืคืช C.
  • 250 ื”ื—ื‘ื™ืœื•ืช ื”ืคื•ืคื•ืœืจื™ื•ืช ื‘ื™ื•ืชืจ ืžืžืื’ืจ pub.dev ื•-94% ืžื”ื˜ื•ืค-1000 ื”ื•ืขื‘ืจื• ืœืฉื™ืžื•ืฉ ื‘ืžืฆื‘ "null safety", ืืฉืจ ื™ืžื ืข ืงืจื™ืกื•ืช ื”ื ื’ืจืžื•ืช ืขืœ ื™ื“ื™ ื ื™ืกื™ื•ื ื•ืช ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื™ื ืฉืขืจื›ื ืื™ื ื• ืžื•ื’ื“ืจ ื•ืžื•ื’ื“ืจ ื›"Null "" ื”ืžืฆื‘ ืžืจืžื– ืฉืœืžืฉืชื ื™ื ืœื ื™ื”ื™ื• ืขืจื›ื™ null ืืœื ืื ื›ืŸ ื ืงื‘ืข ืœื”ื ื‘ืžืคื•ืจืฉ ืืช ื”ืขืจืš null. ื”ืžืฆื‘ ืžื›ื‘ื“ ื‘ืงืคื“ื ื•ืช ืกื•ื’ื™ ืžืฉืชื ื™ื, ืžื” ืฉืžืืคืฉืจ ืœืžื”ื“ืจ ืœื”ื—ื™ืœ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื ื•ืกืคื•ืช. ืชืื™ืžื•ืช ืกื•ื’ ื ื‘ื“ืงืช ื‘ื–ืžืŸ ื”ื”ื™ื“ื•ืจ, ืœื“ื•ื’ืžื”, ืื ืชื ืกื” ืœื”ืงืฆื•ืช ืืช ื”ืขืจืš "Null" ืœืžืฉืชื ื” ืขื ืกื•ื’ ืฉืื™ื ื• ืžืจืžื– ืขืœ ืžืฆื‘ ืœื ืžื•ื’ื“ืจ, ื›ื’ื•ืŸ "int", ืชื•ืฆื’ ืฉื’ื™ืื”.
  • ืžื•ืฆืขื•ืช ืกื˜ื™ื ืื—ื™ื“ื™ื ืฉืœ ื›ืœืœื™ื ืขื‘ื•ืจ ืžื ืชื— ื”ืงื•ื“ (linter), ื”ืžืกืคืงื™ื ืชืžื™ื›ื” ื‘ื•-ื–ืžื ื™ืช ืœื‘ื“ื™ืงืช ืชืื™ืžื•ืช ืœื”ื ื—ื™ื•ืช ืกื’ื ื•ืŸ ื”ืงื•ื“ ืขื‘ื•ืจ Dart ื•ืžืกื’ืจืช Flutter. ืžืกื™ื‘ื•ืช ื”ื™ืกื˜ื•ืจื™ื•ืช, ื›ืœืœื™ ื”ืงื™ื“ื•ื“ ืขื‘ื•ืจ Flutter ื•-Dart ื”ื™ื• ืฉื•ื ื™ื, ื‘ื ื•ืกืฃ, ืขื‘ื•ืจ Dart ื”ื™ื• ืฉื ื™ ืกื˜ื™ื ืฉืœ ื›ืœืœื™ื ื‘ืฉื™ืžื•ืฉ - ืคื“ื ื˜ื™ื™ื ืžื’ื•ื’ืœ ื•ื—ื•ืงื™ื ืžืงื”ื™ืœืช ื”ืžืคืชื—ื™ื ืฉืœ Dart. Dart 2.14 ืžืฆื™ื’ ืงื‘ื•ืฆื” ื—ื“ืฉื” ืฉืœ ื›ืœืœื™ื ืขื‘ื•ืจ linter, ืฉื”ื•ื—ืœื˜ ืœืฉืžืฉ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ืคืจื•ื™ืงื˜ื™ื ื—ื“ืฉื™ื ืฉืœ Dart ื•ื‘-Flutter SDK. ื”ืกื˜ ื›ื•ืœืœ ื›ืœืœื™ ืœื™ื‘ื” (ื—ื‘ื™ืœืช lints/core.yaml), ื›ืœืœื™ื ื ื•ืกืคื™ื ืžื•ืžืœืฆื™ื (lints/recommended.yaml), ื•ื”ืžืœืฆื•ืช ืกืคืฆื™ืคื™ื•ืช ืœ-Flutter (flutter_lints/flutter.yaml). ืœืžืฉืชืžืฉื™ื ื‘ื—ื•ืงื™ื ืคื“ื ื˜ื™ื™ื ืžื•ืžืœืฅ ืœืขื‘ื•ืจ ืœืฉื™ืžื•ืฉ ื‘ืกื’ื ื•ืŸ ืงื™ื“ื•ื“ ื—ื“ืฉ ื”ืžื‘ื•ืกืก ืขืœ ื”ื”ืžืœืฆื•ืช ืžืชื™ืขื•ื“ Dart.
  • ื‘ืคื•ืจืžื˜, ื‘ื•ืฆืขื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืœืขื™ืฆื•ื‘ ืฉืœ ื‘ืœื•ืงื™ ืงื•ื“ ืžื“ื•ืจื’ื™ื, ืžื” ืฉื™ื›ื•ืœ ืœืฉืคืจ ืžืฉืžืขื•ืชื™ืช ืืช ื‘ื™ืฆื•ืขื™ ื”ืคื•ืจืžื˜ ื•ืœื”ื™ืžื ืข ืžืคืจืฉื ื•ืช ืžืขื•ืจืคืœืช ืฉืœ ื”ื‘ืขืœื•ืช ืขืœ ืจื›ื™ื‘ื™ ื‘ื™ื˜ื•ื™. ืœื“ื•ื’ืžื”, ืงืจื™ืืช "..doIt" ื‘ื‘ื™ื˜ื•ื™ "var result = errorState ? foo : bad..doIt()" ืื™ื ื• ื ื•ื’ืข ืœื—ืœืง ื”ืžื•ืชื ื” ืฉืœ ื”ื‘ืœื•ืง "ื”ืจืข", ืืœื ืœื‘ื™ื˜ื•ื™ ื›ื•ืœื•, ื•ืœื›ืŸ ื‘ืขืช โ€‹โ€‹ื”ืขื™ืฆื•ื‘ ื”ื•ื ืžื•ืคืจื“ ื›ืขืช: var result = errorState ? foo : bad ..doIt();
  • ืชืžื™ื›ื” ื‘ืžืขื‘ื“ื™ Apple M1 (ืกื™ืœื™ืงื•ืŸ) ื ื•ืกืคื” ืœ-SDK, ืžื” ืฉืžืจืžื– ื’ื ืขืœ ื”ื™ื›ื•ืœืช ืœื”ืจื™ืฅ Dart VM, ื›ืœื™ ืขื–ืจ ื•ืจื›ื™ื‘ื™ SDK ื‘ืžืขืจื›ื•ืช ืขื ืžืขื‘ื“ Apple Silicon, ื•ื’ื ืชืžื™ื›ื” ื‘ื”ื™ื“ื•ืจ ืงื‘ืฆื™ ื”ืคืขืœื” ืขื‘ื•ืจ ืฉื‘ื‘ื™ื ืืœื”.
  • ื”ืคืงื•ื“ื” "dart pub" ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ื‘ืงื•ื‘ืฅ ืฉื™ืจื•ืช ื—ื“ืฉ ".pubignore", ื”ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืจืฉื™ืžื” ืฉืœ ืงื‘ืฆื™ื ืฉื™ื“ืœื’ื• ืขืœื™ื”ื ื‘ืขืช ืคืจืกื•ื ื—ื‘ื™ืœื” ืœืžืื’ืจ pub.dev. ื”ื’ื“ืจื•ืช ืืœื• ืื™ื ืŸ ืžืคืจื™ืขื•ืช ืœืจืฉื™ืžืช ื”ื”ืชืขืœืžื•ืช ืฉืœ ".gitignore" (ื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื, pub.dev ืขืฉื•ื™ ืœืจืฆื•ืช ืœื”ื™ืžื ืข ืžื”ืขื‘ืจืช ืงื‘ืฆื™ื ื”ื“ืจื•ืฉื™ื ื‘-Git, ืœืžืฉืœ, ืกืงืจื™ืคื˜ื™ื ืคื ื™ืžื™ื™ื ื”ืžืฉืžืฉื™ื ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—).
  • ื ืขืฉืชื” ืขื‘ื•ื“ื” ืœืฉื™ืคื•ืจ ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื”ืคืงื•ื“ื” "ืžื‘ื—ืŸ ื—ืฅ", ืฉื›ืขืช ืื™ื ื” ืžืฆืจื™ื›ื” ื”ื™ื“ื•ืจ ืžื—ื“ืฉ ืฉืœ ื‘ื“ื™ืงื•ืช ืœืื—ืจ ืฉื™ื ื•ื™ pubspec ืื ืžืกืคืจ ื”ื’ืจืกื” ืœื ื”ืฉืชื ื”.
  • ื”ืชืžื™ื›ื” ื‘ื”ื™ื“ื•ืจ ื‘ืžืฆื‘ ืชืื™ืžื•ืช ECMAScript 5 ื”ื•ืคืกืงื” (ื”ืฉื™ื ื•ื™ ื™ื’ืจื•ื ืœืื•ื‘ื“ืŸ ื”ืชืื™ืžื•ืช ืœื“ืคื“ืคืŸ IE11).
  • ื›ืœื™ ื”ืฉื™ืจื•ืช ื”ื‘ื•ื“ื“ื™ื stagehand, dartfmt ื•-dart2native ื”ื•ื›ืจื–ื• ื›ืžื™ื•ืฉื ื™ื, ื•ื”ื•ื—ืœืคื• ื‘ืคืงื•ื“ื•ืช ืžื•ื‘ื ื•ืช ืฉื ืงืจืื•ืช ื“ืจืš ื›ืœื™ ื”ื—ืฅ.
  • ืžื ื’ื ื•ืŸ ื”-VM Native Extensions ื”ื•ืฆื ืžืฉื™ืžื•ืฉ. ื›ื“ื™ ืœืงืจื•ื ืœืงื•ื“ ืžืงื•ืจื™ ืžืงื•ื“ Dart, ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘-Dart FFI ื”ื—ื“ืฉ (Foreign Function Interface).

ื‘ืžืงื‘ื™ืœ, ื”ื•ืฆื’ื” ืžื”ื“ื•ืจื” ืžืฉืžืขื•ืชื™ืช ืฉืœ ืžืกื’ืจืช ืžืžืฉืง ื”ืžืฉืชืžืฉ Flutter 2.5, ื”ื ื—ืฉื‘ืช ื›ื—ืœื•ืคื” ืœ-React Native ื•ืžืืคืฉืจืช, ื‘ื”ืชื‘ืกืก ืขืœ ื‘ืกื™ืก ืงื•ื“ ืื—ื“, ืœืฉื—ืจืจ ืืคืœื™ืงืฆื™ื•ืช ืขื‘ื•ืจ iOS, Android, Windows, macOS ื•-Linux ืคืœื˜ืคื•ืจืžื•ืช, ื›ืžื• ื’ื ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ื ืœื”ืคืขืœื” ื‘ื“ืคื“ืคื ื™ื. ืžืขื˜ืคืช ืžื•ืชืืžืช ืื™ืฉื™ืช ืขื‘ื•ืจ ืžืขืจื›ืช ื”ื”ืคืขืœื” Fuchsia microkernel ืฉืคื•ืชื—ื” ืขืœ ื™ื“ื™ ื’ื•ื’ืœ ื‘ื ื•ื™ื” ืขืœ ื‘ืกื™ืก Flutter.

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

ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื ื‘-Flutter 2.5:

  • ื‘ื™ืฆืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื™ืช ื‘ื™ืฆื•ืขื™ื ืžืฉืžืขื•ืชื™ืช. ื‘ืคืœื˜ืคื•ืจืžื•ืช iOS ื•-macOS, ื”ื•ื˜ืžืขื” ืงื•ืžืคื™ืœืฆื™ื” ืžืจืืฉ ืฉืœ ื”ืฆืœืœื•ืช ืขื‘ื•ืจ ื”-API ืฉืœ Metal graphics. ื™ืขื™ืœื•ืช ืžืฉื•ืคืจืช ืฉืœ ืขื™ื‘ื•ื“ ืื™ืจื•ืขื™ื ืืกื™ื ื›ืจื•ื ื™ื™ื. ืคืชืจื” ื‘ืขื™ื” ืขื ืขื™ื›ื•ื‘ื™ื ื›ืืฉืจ ืื•ืกืฃ ื”ืืฉืคื” ืžื—ื–ื™ืจ ื–ื™ื›ืจื•ืŸ ืžืชืžื•ื ื•ืช ืฉืื™ื ืŸ ื‘ืฉื™ืžื•ืฉ (ืœื“ื•ื’ืžื”, ื‘ืžื”ืœืš ื”ืคืขืœื” ืฉืœ GIF ืžื•ื ืคืฉ ืฉืœ 20 ืฉื ื™ื•ืช, ืžืกืคืจ ืคืขื•ืœื•ืช ืื™ืกื•ืฃ ื”ืืฉืคื” ื”ื•ืคื—ืช ืž-400 ืœ-4. ืขื™ื›ื•ื‘ื™ื ื‘ื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช ื‘ื™ืŸ Dart ืœ-Objective- C/Swift ื”ืฆื˜ืžืฆืžื• ืœ-50% (iOS) ืื• Java/Kotlin (ืื ื“ืจื•ืื™ื“) ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื‘ื ื™ื™ื” ืžืงื•ืจื™ืช ืœืžืขืจื›ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืฉื‘ื‘ Apple Silicon.
    ื–ืžื™ื ื™ื ื‘ืฉืคืช Dart 2.14 ื•ืžืกื’ืจืช Flutter 2.5
  • ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช ืื ื“ืจื•ืื™ื“, ื”ื•ืงืžื” ืชืžื™ื›ื” ื‘ื”ืคืขืœืช ื™ื™ืฉื•ืžื™ื ื‘ืžืฆื‘ ืžืกืš ืžืœื. ื”ื™ื™ืฉื•ื ืฉืœ ืงื•ื ืกืคื˜ ื”ืขื™ืฆื•ื‘ "ื—ื•ืžืจ ืืชื”", ื”ืžื•ืฆื’ ื›ืืคืฉืจื•ืช ืœืขื™ืฆื•ื‘ ื—ื•ืžืจื™ ืžื”ื“ื•ืจ ื”ื‘ื, ื ืžืฉืš. ื”ื•ืกื™ืฃ ืžืฆื‘ ื—ื“ืฉ MaterialState.scrolledUnder, ื”ื˜ืžื™ืข ืชืฆื•ื’ื” ื“ื™ื ืžื™ืช ืฉืœ ืคืกื™ ื’ืœื™ืœื” ื‘ืขืช ืฉื™ื ื•ื™ ื’ื•ื“ืœ, ื•ื”ืฆื™ืข ืžืžืฉืง ื—ื“ืฉ ืœื”ืฆื’ืช ื‘ืื ืจื™ื ืฉืœ ื”ืชืจืื•ืช.
  • ื”ื™ื›ื•ืœื•ืช ืฉืœ ืชื•ืกืฃ ื”ืžืฆืœืžื” ื”ื•ืจื—ื‘ื• ืžืฉืžืขื•ืชื™ืช, ื•ื”ื•ืกื™ืคื• ื›ืœื™ื ืœืฉืœื™ื˜ื” ื‘ืคื•ืงื•ืก ืื•ื˜ื•ืžื˜ื™, ื—ืฉื™ืคื”, ืคืœืืฉ, ื–ื•ื, ื”ืคื—ืชืช ืจืขืฉื™ื ื•ืจื–ื•ืœื•ืฆื™ื”.
  • ื›ืœื™ ืžืคืชื—ื™ื (DevTools) ืฉื•ืคืจื• ื•ื›ื•ืœืœื™ื ืžืฆื‘ ื‘ื“ื™ืงืช ื•ื•ื™ื“ื’'ื˜ื™ื ืžืขื•ื“ื›ืŸ, ื›ืžื• ื’ื ื›ืœื™ื ืœื–ื™ื”ื•ื™ ืขื™ื›ื•ื‘ื™ื ื‘ืขื™ื‘ื•ื“ ื•ืžืขืงื‘ ืื—ืจ ื”ื™ื“ื•ืจ ื”ืฆืœืœื”.
    ื–ืžื™ื ื™ื ื‘ืฉืคืช Dart 2.14 ื•ืžืกื’ืจืช Flutter 2.5
  • ืชื•ืกืคื™ื ืžืฉื•ืคืจื™ื ืขื‘ื•ืจ Visual Studio Code ื•- IntelliJ/Android Studio.

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

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