Google ááẠááŒááºážáááºáá±á¬ static typing ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº Dart 2.15 áááá¯ááááºážáááºážáá¬áá¬á áá¬ážá áá°ááá¬ážááŸááºážááŸáá·áºááá°ááá·áº ááŒááºážáááºá áœá¬ááŒááºáááºáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ Dart 2 ááá¬áááœá²áá áºáá¯á¡á¬áž áááºáááºááœá¶á·ááŒáá¯ážááá¯ážáááºá á±ááá·áº Dart XNUMX áááá¯ááááºážáááºážáá¬áá¬á áá¬ážááᯠáá¯ááºáá±ááá¯ááºáá«áááºá á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáááºááŸááºááẠáááá¯á¡ááºáá±á¬áºáááºáž dynamic typing ááᯠá¡áá¯á¶ážáááŒá¯áá±á¬á·áá² á¡áá»áá¯ážá¡á á¬ážááᯠvariable ááœáẠáááºááŸááºáá¬ážááŒá®áž áááºážáá»ááºáá±á¬ á¡áá»áá¯ážá¡á á¬áž á á áºáá±ážááŒááºážááᯠáá±á¬ááºááá¯ááºážááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá)
Dart áá¬áá¬á áá¬ážáá¡ááºá¹áá«áááºáá»á¬áž
- JavaScriptá C ááŸáá·áº Java áááá¯ááááºáá¬áá»á¬ážá¡ááœáẠááá¬ááá»áá±á¬ áááºáá°áááœááºáá°áá±á¬ syntaxá
- áá±ááºáá®áááºááá±á¬ááºáá¬áá»á¬ážá¡á¬ážáá¯á¶ážááŸáá·áº áááºáá±á¬ááºáááœááºáá°áá±á¬ á ááºáá á¹á ááºážáá»á¬ážá០á¡á áœááºážáááºáá¬áá¬áá»á¬ážá¡áá á¡áá»áá¯ážáá»áá¯ážáá±á¬áááºáááºážáá»ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá¡ááœáẠáá»áŸááºááŒááºá áœá¬ ááœáŸáá·áºáááºááá¯ááºááŒá®áž á áœááºážáá±á¬ááºáááºááŒáá·áºáá¬ážááŒá±á¬ááºáž á¡á¬ááá¶áá«áááºá
- encapsulation ááŸáá·áº ááŸáááŒá®ážáá¬áž method ááŸáá·áº data áá»á¬ážááᯠááŒááºáá¯á¶ážááœáá·áºááŒá¯áá±á¬ class áá»á¬ážááŸáá·áº interfaces áá»á¬ážááᯠáááºááŸááºááá¯ááºá áœááºážá
- á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáááºááŸááºááŒááºážááẠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠá¡ááŸá¬ážááŸá¬áááºááŸáá·áº ááœá²ááŒá¬ážáááºááŸááºááẠááá¯ááá¯ááœááºáá°á á±ááŒá®ážá áá¯ááºááᯠááá¯ááá¯ááŸááºážáááºážá á±ááŒá®áž ááá¯ááá¯áááºááŸá¯ááá¯ááºá á±áᬠááŒááºááá¯áá¹ááá®áá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬áá»á¬ážá áááºážáááŒá¯ááŒááºááœááºážáá¶ááŸá¯ááŸáá·áº ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááᯠááá¯ážááŸááºážá á±áááºá
- áá¶á·ááá¯ážáá±ážáá¬ážáá±á¬ á¡áá»áá¯ážá¡á á¬ážáá»á¬áž áá«áááºáááº- á¡áá»áá¯ážáá»áá¯ážáá±á¬ hash á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá á¡áááºážá¡áá»ááºážáá»á¬ážááŸáá·áº á á¬áááºážáá»á¬ážá áááºážá á®áá»á¬ážá ááááºážáá»á¬ážááŸáá·áº á á¬áááºážá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áááºá áœá²ááŸáá·áº á¡áá»áááºááᯠáá¯á¶ážááŒááºááẠá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áá¯á¶ááŸááºáá±á¬áºááŒáá»ááºáá»á¬áž (RegExp)á áááºáááá¯ááºááá¯ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááá¯áááºáá®ážááá¯ááºáááºá
- Parallel execution ááᯠá á¯á ááºážáááºá isolate attribute ááŒáá·áº classes áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááá¯ááŒá¯áá¬ážááŒá®ážá áá®ážááŒá¬áž memory area ááŸá áá®ážááŒá¬ážáá±áá¬áá áºáá¯ááœáẠáá¯ááºáá±á¬ááºááá·áº code áá»á¬ážááᯠáááºáá±á·áá»áºáá±ážááá¯á·ááŒááºážááŒáá·áº main process ááŸáá·áº á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºá á±áá«áááºá
- ááŒá®ážáá¬ážáá±á¬ áááºááá±á¬áá»ááºáá»á¬ážá áá¶á·ááá¯ážááŸá¯ááŸáá·áº á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááᯠááá¯ážááŸááºážá á±áá±á¬ á á¬ááŒáá·áºááá¯ááºáá»á¬ážá¡áá¯á¶ážááŒá¯ááŸá¯á¡ááœáẠáá¶á·ááá¯ážááŸá¯á Third-party áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá»áŸáá±áá¬ážáá±á¬ áá áºáá»á áºááá¯ááºáá¯á¶á á¶ááœáẠááá·áºááœááºážááá¯ááºáááºá á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá¡ááá¯ááºážáá»á¬ážááœá²á á¡á áááºá¡ááá¯ááºážáá áºáá¯á á®á ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠáá®ážááŒá¬ážáááá¯ááááºáá¬á¡ááœá²á·áá áºááœá²á·áᶠá¡ááºááŸááºážááá¯ááºáááºá
- ááá¯ááºážááá áºááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸáá·áº á¡ááŸá¬ážááŒááºáááºááŒááºážááá¯ááºáᬠáááááá¬áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá¡áá«á¡ááẠDart áá¬áá¬á áá¬ážááœáẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠáá¶á·ááá¯ážááẠá¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ áááááá¬á¡á á¯á¶á¡ááẠ(âáááºážááŒááºááŒááºážááŸáá·áº áááºáá¯ááºáááºâ)á
- Dart áá¬áá¬á áá¬ážááœáẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠááá¯ážááŸááºážá á±áááºá áááºážááœáẠSDKá áááºáá±á·áá»áºáááºáá±áá»á¬á¡áááºááá¯ááºá áááºááŒáááºáá¯ááºááœá²ááŒááºážá áááºááŒá¬áá° dart_analyzerá á á¬ááŒáá·áºááá¯ááºá¡á á¯á¶á IntelliJ IDEAá WebStormá Emacsá Sublime Text á¡ááœáẠáá±á«ááºážá ááºááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áááºáááºážáá»áẠDartPad ááŸáá·áº Dart-enabled plugins áá»á¬ážáá«ááŸááááºá 2 ááŸáá·áº Vim á
- á á¬ááŒáá·áºááá¯ááºáá»á¬ážááŸáá·áº á¡áá¯á¶ážá¡áá±á¬ááºáá á¹á ááºážáá»á¬ážáá«ááŸááá±á¬ á¡ááá¯áááºáá±á·ááºá»áá»á¬ážááᯠáááºáá±á·ááºá» ááááá ááá·áºááŸáááá·áº á¡áááºááá¯ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
Dart 2.15 ááœááºááŸáááŸá¯ááœáẠá¡áááááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž-
- ááá¯ááºááœááºáá°á¡á¬áž áá®ážááŒá¬ážááœá²áá¬ážááŒááºážááŒáá·áº á¡áá¯ááºáá»á¬ážááᯠáá»ááºááŒááºá
áœá¬ á¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááẠáááááá¬áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá Multi-core á
áá
áºáá»á¬ážááœááºá áá°áááºážá¡á¬ážááŒáá·áº Dart runtime ááẠCPU core áá
áºáá¯áá±á«áºááœáẠá¡ááá®áá±ážááŸááºážáá¯ááºááᯠáá¯ááºáá±á¬ááºááŒá®áž asynchronous I/Oá ááá¯ááºáá»á¬ážá
á¬áá±ážááŒááºáž ááá¯á·ááá¯áẠááœááºáááºáá±á«áºááá¯ááŸá¯áá»á¬áž ááŒá¯áá¯ááºááẠá¡ááŒá¬ážáá±á¬ cores áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá áááºážááá¯á·á ááá¯ááºááœááºáá°á¡á¬áž á¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠá¥ááá¬á¡á¬ážááŒáá·áºá á¡ááºáá¬áá±á·á
áºááœáẠááŸá¯ááºááŸá¬ážáááºáááºááŸá¯ááᯠáááºáááºáááºá¡ááœááºá áá
áºáá¯ááŸáá·áºáá
áºáᯠáá®ážááŒá¬ážááœá²áá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá»á¬áž (isolate) ááá¯ááœáá·áºááá¯ááºááŒá®áž áááºáá¡ááá®áá±ážááŸááºážááŒáá¯ážáá»á¬ážááŸáá·áº á¡ááŒá¬áž CPU core áá»á¬ážááœáẠáááŒáá¯ááºááẠáá¯ááºáá±á¬ááºááá¯ááºááẠ. áá°áá®áá±á¬áá±áá¬á¡á
á¯á¡áá±ážááŒáá·áºá¡áá¯ááºáá¯ááºáá±á¬áá¯ááºááá¯áá
áºááŒáá¯ááºáááºáááºážáá¯ááºáá±á¬ááºááá·áºá¡áá«ááŒá
áºáá±á«áºáá¬ááá·áºá¡ááŸá¬ážáá»á¬ážááá¯áá¬ááœááºáááºá ááá°áá®áá±á¬á¡áá®ážáá»ááºááá±á¬ááºáá»á¬ážááœááºáááŒá±á¬ááºážááá¯ááºáá±á¬á¡áá¬áá»á¬ážááá¯áá»áŸáá±ááŒááºážááá¯áá¬ážááŒá
áºáá¬ážááŒá®ážááá¯ááºááœááºáá°ááŒá¬ážááœááºá¡ááŒááºá¡ááŸááºáááºááœááºáááºá¡ááœááºáááºáá±á·áá»áºáá±ážááá¯á·ááŒááºážáá¯á¶á
á¶ááá¯á¡áá¯á¶ážááŒá¯áááºá
Dart 2.15 ááẠá¡áá°á¡ááá áºáá áºáᯠ- áá®ážááŒá¬ážááááºááá¯á·áá¬ážáá±á¬á¡á¯ááºá á¯áá»á¬áž (isolate á¡á¯ááºá á¯áá»á¬áž) ááᯠááááºáááºáá±ážááẠ. á¥ááá¬á¡á¬ážááŒáá·áºá ááŸáááŒá®ážáá¬ážá¡á¯ááºá á¯áá áºáá¯ááœáẠáá±á¬ááºááẠáá®ážááŒá¬ážááœá²áá¯ááºááááºááá¯á·ááŒááºážááᯠá áááºááŒááºážááẠá¡á 100 ááá¯ááŒááºááŒá®áž áá®ážááŒá¬áž áá®ážááŒá¬ážááœá²áá¯ááºááá·áºááááºááá¯á·ááŒááºážááᯠá áááºááŒááºážááẠáááá¯ááááºáá±áá¬áááºáá±á¬ááºáá¯á¶áá»á¬ážááᯠáááºááŸá¬ážáá áºááŒááºážááẠá¡á 10 á០100 á¡áááá¯áááºážáá±á¬ memory ááá¯á¡ááºáá«áááºá
á¡ááœá²á·áá áºááœá²á·ááŸá ááá±á¬ááºáá»á¬ážááᯠáá®ážááŒá¬ážááœá²áá¯ááºá áááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ á¡áá¬áá»á¬ážáᶠáá»áŸáá±áá¯á¶ážá áœá²ááœáá·áºááᯠáá¬ážááŒá áºáá¬ážáá±á¬áºáááºážá á¡ááœá²á·áá»á¬ážááẠá¡áááºážá¡ááŒá áº-áá»á¬ážáá±á¬ áááá¹áá°áá°ážáá°ááŒááºážáá¯ááºáááºážááᯠáá¯ááºáá±á¬ááºáááºáááá¯á¡ááºáá² ááá±á¬ááºáá áºáá¯á០á¡ááŒá¬ážá¡áá¬áá»á¬ážááᯠáááááá¬áᬠááŒááºáááºá áœá¬ ááœáŸá²ááŒá±á¬ááºážáá±ážááá¯ááºááá·áº áá»áŸáá±áá¬ážáá±á¬ heap memory ááᯠá¡áá¯á¶ážááŒá¯áááºá áá¬ážááŸááºážá¡áá áºááœáẠIsolate.exit() ááá¯áá±á«áºááá¯áá±á¬á¡áá« áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá°ážáá°ááŒááºážáááŒá¯áá² parent isolate block ááá¯á· áá±áá¬ááœáŸá²ááŒá±á¬ááºážááẠááá·áºá¡á¬áž ááá¯ááºááœááºáá°á ááááºááᯠááŒááºáááºážááœáá·áºááŒá¯áááºá ááá¯á·á¡ááŒááºá áááºáá±á·áá»áºááá¯á·ááŒááºáž ááá¹ááá¬ážá¡á¬áž ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºááŒá®ážááŒá áºááẠ- á¡áá±ážááŸáá·áº á¡áááºá á¬áž áááºáá±á·áá»áºáá»á¬ážááᯠááá¯á¡áá« ááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº 8 á ááá¯ááá¯ááŒááºáááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáá«ááŒá®á SendPort.send() áá±á«áºááá¯ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á á¡áá®ážáá»ááºáá»á¬ážá¡ááŒá¬áž ááŒááºáááºážááá¯ááºáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážááœáẠá¡áá»áá¯á·áá±á¬ áá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá ááááºááŸá¯áá»á¬ážááŸáá·áº stack trace áá»á¬áž áá«áááºáááºá
- á¡ááŒá¬ážá¡áá¬ááá¹áá¯áá»á¬ážááŸá áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯áá»ááºážá á®á¡ááœáẠááœáŸááºááŒááŸá¯áá»á¬ážááᯠáááºáá®ážááẠáááááá¬áá»á¬ážááœáẠ(tear-off)á constructor code ááœáẠá¡áá¬ážáá° pointers áááºáá®ážááŒááºážááá¯ááºáᬠááá·áºáááºáá»ááºáá»á¬ážááᯠáááºááŸá¬ážááá¯ááºáááºá áááºážááẠFlutter á á¬ááŒáá·áºááá¯ááºááᯠá¡ááŒá±áá¶á á¡ááºáá¬áá±á·á áºáá»á¬ážááᯠáááºáá±á¬ááºááá·áºá¡áá« á¡áá¯á¶ážáááºááá¯ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á á¬áá¬ážáá áºáá»ááºáá»á¬ážá áœá¬áá«áááºáá±á¬ áá±á¬áºáá¶áá áºáá»ááºáá áºáá¯ááᯠáááºáá®ážááẠáááºááẠ".map()" áá¯áá±á«áºááá¯ááŒá®áž á á¬áá¬ážá¡áá¬ááá¹áá¯á Text.new constructor ááá¯á· ááœáŸááºááŒáá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºáááº- class FruitWidget ááẠStatelessWidget ááᯠááá¯ážáá»á²á·ááẠ{ @override Widget build(BuildContext context) { return Column(ááá±ážáá»á¬áž- ['Apple'á 'Orange'].map(Text.new).toList()); } }
- function pointers á¡áá¯á¶ážááŒá¯ááŒááºážááŸáá·áºáááºá ááºáá±á¬ááŒá áºááá¯ááºááŒá±áá»á¬ážááá¯áá»á²á·ááœááºáá¬ážáááºá áá±áá°áá»ááá¯ááºáá±á¬áááºážáááºážááŸáá·áº ááœáŸááºááŒáá»ááºááᯠáááºáá®ážáááºá¡ááœáẠáá±áá¯áá»áááºážáááºážáá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºááŸá¯ááœáŸááºááŒáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áºá áœááºážáááºááᯠáá±á«ááºážááá·áºáá¬ážáááº- T id (T value) => áááºááá¯áž; var intId = á¡áá¯ááºáá® ; // "int Function(int) intId = id;" á¡á á¬áž áá¬ážááŸááºáž 2.15 ááœáẠááœáá·áºááŒá¯áá¬ážáááºá const fo = ID; // áá¯ááºáá±á¬ááºáá»áẠID ááá¯ááœáŸááºááŒáááºá const c1 = fo ;
- dart:core á á¬ááŒáá·áºááá¯ááºááẠenums á¡ááœáẠá¡áá±á¬ááºá¡áá¶á·ááᯠááá¯ááá¯áá±á¬ááºážááœááºá á±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠ".name" áááºážáááºážááᯠá¡áá¯á¶ážááŒá¯á enum áááºááá¯ážáá áºáá¯á á®á០string value áá áºáá¯ááᯠááá¯áá¯ááºááá¯ááºáááºá á¡áááºá¡ááá¯áẠáááºááá¯ážáá»á¬ážááᯠááœá±ážáá»ááºáá« ááá¯á·ááá¯áẠáááºááá¯ážá¡ááœá²áá»á¬ážááᯠááá¯ááºáá®áááº- enum MyEnum { one , two, three } void main() { print(MyEnum.one.name); // "áá áº" áá¯á¶ááŸáááºáá«áááºá print(MyEnum.values.byName('two') == MyEnum.two); // "ááŸááº" áᯠááá¯ááºááŸáááºáá«áááºá áá±á¬ááºáá¯á¶ážááŒá±áá¯á¶ = MyEnum.values.asNameMap(); print(map['three'] == MyEnum.three); // "á¡ááŸááº"á }
- 64-bit ááááºá á¬áá±áá¬ááẠááááºá á¬áá±á¬áºááŒáááºá¡ááœáẠáá¯á¶áá±á¬ááºáá«á (áááºááá¯áá® 32 GB ááẠááá¯ááá¯á¶ážáá«) 4-bit áááºáááºážáá»ááºááœáẠpointer áá»á¬ážá ááá¯ááá¯áá»á áºáá áºááááºáááºážáá±á¬ ááá¯ááºá á¬ážááŒá¯ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºááŒá¯ááá·áº pointer compression technique ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá ááá¯ááá¯á·áá±á¬ ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážááẠá¡á á¯á¡áá¯á¶á¡ááœááºá¡á á¬ážááᯠááá·áºááŸááºážááŒá± 10% áá»áŸá±á¬á·áá»ááá¯ááºá á±ááŒá±á¬ááºáž á ááºážáááºááŸá¯áá»á¬ážá ááŒááá²á·áááºá Flutter SDK ááœááºá áá¯ááºá¡áá áºááᯠáá°áááºážá¡ááá¯ááºáž Android á¡ááœáẠááœáá·áºáá¬ážááŒá®ážááŒá áºáᬠá¡áá¬áááºááœáẠiOS á¡ááœáẠááœáá·áºáá¬ážááẠá á®á ááºáá¬ážáá«áááºá
- Dart SDK ááœáẠááááºá áá®ážááŒá¬ážáááºáá±á·áá»áºáá áºáá¯á áá¶á·ááá¯ážáá±ážáá¬ážááá·áº á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááŸáá·áº á áœááºážáá±á¬ááºáááºááá¯ááºážááŒá¬ážá áááºááŒá¬ááŸá¯ (DevTools) á¡ááœáẠáááááá¬áá»á¬áž áá«áááºáááºá
- áááááá¬áá»á¬ážááᯠâdart á¡áááºááá¯ááºâ á¡áááá·áºááŸáá·áº pub.dev áááºáá±á·ááºá» ááá¯ááŸá±á¬ááºáááºážáá»á¬ážááá¯á· áá±á«ááºážááá·áºáá¬ážááŒá®ážá á¥ááá¬á áááºáá±á·áá»áºá¡ááœááºáž áááºááá¯ááºáá±á«ááºážá ááºážááŸá¯á áá áºáá»á¬ážááŸáá·áº cloud áááºáááºážáá»ááºáá»á¬ážá¡ááœáẠá¡áá±á¬ááºá¡áá¬ážáá»á¬ážááᯠáá»ááºáá¬ážáá²á·áá«á áááºážááá¯á· áá±á«ááºááŒá¬ážááŸá¯ááᯠááœá±á·ááŸááá«áá âdart pub Publishâ á¡áááá·áºááᯠáá¯ááºáá±á¬ááºááŒááºážááẠá¡ááŸá¬ážá¡ááœááºáž áááºáá±á·áá»áºáá áºáá¯ááŒáá·áº áááºááá·áºááœá¬ážáááºááŒá áºáááºá á¡áááºá ááŸá¬ážááœááºážáá±á¬ á¡ááŒá¯ááá±á¬áá«ááŸááá«áá á á áºáá±ážááŸá¯á¡á¬áž á¡ááŒá°áá±á¬ááºá á¬áááºážááŒáá·áº áá»á±á¬áºááŒááºááá¯ááºáááºá
- á¥ááá¬á¡á¬ážááŒáá·áº á¡áá¹ááá¬ááºááŸááá±á¬ á¡ááŸá¬ážá¡ááœááºážáá»á¬áž ááá¯á·ááá¯áẠá¡á¬ážáááºážáá»ááºáá»á¬ážááᯠááŸá¬ááœá±ááœá±á·ááŸááá«á pub.dev ááá¯ááŸá±á¬ááºááŸá¯ááá¯á· ááá·áºááœááºážáá¬ážááŒá®áž áááºáá±á·ááºá»áá áºáá¯á áá¯ááºáá±ááŒá®ážáá¬ážáá¬ážááŸááºážááᯠáá¯ááºááááºážááá¯ááºááá·áºá áœááºážáááºááᯠáá¯ááºááááºážááá¯ááºáááºá ááááºá ááá¯ááá¯á·áá±á¬ á¡ááŸá¬ážááŒááºáááºááŸá¯áá»á¬ážá¡ááœáẠá¡áá±á·á¡áá»áá·áºááẠááŸááºáááºáá±á¬áá¬ážááŸááºážááᯠáá¯ááºáá±áááºááŒá áºáá±á¬áºáááºáž á¡áá»áá¯á·á¡ááŒá±á¡áá±áá»á¬ážááœáẠáááºááŸááá¯ááºáá±ááŸá¯ááᯠáááºáá»ááºááŒá®áž áááºážááááºáá¶ááŒáá·áºááŒá°ážááŸá¯ááᯠá¡áá±ážáá±á«áºáááºááá·áºááẠááá¯á¡ááºááẠ(á¥ááá¬á á¡ááŸá¬ážááŒááºáááºááŸá¯ á¡áááºááá·áºáááŒá áºáá±ážáá«á ááá¯á·ááá¯áẠá¡ááŒáá·áºá¡ááá¯ááºáá±ááŒááºážááŒá áºáá«áá á ááºážáááºáá¬ážááŸááºážá¡á á¬áž ááŸá¬ážááœááºážáá¯ááºáá±áá²á·áááºá) áá¯ááºááááºážááŒá®ážáá±á¬ááºá áááºáá±á·áá»áºááᯠâpub getâ ááŸáá·áº âpub upgradeâ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááœáẠáááœá±á·ááá±á¬á·áá² áááºážááᯠááá·áºááœááºážááŒá®ážáá±á¬ á áá áºáá»á¬ážááœááºá áá±á¬ááºáá áºááŒááẠâpub getâ ááᯠáá¯ááºáá±á¬ááºááá·áºá¡áá« á¡áá°ážááááá±ážáá»áẠáá¯ááºááŒááºáá¬ážáááºá
- ááŒáááŸá¯á¡á á®á¡á á¥áºááá¯ááŒá±á¬ááºážáá²ááá·áºáá¯ááºááŸá áá°áá®áá¯ááºá¡áá¹ááá¬áá»á¬ážá¡áá¯á¶ážááŒá¯ááŒááºážááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬ á¡á¬ážáááºážáá»ááºáá áºáᯠ(CVE-2021-22567) ááᯠáááºáá±á¬ááºážáá¬ááœááºáá¬ážáááºá
- pub.dev oauth2021 áááºáá±á¬ááºááœáá·áº ááá¯áááºáá»á¬ážááᯠáááºáá¶ááá·áº ááŒááºááá¬áá¬ááá¯á· áááºáá±á·áá»áºáá»á¬áž áá¯ááºáá±áá¬ááœáẠá¡ááŒá¬áž pub.dev á¡áá¯á¶ážááŒá¯áá° á¡áá±á¬ááºáá±á¬ááºááœáá·áºááŒá¯ááá·áº á¡á¬ážáááºážáá»áẠ(CVE-22568-2) ááᯠááŒááºáááºáá²á·áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡ááœááºážááá¯ááºážááŸáá·áº áá±á¬áºááá¯ááááºá¡áá¯ááºáá¬áá¬áá»á¬ážááᯠááá¯ááºááá¯ááºááẠá¡á¬ážáááºážáá»ááºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá pub.dev ááœáẠáááºáá±á·áá»áºáá»á¬ážááá¯áᬠáááºáá¶áá±á¬ááºááœááºáá±ážáá±á¬ developer áá»á¬ážááẠá€ááŒá¿áá¬á¡ááœáẠáááºáá±á¬ááºááŸá¯áááŸááá«á
áá áºáá»áááºáááºážááœááºá á¡áá¯á¶ážááŒá¯áá°áá»ááºááŸá¬ááŒááºáá±á¬áẠFlutter 2.8 ááááá¬áááºááŸá¬ážáá±á¬ááœááºááŸáááŸá¯ááá¯ááŒááá²á·ááŒá®ážá React Native áá¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá áºáá¯á¡ááŒá áºáá°ááᬠiOSá Androidá Windowsá macOS ááŸáá·áº macOS á¡ááœááºá¡ááºááá®áá±ážááŸááºážáá»á¬ážááá¯áá¯ááºááœáŸááºáááºááœáá·áºááŒá¯ááá·áºáá áºáá¯áááºážáá±á¬áá¯ááºá¡ááŒá±áá¶á¡áá±á«áºá¡ááŒá±áá¶áááºá Linux ááááºáá±á¬ááºážáá»á¬ážá¡ááŒáẠááá±á¬ááºáá¬áá»á¬ážááœáẠáá¯ááºáá±á¬ááºááẠá¡ááá®áá±ážááŸááºážáá»á¬áž áááºáá®ážáá«á Google ááŸáá¯ááºáá¯ááºááá·áº Fuchsia microkernel áááºáááºááŸá¯á áá áºá¡ááœáẠá áááºááŒáá¯áẠshell ááᯠFlutter áá¡ááŒá±áá¶ááŒáá·áºáááºáá±á¬ááºáá¬ážáááºá ááœááºáá²á·áá±á¬ááŒá±á¬ááºáá¡ááœááºáž Google Play Store ááŸá Flutter 2 á¡ááºááºáá®áá±ážááŸááºážá¡áá±á¡ááœáẠ200 á០375 ááá¯á· ááá¯ážáá¬áááºáᯠááŸááºáá¬ážááá«áááºá ááŸá áºááŒáááºáá®ážáá«ážá
Flutter áá¯ááºá á¡ááá á¡á áááºá¡ááá¯ááºážááᯠDart áá¬áá¬á áá¬ážááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®áž á¡ááºááá®áá±ážááŸááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœáẠruntime engine ááᯠC++ ááŒáá·áº áá±ážáá¬ážáá¬ážáááºá á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáá®ááœááºááá·áºá¡áá«á Flutter á áá°áááºáž Dart áá¬áá¬á áá¬ážá¡ááŒááºá áááºááẠC/C++ áá¯ááºááá¯áá±á«áºááá¯áááºá¡ááœáẠDart Foreign Function interface ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá áá áºááŸááºááááºáá±á¬ááºážáá»á¬ážá¡ááœáẠáá°ááá¯ááºááá¯á· á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá á¯á ááºážááŒááºážááŒáá·áº ááŒáá·áºáá¬ážáá±á¬áá¯ááºáá±á¬ááºááŸá¯á áœááºážáá±á¬ááºáááºááᯠáááŸááááºá á€ááá á¹á ááœááºá ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯á á®ááŒá®ážáá±á¬áẠáááá¯ááááºá¡á¬áž ááŒááºáááºá á¯á ááºážááẠáááá¯á¡ááºáá« - Dart ááẠááá·áºá¡á¬áž áá¯ááºáá±á¬ááºáá±ááá·áº á¡ááºááºáá®áá±ážááŸááºážááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž ááŒá¯áá¯ááºááá¯ááºááŒá®áž ááááºááᯠáá»ááºáá»ááºážá¡áá²ááŒááºááẠááœáá·áºááŒá¯ááá·áº Dart ááẠáá°ááŒááºážáá±á¬ reload mode ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
Flutter áá¯ááºáá±ááŸá¯á¡áá
áºááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŒá¬ážááœááºá ááá¯ááá¯ááºážááºá
ááºáá
á¹á
ááºážáá»á¬ážááœáẠááœáŸáá·áºáááºááá·áºá¡ááŒááºááŸá¯ááºážááŸáá·áº ááŸááºáá¬ááºáá¯á¶ážá
áœá²ááŸá¯ááá¯á·ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážááŒá±á¬ááºáž ááŸááºáá¬ážáá¬ážáááºá Firebase ááŸáá·áº Google Cloud áá²á·ááá¯á·áá±á¬ áá±á¬ááºáá¶áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯á· á¡ááºááºáá»á¬ážá¡á¬áž áá»áááºáááºááẠááá¯ááá¯ááœááºáá°áááºá Google Ads ááŸáá·áº áá±á«ááºážá
ááºááŒááºážá¡ááœáẠáááááá¬áá»á¬ážááᯠáááºááŒáááºá¡á±á¬áẠááŒá¯áá¯ááºáá¬ážáááºá áááºááá¬áá»á¬ážááŸáá·áº áááºááááºá¡ááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááááá¬áᬠááŒáŸáá·áºáááºáá¬ážáááºá ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠááá¯ážááŸááºážá
á±ááẠáááááá¬á¡áá
áºáá»á¬ážááᯠá¡ááá¯ááŒá¯áá¬ážááŒá®ážá á¥ááá¬á Firebase ááᯠá¡áá¯á¶ážááŒá¯á á
á
áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážááŒáááºá¡ááœáẠáá
áºáá»ááºáá
áºáá¯ááᯠááá·áºááœááºážáá¬ážáááºá Flutter ááᯠá¡áá¯á¶ážááŒá¯á 2D ááááºážáá»á¬áž áááºáá®ážáááºá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážááá·áº Flame á¡ááºáá»ááºááᯠááœááºážáá¶áá¬ážáááºá
source: opennet.ru