Google ááẠááŒááºážáááºáá±á¬ static typing ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº Dart 2.14 áááá¯ááááºážáááºážáá¬áá¬á áá¬ážá áá°ááá¬ážááŸááºážááŸáá·áºááá°ááá·áº ááŒááºážáááºá áœá¬ááŒááºáááºáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ 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 á
- á á¬ááŒáá·áºááá¯ááºáá»á¬ážááŸáá·áº á¡áá¯á¶ážá¡áá±á¬ááºáá á¹á ááºážáá»á¬ážáá«ááŸááá±á¬ á¡ááá¯áááºáá±á·áá»áºáá»á¬ážááᯠáááºáá±á·ááºá» 20 áá»á±á¬áºááŸáááá·áº á¡áááºááá¯ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
Dart 2.14 ááœááºááŸáááŸá¯ááœáẠá¡áááááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž-
- ">>" á¡á±á¬áºááá±áá¬ááŸáá·áºááá°áá² ">>" á¡á±á¬áºááá±áá¬ááŸáá·áºááá°áá² triple shift á¡á±á¬áºááá±áá¬á¡áá áºáá áºáá¯áááºááá·áºáá²á·áááºá áááºážáááºááááºážáááºá¹áá»á¬ááá¯ááºáá±á¬ááºáá²ááááááºááá¹ááá¬áá áºááá¯ááá·áºááœááºážááŒááºážáááŸááá²á¡áá¯ááºáá¯ááºáá±á¬áá¯áá¹áááá±áááŒá±á¬ááºážáá²ááŸá¯ááŒá áºááẠ(ááŒá±á¬ááºážáá²ááŸá¯ááá¯áááá¯ááºážááŒá¬ážáá²áá¯ááºáá±á¬ááºááẠá¡áá±á«ááºážááŸáá·áº á¡áá¯ááºááááºážáá»á¬áž)á
- áá±áá¯áá»áá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠá¡áá»áá¯ážá¡á á¬ážá¡ááŒááºážááœá¬ážááŸá¯áá áºáá¯á¡ááŒá Ạá¡áá¯á¶ážáááŒá¯ááẠáá¬ážááŒá áºáá¬ážáá±á¬ á¡áá»áá¯ážá¡á á¬ážá¡ááŒááºážááœá¬ážááŸá¯á¡áá±á«áº ááá·áºáááºáá»ááºááᯠáááºááŸá¬ážáá²á·áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá¯áááºáááºááŸááºááá¯ááºáááº- áá±á¬ááºáá»á á¬áááºáž (T)>idFunctions; var callback = [ (T value) => áááºááá¯áž]; late S Function (T)>(S) f;
- @Deprecated áá²á·ááá¯á·áá±á¬ ááŸááºáá»ááºáá»á¬ážááœáẠá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááŒáá·áº ááŒááºážáá¯á¶ááŸá¯áá»á¬ážááᯠáááºááŸááºááœáá·áºááŒá¯áá«á á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠááá¯áááºááŸááºááá¯ááºáááº- @TypeHelper (ááá âá¡áááá¹áá«ááºâ)á
- áááºááŒáááºáááºážáááºážáá»á¬ážááᯠhashá hashAll ááŸáá·áº hashAllUnordered ááᯠObject class ááŸá á á¶á á¬ááŒáá·áºááá¯áẠ(core) ááœáẠááá·áºááœááºážáá¬ážáááºá DateTime á¡áááºážááẠáá áºáá¬áá®ááŸáá·áº ááœá²ááááá±á¬ ááœá±áá¬áá®ááŸáá·áº áá±á¬ááºážáá¬áá®ááŒá¬ážááŸá áá¬áá®áá»á¬ážááᯠááœá±áá¬áá®ááŸáá·áº áá±á¬ááºážáá¬áá®ááá¯á· ááŒá±á¬ááºážáá²ááá·áºá¡áá« áá±áá á¶áá±á¬áºáá»áááºááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºáá±ážááẠ(á¥ááá¬á ááŒá ááŒá±ážáá»ááœáẠáááá Ạ30 ááŸá¯ááºážááᯠá¡áá¯á¶ážááŒá¯áááº)á ffi áááºáá±á·áá»áºááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºááœáŸááºááá·áº Arena Memory ááœá²áá±ááŸá¯ ááá¹ááá¬ážá¡ááœáẠá¡áá±á¬ááºá¡áá¶á·ááᯠáá±á«ááºážááá·áºáá¬ážáááºá ffigen áááºáá±á·áá»áºááœáẠC language á០Dart á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá typedef á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážááᯠáá¯ááºáá±ážááá¯ááºáááºá
- pub.dev ááá¯ááŸá±á¬ááºááŸá¯á០áá±áááºážá¡á á¬ážáá¯á¶áž áááºáá±á·áá»áº 250 ááŸáá·áº ááááºáááºáž 94 á 1000% ááᯠ"null safety" áá¯ááºááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áááºááá¯ážáááºááŸááºááá¬ážáá² áááºááŸááºááá¬ážáá±á¬ ááááºážááŸááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááŒáá¯ážáááºážááŒááºážááŒá±á¬áá·áº áá»ááºáá»ááŸá¯áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááá¯ááºá á±ááá·áº "Null safety" áá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá â â áá¯ááºááœáẠááááºážááŸááºáá»á¬ážááẠnull áááºááá¯ážáá»á¬ážááᯠá¡ááá¡áááºáž áááºááŸááºááá±ážáá«á áááºážááá¯á·ááœáẠnull áááºááá¯ážáá»á¬áž áááŒá áºááá¯ááºááŒá±á¬ááºáž ááá¯ááá¯áááºá áá¯ááºááẠááááºážááŸááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáááºážááŒááºá áœá¬áá±ážá á¬ážáááºá áááºážááẠcompiler á¡á¬áž áááºáá±á¬ááºážááá¯áá±á¬ááºážá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºá á¡áá»áá¯ážá¡á á¬ážááá¯ááºáá»á±á¬áá®ááœá±ááŸá¯ááᯠcompile á¡áá»áááºáá á áºáá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠâintâ áá²á·ááá¯á· áááºááŸááºááá¬ážáá±á¬á¡ááŒá±á¡áá±áᯠá¡áááá¹áá¬ááºááááºáá±á¬ááºáá±á¬ á¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááŒáá·áº "Null" áááºááá¯ážááᯠáááºááŸááºáááºááŒáá¯ážá á¬ážáá«áá á¡ááŸá¬ážáá áºáá¯ááŒááá«áááºá
- Dart ááŸáá·áº Flutter áá°áá±á¬ááºá¡ááœáẠáá¯ááºá ááá¯ááºáááºážááœáŸááºáá»ááºáá»á¬ážááŸáá·áºá¡áá® á á áºáá±ážááŒááºážá¡ááœáẠáá áºááŒáá¯ááºáááºáááºáž áá¶á·ááá¯ážáá±ážááá·áº áá¯ááºááœá²ááŒááºážá áááºááŒá¬áá° (linter) á¡ááœáẠá ááºážá ááºážáá¯á¶ážááá¯ááºáᬠá ááºážáá»ááºážáá»á¬áž á¡ááá¯ááŒá¯áá¬ážáááºá áááá¯ááºážááŒá±á¬ááºážá¡áá Flutter ááŸáá·áº Dart á¡ááœáẠcoding á ááºážáá»ááºážáá»á¬ážááẠááœá²ááŒá¬ážáááºá ááá¯á·á¡ááŒáẠDart á¡ááœáẠá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ á ááºážáá»ááºáž ááŸá áºáá¯ááŸáááẠ- Google á០pedantic ááŸáá·áº Dart developer á¡ááá¯ááºážá¡ááá¯ááºážá០á ááºážáá»ááºážáá»á¬ážá Dart 2.14 ááẠDart ááá±á¬áá»ááºá¡áá áºáá»á¬ážááŸáá·áº Flutter SDK ááœáẠáá°áááºážá¡ááá¯ááºážá¡áá¯á¶ážááŒá¯ááẠáá¯á¶ážááŒááºáá¬ážááá·áº linter á¡ááœáẠáá¯á¶á ááºážáá»ááºážá¡áá áºáá áºáá¯ááᯠááááºáááºáá±ážáááºá á€á¡á á¯ááœáẠá¡áááá ááºážáá»ááºážáá»á¬áž (lints/core.yaml áááºáá±á·áá»áº)á á¡ááŒá¶ááŒá¯áá¬ážáá±á¬ áá±á¬ááºáááºá ááºážáá»ááºážáá»á¬áž (lints/recommended.yaml) ááŸáá·áº Flutter-áááºááŸááºá¡ááŒá¶ááŒá¯áá»ááºáá»á¬áž (flutter_lints/flutter.yaml) ááá¯á· áá«áááºáááºá Pedantic á ááºážáá»ááºážáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠDart á á¬ááœááºá á¬áááºážááŸá¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á coding áá¯á¶á á¶á¡áá áºááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááŒá¶ááŒá¯áá¬ážáááºá
- áá±á¬áºáááºáá¬ááœááºá áá±á¬áºáááºááŒá¯áá¯ááºááŒááºážá áœááºážáá±á¬ááºáááºááᯠáááááá¬áá¬ááá¯ážáááºá á±ááŒá®áž á áá¬ážáááºááŒááºá ááºáá»á¬ážá ááá¯ááºááá¯ááºááŸá¯á áááŸááºážáááºážáá±á¬á¡áááá¹áá¬ááºááœáá·áºááá¯áá»ááºáá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááá¯ááºááá·áº Cascading áá¯ááºáá¯á¶ážáá»á¬ážááᯠáá±á¬áºáááºáá»ááŒááºážááœáẠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá "var result = errorState ? foo : bad..doIt()" ááẠ"bad" block á á¡ááŒá±á¡áá±á¡á á¡á áááºá¡ááá¯ááºážááŸáá·áº ááááºááá¯ááºáá«á ááá¯á·áá±á¬áº expression áá áºáá¯áá¯á¶ážááᯠáá±á¬áºáááºáá»ááá·áºá¡áá« áááºážááᯠááᯠááœá²ááŒá¬ážáá¬ážáááº- var result = errorState ? foo : ááá¯ážááẠ..doIt();
- Apple M1 (Silicon) áááá¯áááºáá¬áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž SDK ááœáẠááá·áºááœááºážáá¬ážááŒá®ážá Apple Silicon áááá¯áááºáá¬ááŒáá·áº á áá áºáá»á¬ážááœáẠDart VMá utilities áá»á¬ážááŸáá·áº SDK á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŸáá·áº á€áá»á áºááºáá»á¬ážá¡ááœáẠá á®á á¥áºááá¯ááºáá±á¬ ááá¯ááºáá»á¬ážá á¯á ááºážááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááá¯á·ááᯠáááºááœáŸááºážáá«áááºá
- "dart pub" ááœáŸááºááŒá¬ážáá»ááºááœáẠáááºáá±á·áá»áºáá áºáá¯ááᯠpub.dev ááá¯ááŸá±á¬ááºáááºážááá¯á· ááœáŸáá·áºáááºááá·áºá¡áá« áá»á±á¬áºááœá¬ážááá·áº ááá¯ááºá á¬áááºážááᯠáááºááŸááºááœáá·áºááŒá¯ááá·áº áááºáá±á¬ááºááŸá¯ááá¯ááºá¡áá Ạ".pubignore" á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážáá±ážáá¬ážáááºá á€áááºáááºáá»á¬ážááẠâ.gitignoreâ á á¬áááºážááᯠáá»á áºáá»á°ááŸá¯ááŒááºážááœáẠá¡ááŸá±á¬áá·áºá¡ááŸááºáááŒá áºá á±áá« (á¡áá»áá¯á·á¡ááŒá±á¡áá±áá»á¬ážááœááºá pub.dev ááẠGit ááœáẠááá¯á¡ááºáá±á¬ááá¯ááºáá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážááŒááºážááᯠááŸá±á¬ááºááŸá¬ážááá¯ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¬áá¡ááœááºážá¡áá¯á¶ážááŒá¯ááá·áºá¡ááœááºážááá¯ááºáž scripts)á
- áá¬ážááŸááºážáá¶áá«ááºáááŒá±á¬ááºážáá«á pubspec ááá¯ááŒá±á¬ááºážáá²ááŒá®ážáá±á¬áẠááá¯ááŒááºáááºáá±á«ááºážá ááºážááŒááºážá ááºážáááºááŸá¯áá»á¬ážáááá¯á¡ááºááá·áº "dart test" command áá áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºááẠáá¯ááºáá±á¬ááºáá¬ážáá«áááºá
- ECMAScript 5 ááá¯ááºáááºáá®ááŸá¯áá¯ááºááœáẠá á¯á ááºážááŸá¯á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºááá¯ááºážááá¯ááºáá«ááŒá® (ááŒá±á¬ááºážáá²ááŸá¯ááẠIE11 ááá±á¬ááºáá¬ááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºááŸá¯ áá¯á¶ážááŸá¯á¶ážááœá¬ážáááá·áºáááº)á
- áá áºáŠážáá»ááºážá á® utilities stagehand, dartfmt ááŸáá·áº dart2native ááᯠá¡áá¯á¶ážáááŒá¯áá±á¬á·ááŒá±á¬ááºáž ááŒá±ááŒá¬áá²á·ááŒá®ážá dart utility áá¯áá±á«áºáá±á¬ built-in command áá»á¬ážááŒáá·áº á¡á á¬ážááá¯ážáá«áááºá
- VM Native Extensions ááá¹ááá¬ážááᯠáááºááá¯ááºážáá¬ážáááºá Dart áá¯ááºá០áá°áááºážáá¯ááºááᯠáá±á«áºáááºá¡ááœáẠDart FFI (Foreign Function Interface) á¡áá áºááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯á¡ááºáá«áááºá
áá áºáá»áááºáááºážááœááºá React Native áá¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá áºáá¯á¡ááŒá áºáááºááŸááºáá¬ážáá±á¬á¡áá¯á¶ážááŒá¯áá°áá»ááºááŸá¬ááŒááºáá±á¬áẠFlutter 2.5 ááááá¬áááºááŸá¬ážáá±á¬áá¯ááºáá±ááŸá¯ááá¯áááºááŒáá²á·ááŒá®áž iOSá Androidá Windowsá macOS ááŸáá·áº Linux á¡ááœáẠá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááᯠáá¯ááºá¡ááŒá±áá¶áá áºáá¯áááºážá¡áá±á«áºá¡ááŒá±áá¶á áá¯ááºááŒááºááœáá·áºááŒá¯áááºá ááááºáá±á¬ááºážáá»á¬ážá¡ááŒáẠááá±á¬ááºáá¬áá»á¬ážááœáẠáá¯ááºáá±á¬ááºááẠá¡ááá®áá±ážááŸááºážáá»á¬áž áááºáá®ážáá«á Google ááŸáá¯ááºáá¯ááºááá·áº Fuchsia microkernel áááºáááºááŸá¯á áá áºá¡ááœáẠá áááºááŒáá¯áẠshell ááᯠFlutter áá¡ááŒá±áá¶ááŒáá·áºáááºáá±á¬ááºáá¬ážáááºá
Flutter áá¯ááºá á¡ááá á¡á áááºá¡ááá¯ááºážááᯠDart áá¬áá¬á áá¬ážááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®áž á¡ááºááá®áá±ážááŸááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœáẠruntime engine ááᯠC++ ááŒáá·áº áá±ážáá¬ážáá¬ážáááºá á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáá®ááœááºááá·áºá¡áá«á Flutter á áá°áááºáž Dart áá¬áá¬á áá¬ážá¡ááŒááºá áááºááẠC/C++ áá¯ááºááá¯áá±á«áºááá¯áááºá¡ááœáẠDart Foreign Function interface ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá áá áºááŸááºááááºáá±á¬ááºážáá»á¬ážá¡ááœáẠáá°ááá¯ááºááá¯á· á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá á¯á ááºážááŒááºážááŒáá·áº ááŒáá·áºáá¬ážáá±á¬áá¯ááºáá±á¬ááºááŸá¯á áœááºážáá±á¬ááºáááºááᯠáááŸááááºá á€ááá á¹á ááœááºá ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯á á®ááŒá®ážáá±á¬áẠáááá¯ááááºá¡á¬áž ááŒááºáááºá á¯á ááºážááẠáááá¯á¡ááºáá« - Dart ááẠááá·áºá¡á¬áž áá¯ááºáá±á¬ááºáá±ááá·áº á¡ááºááºáá®áá±ážááŸááºážááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž ááŒá¯áá¯ááºááá¯ááºááŒá®áž ááááºááᯠáá»ááºáá»ááºážá¡áá²ááŒááºááẠááœáá·áºááŒá¯ááá·áº Dart ááẠáá°ááŒááºážáá±á¬ reload mode ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
Flutter 2.5 ááœáẠá¡áááááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž-
- áááá¬áááºááŸá¬ážáá±á¬ á
áœááºážáá±á¬ááºáááºááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááŒá¯áá¯ááºáá²á·áááºá iOS ááŸáá·áº macOS ááááºáá±á¬ááºážáá»á¬ážááœáẠMetal ááááºáá
ẠAPI á¡ááœáẠá¡ááááºá¡á¬áááááºáá»á¬áž ááŒáá¯áááºá
á¯á
ááºážááŒááºážááᯠáá¯ááºáá±á¬ááºááŒá®ážááŒá
áºáááºá á¡ááŒáá¯ááºá¡ááá¯áẠááŒá
áºáááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážá á
áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá¬ážáááºá á¡ááŸáá¯ááºá
á¯áá±á¬ááºážáá°ááẠá¡áá¯á¶ážáááŒá¯áá±á¬áá¯á¶áá»á¬ážá០ááŸááºáá¬ááºááᯠááŒááºáááºááá°ááá·áºá¡áá« ááŸá±á¬áá·áºááŸá±ážááŸá¯ááŒá¿áá¬ááᯠááŒá±ááŸááºážáá²á·ááẠ(á¥ááá¬á á
áá¹ááá·áº 20-ááŒá¬ áá¬ááœááºáž GIF áá
áºáá¯ááᯠááŒááºááœáá·áºá
ááºááœááºá á¡ááŸáá¯ááºá
á¯áá±á¬ááºážááŒááºážáá¯ááºáááºážááᯠ400 á០4 á¡áá áá»áŸá±á¬á·áá»áá²á·áááºá Dart ááŸáá·áº Objective-ááŒá¬ážááŸá áááºáá±á·áá»áºáá»á¬ážáá±ážááá¯á·ááá·áºá¡áá« ááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážá C/Swift ááᯠ50% (iOS) ááá¯á·ááá¯áẠJava/Kotlin (Android) Apple Silicon áá»á
áºááºáá±á«áºááœáẠá¡ááŒá±áá¶áá¬ážáá±á¬ á
áá
áºáá»á¬ážá¡ááœáẠáá°ááááºáá±á¬ááºááŸá¯ áá¶á·ááá¯ážááŸá¯ áááºááá·áºáá¬ážáááºá
- Android ááááºáá±á¬ááºážá¡ááœááºá áá»ááºááŸá¬ááŒááºá¡ááŒáá·áºáá¯ááºááœáẠá¡ááá®áá±ážááŸááºážáá»á¬áž á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáá°áá±á¬ááºáá¬ážáááºá áá»áá¯ážáááºáá ẠMaterial Design ááœá±ážáá»ááºááŸá¯á¡ááŒá ẠáááºááŒáá¬ážááá·áº âMaterial Youâ áá®ááá¯ááºážá¡áá°á¡áááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ áááºáááºáá¯ááºáá±á¬ááºáá²á·áááºá MaterialState.scrolledUnder ááœáẠááŒááºáááºá¡áá áºáá áºáá¯áááºááá·áºáááºá á¡ááœááºá¡á á¬ážááŒá±á¬ááºážááá·áºá¡áá« scroll bars áá»á¬ážá dynamic display ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®áž á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºááá°ážá ááºážáá»á¬ážááá¯ááŒááááºá¡ááœáẠá¡ááºáá¬áá±á·á áºá¡áá áºáá áºáá¯ááᯠá¡ááá¯ááŒá¯áá¬ážáááºá
- áááºááᬠplug-in áá áœááºážáááºáá»á¬ážááᯠáááá¬áááºááŸá¬ážá áœá¬ áá»á²á·ááœááºáá¬ážááŒá®áž autofocusá exposureá flashá zoomá noise reduction ááŸáá·áº resolution ááá¯ááááºážáá»á¯ááºáááºá¡ááœáẠtools áá»á¬ážááá·áºáá¬ážáááºá
- áá±á¬á·ááºáá²áá±ážáá¬ážáá° áááááá¬áá»á¬áž (DevTools) ááẠááœááºážáá¶áá¬ážáá±á¬ áá
áºáá»ááºá
á
áºáá±ážááŒááºážáá¯ááºá¡ááŒáẠáááºáááºááŸá¯ááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááᯠááœá²ááŒá¬ážáááºááŸááºááŒááºážááŸáá·áº á¡ááááºá¡á¬áá«áá
á¯á
ááºážááŸá¯ááᯠááŒá±áá¬áá¶ááŒááºážá¡ááœáẠáááááá¬áá»á¬ážáá«áááºá
á±ááẠááŒáŸáá·áºáááºáá¬ážáá«áááºá
- Visual Studio Code ááŸáá·áº IntelliJ/Android Studio á¡ááœáẠááŒáŸáá·áºáááºáá¬ážáá±á¬ ááááºá¡ááºáá»á¬ážá
source: opennet.ru