Доступны язык Dart 2.14 ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Flutter 2.5

Компания Google ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Ρ€Π΅Π»ΠΈΠ· языка программирования Dart 2.14, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ²ΡˆΠΈΠΉ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ 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, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ насчитываСт Π±ΠΎΠ»Π΅Π΅ 20 тысяч ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

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

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠ³ΠΎ сдвига (>>>), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «>>» выполняСт Π½Π΅ арифмСтичСский, Π° логичСский сдвиг, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° (сдвиг ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π±Π΅Π· раздСлСния Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа).
  • Бнято ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠ°, Π½Π΅ позволявшиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° с Ρ‚ΠΈΠΏΠΎΠΌ. НапримСр, сСйчас ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ: late List<T Function<T>(T)> idFunctions; var callback = [<T>(T value) => value]; late S Function<S extends T Function<T>(T)>(S) f;
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² аннотациях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ @Deprecated. НапримСр, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ: @TypeHelper<int>(42, «The meaning»)
  • Π’ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (core) Π² класс Object Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ hash, hashAll ΠΈ hashAllUnordered. Π’ классС DateTime ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° локального Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ часов ΠΌΠ΅ΠΆΠ΄Ρƒ Π»Π΅Ρ‚Π½ΠΈΠΌ ΠΈ Π·ΠΈΠΌΠ½ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΎΠ΄Π½ΠΎΠΌΡƒ часу (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Австралии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ смСщСниС Π½Π° 30 ΠΌΠΈΠ½ΡƒΡ‚). Π’ ΠΏΠ°ΠΊΠ΅Ρ‚ ffi Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° выдСлСния памяти arena, автоматичСски Π²Ρ‹ΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ рСсурсы. Π’ ΠΏΠ°ΠΊΠ΅Ρ‚ ffigen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ typedef-ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² Dart ΠΈΠ· языка C.
  • 250 самых популярных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ· рСпозитория pub.dev ΠΈ 94% ΠΈΠ· top-1000 ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° бСзопасного использования значСния «Null» (null safety), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволят ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΡ€Π°Ρ…ΠΎΠ², Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈ выставлСно Π² «Null». Π Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ значСния, Ссли ΠΈΠΌ явно Π½Π΅ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ строго ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ позволяСт компилятору ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. БоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² провСряСтся Π½Π° этапС компиляции, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² случаС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ присвоСния значСния «Null» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Ρ‚ΠΈΠΏΠΎΠΌ, Π½Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΠΌ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ состояниС, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ «int», Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ошибка.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ» для Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° (linter), ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ слСдования рСкомСндациям ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ оформлСния ΠΊΠΎΠ΄Π° для Dart ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Flutter. По историчСским ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π° для Flutter ΠΈ Dart ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΈΡΡŒ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ для Dart Π² ΠΎΠ±ΠΈΡ…ΠΎΠ΄Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π΄Π²Π° Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ» — ΠΏΠ΅Π΄Π°Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ Google ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΡ‚ сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Dart. Π’ Dart 2.14 прСдставлСн Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» для linter, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Dart ΠΈ Π²ΠΎ Flutter SDK. Набор Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° (ΠΏΠ°ΠΊΠ΅Ρ‚ lints/core.yaml), Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° (lints/recommended.yaml) ΠΈ спСцифичныС для Flutter Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ (flutter_lints/flutter.yaml). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠ΅Π΄Π°Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° использованиС Π½ΠΎΠ²ΠΎΠ³ΠΎ стиля кодирования, основанного Π½Π° рСкомСндациях ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Dart.
  • Π’ formatter внСсСны ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ каскадных Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ форматирования ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠΈ принадлСТности элСмСнтов выраТСния. НапримСр, Π²Ρ‹Π·ΠΎΠ² «..doIt» Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ «var result = errorState ? foo : bad..doIt()» касаСтся Π½Π΅ условной части Π±Π»ΠΎΠΊΠ° «bad» Π° всСго выраТСния, поэтому ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ раздСляСтся: var result = errorState ? foo : bad ..doIt();
  • Π’ SDK Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° процСссоров Apple M1 (Silicon), ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰Π°Ρ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска Dart VM, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² SDK Π½Π° систСмах с процСссором Apple Silicon, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ компиляции исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‡ΠΈΠΏΠΎΠ².
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «dart pub» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ слуТСбного Ρ„Π°ΠΉΠ»Π° «.pubignore», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΏΡ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ pub.dev. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ настройки Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ со списком игнорирования «.gitignore» (Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях Π² pub.dev трСбуСтся Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π² Git, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ скрипты, примСняСмыС ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅).
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «dart test», которая Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ компиляции тСстов послС измСнСния pubspec, Ссли Π½ΠΎΠΌΠ΅Ρ€ вСрсии Π½Π΅ помСнялся.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° компиляции Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ совмСстимости с ECMAScript 5 (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ совмСстимости с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ IE11).
  • ΠžΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ stagehand, dartfmt ΠΈ dart2native, Π½Π° смСну ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΈ встроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ dart.
  • ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π² разряд ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ VM Native Extensions. Для Π²Ρ‹Π·ΠΎΠ²Π° Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΊΠΎΠ΄Π° Π½Π° языкС Dart Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс Dart FFI (Foreign Function Interface).

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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния Π²ΠΎ Flutter 2.5:

  • ВнСсСны Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… iOS ΠΈ macOS Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° прСдкомпиляция ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² для графичСского API Metal. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ асинхронных событий. РСшСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ Π²ΠΎ врСмя высвобоТдСния сборщиком мусора памяти ΠΎΡ‚ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ врСмя воспроизвСдСния 20-сСкундного Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ GIF число ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сборки мусора сниТСно с 400 Π΄ΠΎ 4. Π”ΠΎ 50% cΠ½ΠΈΠΆΠ΅Π½Ρ‹ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ сообщСний ΠΌΠ΅ΠΆΠ΄Ρƒ Dart ΠΈ Objective-C/Swift (iOS) ΠΈΠ»ΠΈ Java/Kotlin (Android). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€ΠΎΠ΄Π½ΠΎΠΉ сборки для систСм Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠ° Apple Silicon.
    Доступны язык Dart 2.14 ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Flutter 2.5
  • Для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android Π½Π°Π»Π°ΠΆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² полноэкранном Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° рСализация ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ оформлСния «Material You», прСподносимой ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Material Design ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ состояниС MaterialState.scrolledUnder, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ динамичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс для отобраТСния Π±Π°Π½Π½Π΅Ρ€ΠΎΠ² с увСдомлСниями.
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΏΠ»Π°Π³ΠΈΠ½Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ появились срСдства для управлСния автофокусом, экспозициСй, Π²ΡΠΏΡ‹ΡˆΠΊΠΎΠΉ, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡˆΡƒΠΌΠΎΠ² ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ инструмСнты для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (DevTools), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… появился ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ инспСктирования Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставлСны срСдства для выявлСния Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΏΡ€ΠΈ отрисовкС ΠΈ отслСТивания компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ².
    Доступны язык Dart 2.14 ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Flutter 2.5
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для Visual Studio Code ΠΈ IntelliJ/Android Studio.

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

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