ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Google ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Dart 2.15, ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΉΠΊΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΠΎΡΠΌΠΈΡΠ°Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Dart 2, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠΈΠ»Π½Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ (ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, Π·Π°ΡΠΎΠ²Π° ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ, Π½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π°ΡΠ° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΡ ΡΠΈΠΏ ΠΎΡΡΠ°Π²Π° ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½ ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΡΡΡΠΎΠ³ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΠΈΠΏΠ°).
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Dart:
- ΠΡΠΎΡΡ ΠΈ Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Ρ JavaScript, C ΠΈ Java.
- ΠΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π±ΡΡΠ·ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΡΠ΅Π΄ΠΈ, ΠΎΡ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄ΠΎ ΠΌΠΎΡΠ½ΠΈ. ΡΡΡΠ²ΡΡΠΈ.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΅Π½ΠΊΠ°ΠΏΡΡΠ»Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ Π΄Π°Π½Π½ΠΈ.
- ΠΠΎΡΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΡΠ°Π²ΠΈ ΠΊΠΎΠ΄Π° ΠΏΠΎ-ΡΡΠ΅Π½ ΠΈ ΡΠ΅ΡΠΈΠΌ, ΠΎΠΏΡΠΎΡΡΡΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡ ΡΡΠ΅ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ: ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Ρ Π΅ΡΠΎΠ²Π΅, ΠΌΠ°ΡΠΈΠ²ΠΈ ΠΈ ΡΠΏΠΈΡΡΡΠΈ, ΠΎΠΏΠ°ΡΠΊΠΈ, ΡΠΈΡΠ»ΠΎΠ²ΠΈ ΠΈ ΡΡΡΠΈΠ½Π³ ΡΠΈΠΏΠΎΠ²Π΅, ΡΠΈΠΏΠΎΠ²Π΅ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π΄Π°ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΠ΅, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ (RegExp). ΠΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅.
- ΠΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ Ρ Π°ΡΡΠΈΠ±ΡΡ isolate, ΡΠΈΠΈΡΠΎ ΠΊΠΎΠ΄ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π°ΠΏΡΠ»Π½ΠΎ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΠΎΡΠ΄Π΅Π»Π½Π° ΠΎΠ±Π»Π°ΡΡ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΠΉΠΊΠΈ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΡΡΠ΅Π· ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅Π± ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΡΠ½ΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΠΊΠ°ΡΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° ΡΠ°ΡΡΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΡΠΊΠ° ΡΠ°ΡΡ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π΅ΠΊΠΈΠΏ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈ.
- ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΎΡ Π³ΠΎΡΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° 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 value) => value; var intId = id; // ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΡ 2.15 Π²ΠΌΠ΅ΡΡΠΎ Β«int Function(int) intId = id;Β» const fo = id; // ΡΠΊΠ°Π·Π°ΡΠ΅Π» Π½Π° ΡΡΠ½ΠΊΡΠΈΡ id. const c1 = fo;
- Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° 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 ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΌΠΈΠΊΡΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Fuchsia, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² Google. ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Flutter 2 Π² Google Play Store ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΎΡΡ Ρ 200 ΡΡΡΡΡ Π΄ΠΎ 375 ΡΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΡΠΈ Π² Π΄Π²Π° ΡΠ°Π·Π°.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄Π° Π½Π° Flutter Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Dart, Π° ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C++. ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠ²Π΅Π½ ΡΠΎΠ΄Π½ΠΈΡ Π΅Π·ΠΈΠΊ Dart, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ Dart Foreign Function Π·Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° C/C++. ΠΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π΄ΠΎΡΡΠΈΠ³Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π² ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΡΠ΅Π»Π΅Π²ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. ΠΡΠΈ ΡΠΎΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΡΠ»Π΅Π΄ Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π° - Dart ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π³ΠΎΡΠ΅ΡΠΎ ΠΏΡΠ΅Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²Π½Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°.
Π Π½ΠΎΠ²ΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ Flutter ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
. Π£ΠΏΡΠΎΡΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Firebase ΠΈ Google Cloud. Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Google Ads. ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠ°ΠΌΠ΅Ρ ΠΈ Π²Π΅Π±-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΈΠ΄ΠΆΠ΅Ρ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Firebase. ΠΠ±Π½ΠΎΠ²Π»ΡΠ½ Π΄Π²ΠΈΠΆΠΎΠΊ Flame, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ 2D-ΠΈΠ³Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Flutter.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
