Доступны язык программирования Dart 2.15 ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Flutter 2.8

Компания Google ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Ρ€Π΅Π»ΠΈΠ· языка программирования Dart 2.15, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ²ΡˆΠΈΠΉ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Dart 2, которая отличаСтся ΠΎΡ‚ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° языка Dart ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ сильной статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ автоматичСски, поэтому ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ динамичСская типизация большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ вычислСнный ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ‚ΠΈΠΏ закрСпляСтся Π·Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π² дальнСйшСм примСняСтся строгая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠ°).

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ языка Dart:

  • ΠŸΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΈ простой для изучСния синтаксис, СстСствСнный для программистов Π½Π° JavaScript, Π‘ΠΈ ΠΈ Java.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ быстрого запуска ΠΈ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для всСх соврСмСнных web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡ‚ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… устройств Π΄ΠΎ ΠΌΠΎΡ‰Π½Ρ‹Ρ… сСрвСров.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния классов ΠΈ интСрфСйсов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅.
  • Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ выявлСниС ошибок, Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ясным ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π°Π½Π°Π»ΠΈΠ· сторонними Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.
  • Π‘Ρ€Π΅Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²: Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ Ρ…ΡΡˆΠ΅ΠΉ, массивов ΠΈ списков, ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, числовыС ΠΈ строковыС Ρ‚ΠΈΠΏΡ‹, Ρ‚ΠΈΠΏΡ‹ для опрСдСлСния Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, рСгулярныС выраТСния (RegExp). Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания своих Ρ‚ΠΈΠΏΠΎΠ².
  • Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния прСдлагаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ isolate, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ пространствС Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ области памяти, взаимодСйствуя с основным процСссом Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ сообщСний.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ раздСляСмых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° части ΠΈ ΠΏΠΎΡ€ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· частСй ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ программистов.
  • Набор Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… инструмСнтов для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° языкС Dart, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ срСдств динамичСской Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ с исправлСниСм ΠΊΠΎΠ΄Π° Π½Π° Π»Π΅Ρ‚Ρƒ («edit-and-continue»).
  • Для упрощСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° языкС Dart поставляСтся SDK, ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ pub, статичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° dart_analyzer, Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ DartPad ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Dart для IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 ΠΈ Vim.
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ pub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ насчитываСт ΠΎΠΊΠΎΠ»ΠΎ 22 тысяч ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния Π² выпускС Dart 2.15:

  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ срСдства для быстрого ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния Π·Π°Π΄Π°Ρ‡ с изоляциСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². На многоядСрных систСмах Dart runtime ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ выполняСт ΠΊΠΎΠ΄ прилоТСния Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ядрС CPU, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ядра ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ‚ для выполнСния систСмных Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ асинхронный Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄, запись Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сСтСвых Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свои ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для отрисовки Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π² интСрфСйсС, прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° (isolate), ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ выполняСмых Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ядрах CPU ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с основным ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ прилоТСния. Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ошибок, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ с ΠΎΠ΄Π½ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π² isolate-Π±Π»ΠΎΠΊΠ°Ρ… Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ совмСстноС использованиС измСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° для взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ примСняСтся модСль Π½Π° основС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний.

    Π’ Dart 2.15 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая концСпция — Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² (isolate groups), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ совмСстный доступ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ структурам Π΄Π°Π½Π½Ρ‹Ρ… Π² isolate-Π±Π»ΠΎΠΊΠ°Ρ…, входящих Π² ΠΎΠ΄Π½Ρƒ Π³Ρ€ΡƒΠΏΠΏΡƒ, Ρ‡Ρ‚ΠΎ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы ΠΏΡ€ΠΈ взаимодСйствии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. НапримСр, запуск Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ isolate-Π±Π»ΠΎΠΊΠ° Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ выполняСтся Π² 100 Ρ€Π°Π· быстрСС ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π² 10-100 Ρ€Π°Π· мСньшС памяти, Ρ‡Π΅ΠΌ запуск обособлСнного isolate-Π±Π»ΠΎΠΊΠ°, Π·Π° счёт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ нСобходимости ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

    НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² isolate-Π±Π»ΠΎΠΊΠ°Ρ… Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½ совмСстный доступ ΠΊ измСняСмым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ общая heap-ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π΅Π· нСобходимости выполнСния рСсурсоёмких ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ копирования. Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Isolate.exit() для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ isolate-Π±Π»ΠΎΠΊ Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ копирования. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний — нСбольшиС ΠΈ срСдниС сообщСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² 8 Ρ€Π°Π· быстрСС. Π’ число ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ isolate-Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° SendPort.send(), Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, замыкания ΠΈ трассировки стСка.

  • Π’ срСдствах для создания ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… (tear-off) сняты ограничСния ΠΏΠΎ созданию ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΠΊΠΎΠ΄Π΅ конструкторов, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ построСнии интСрфСйсов Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Flutter. НапримСр, для создания Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Column, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ нСсколько Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Text, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ «.map()» ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π² конструктор Text.new ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Text: class FruitWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Column( children: [‘Apple’, ‘Orange’].map(Text.new).toList()); } }
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности, связанныС с использованиСм ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Π΅ (generic) ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для создания Π½Π΅-generic ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ указатСля: T id<T>(T value) => value; var intId = id<int>; // Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π² вСрсии 2.15 вмСсто «int Function(int) intId = id;» const fo = id; // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ id. const c1 = fo<int>;
  • Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ dart:core ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пСрСчислСний (enum), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния enum ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° «.name», ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сопоставлСниС ΠΏΠ°Ρ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: enum MyEnum { one, two, three } void main() { print(MyEnum.one.name); // Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ «one». print(MyEnum.values.byName(‘two’) == MyEnum.two); // Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ «true». final map = MyEnum.values.asNameMap(); print(map[‘three’] == MyEnum.three); // «true». }
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° сТатия ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ΅ прСдставлСниС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π² 64-разрядных окруТСниях, Ссли для адрСсации достаточно 32-разрядного адрСсного пространства (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 4 Π“Π‘ памяти). ВСсты ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ подобная оптимизация Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΡ‡ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° 10%. Π’ΠΎ Flutter SDK ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΡƒΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ для Android, Π° Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ выпускС Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для iOS.
  • Π’ состав Dart SDK Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ инструмСнты для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (DevTools), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «dart pub» ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² pub.dev Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ срСдства для отслСТивания случайной ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, оставлСниС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для систСм Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ. Π’ случаС выявлСниС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «dart pub publish» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ с сообщСниСм ΠΎΠ± ошибкС. Π’ случаС Ссли ΠΈΠΌΠ΅Π»ΠΎ мСсто Π»ΠΎΠΆΠ½ΠΎΠ΅ срабатываниС прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Π±Π΅Π»Ρ‹ΠΉ список.
  • Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ pub.dev Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Π° ΡƒΠΆΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² случаС выявлСния опасных ошибок ΠΈΠ»ΠΈ уязвимостСй. Π Π°Π½Π΅Π΅ для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… исправлСний ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Π»Π°ΡΡŒ публикация слСдом ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ вСрсии, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях трСбуСтся ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΡΡ‚ΠΎΡΠ²ΡˆΠΈΠΉΡΡ выпуск ΠΈ экстрСнно ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ дальнСйшСС распространСниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли исправлСния Π΅Ρ‰Ρ‘ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΈΠ»ΠΈ Ссли ΠΏΠΎ ошибкС вмСсто тСстовой вСрсии Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ выпуск). ПослС ΠΎΡ‚Π·Ρ‹Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚ пСрСстаёт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… «pub get» ΠΈ «pub upgrade», Π° Π½Π° ΡƒΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ²ΡˆΠΈΡ… Π΅Π³ΠΎ систСмах ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ «pub get» выдаётся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ уязвимости (CVE-2021-22567), Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΠΎΠ΄Π΅ unicode-символов, ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… порядок отобраТСния.
  • УстранСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2021-22568), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹Π΄Π°Ρ‚ΡŒ сСбя Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ pub.dev ΠΏΡ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° сторонний сСрвСр, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ oauth2-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ доступа pub.dev. НапримСр, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для Π°Ρ‚Π°ΠΊΠΈ Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ сСрвСры ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° pub.dev, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ прСдставлСн Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° построСния интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Flutter 2.8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рассматриваСтся ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° React Native ΠΈ позволяСт Π½Π° основС ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ прилоТСния для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ iOS, Android, Windows, macOS ΠΈ Linux, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. На основС Flutter построСна ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² Google микроядСрной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Fuchsia. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π·Π° послСдниС ΡˆΠ΅ΡΡ‚ΡŒ мСсяцСв число ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Flutter 2 Π² Google Play Store ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΎΡΡŒ с 200 тысяч Π΄ΠΎ 375 тысяч, Ρ‚.Π΅. ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Π΄Π²Π° Ρ€Π°Π·Π°.

Основная Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Flutter Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° языкС Dart, Π° runtime-Π΄Π²ΠΈΠΆΠΎΠΊ для выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написан Π½Π° C++. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ для Flutter языка Dart, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс Dart Foreign Function для Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠ΄Π° Π½Π° C/C++. Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния достигаСтся благодаря компиляции ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния — Dart прСдоставляСт Ρ€Π΅ΠΆΠΈΠΌ горячСй ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ сразу ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Из ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ выпускС Flutter отмСчаСтся ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ скорости запуска ΠΈ потрСблСния памяти Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ бэкСнд-сСрвисам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Firebase ΠΈ Google Cloud. Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ инструмСнты для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Google Ads. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ°ΠΌΠ΅Ρ€ ΠΈ web-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ срСдства для упрощСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с использованиСм Firebase. ΠžΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄Π²ΠΈΠΆΠΎΠΊ Flame, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 2D-ΠΈΠ³Ρ€ с использованиСм Flutter.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ