Google ã¯ãDart 2.14 ããã°ã©ãã³ã°èšèªã®ãªãªãŒã¹ãå ¬éããŸãããããã¯ãDart 2 ã®æ ¹æ¬çã«åèšèšããããã©ã³ãã®éçºãç¶ç¶ããŠããŸãããã®ãã©ã³ãã¯ã匷åãªéçåä»ãã䜿çšããç¹ã§ãªãªãžãã«ã®ããŒãžã§ã³ã® Dart èšèªãšã¯ç°ãªããŸã (åã¯èªåçã«æšè«ã§ãããããåãæå®ããå¿ èŠã¯ãããŸããããåçåä»ãã¯äœ¿çšãããªããªããæåã«èšç®ãããåãå€æ°ã«å²ãåœãŠããããã®åŸå³å¯ãªåãã§ãã¯ãé©çšãããŸã)ã
Dart èšèªã®ç¹åŸŽ:
- JavaScriptãCãJava ããã°ã©ããŒã«ãšã£ãŠéŠŽæã¿ã®ãããåŠç¿ããããæ§æã
- ããŒã¿ãã« ããã€ã¹ãã匷åãªãµãŒããŒã«è³ããŸã§ãææ°ã®ãã¹ãŠã® Web ãã©ãŠã¶ãŒãšããŸããŸãªã¿ã€ãã®ç°å¢ã§é«éèµ·åãšé«ãããã©ãŒãã³ã¹ãä¿èšŒããŸãã
- æ¢åã®ã¡ãœãããšããŒã¿ã®ã«ãã»ã«åãšåå©çšãå¯èœã«ããã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸ©ããæ©èœã
- ã¿ã€ããæå®ãããšããããã°ãšãšã©ãŒã®ç¹å®ã容æã«ãªããã³ãŒããããæ確ã§èªã¿ããããªãããµãŒãããŒãã£éçºè ã«ããã³ãŒãã®å€æŽãšåæãç°¡çŽ åãããŸãã
- ãµããŒããããŠããåã«ã¯ãããŸããŸãªåã®ããã·ã¥ãé åãšãªã¹ãããã¥ãŒãæ°å€åãšæåååãæ¥ä»ãšæå»ã決å®ããåãæ£èŠè¡šçŸ (RegExp) ãå«ãŸããŸãã ç¬èªã®ã¿ã€ããäœæããããšãå¯èœã§ãã
- 䞊åå®è¡ãçµç¹ããã«ã¯ãisolate å±æ§ãæã€ã¯ã©ã¹ã䜿çšããããšãææ¡ãããŠããŸãããã®ã³ãŒãã¯å®å šã«å¥ã®ã¡ã¢ãªé åã®éé¢ããã空éã§å®è¡ãããã¡ãã»ãŒãžãéä¿¡ããããšã§ã¡ã€ã³ ããã»ã¹ãšå¯Ÿè©±ããŸãã
- 倧èŠæš¡ãª Web ãããžã§ã¯ãã®ãµããŒããšãããã°ãç°¡çŽ åããã©ã€ãã©ãªã®äœ¿çšã®ãµããŒãã ãµãŒãããŒãã£ã®é¢æ°å®è£ ã¯ãå ±æã©ã€ãã©ãªã®åœ¢åŒã§å«ããããšãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®éšåã«åå²ããåéšåã®éçºãå¥ã®ããã°ã©ã㌠ããŒã ã«å§èšããããšãã§ããŸãã
- Dart èšèªã§ã®éçºããµããŒãããæ¢è£œã®ããŒã«ã®ã»ãããåçéçºã®å®è£ ãããªã³ã¶ãã©ã€ã§ã³ãŒãä¿®æ£ (ãç·šéããŠç¶è¡ã) ã§ãããããã° ããŒã«ãå«ãŸããŸãã
- Dart èšèªã§ã®éçºãç°¡çŽ åããããã«ãSDKãããã±ãŒãž ãããŒãžã£ãŒ pubãéçã³ãŒã ã¢ãã©ã€ã¶ãŒ dart_analyzerãã©ã€ãã©ãªã®ã»ãããçµ±åéçºç°å¢ DartPadãIntelliJ IDEAãWebStormãEmacsãSublime Text çšã® Dart 察å¿ãã©ã°ã€ã³ãä»å±ããŠããŸãã 2ãšãŽã£ã ã
- ã©ã€ãã©ãªãšãŠãŒãã£ãªãã£ãå«ãè¿œå ã®ããã±ãŒãžã¯ã20 ãè¶ ããããã±ãŒãžãå«ãŸãã pub ãªããžããªãéããŠé åžãããŸãã
Dart 2.14 ãªãªãŒã¹ã®äž»ãªå€æŽç¹:
- æ°ããããªãã« ã·ããæŒç®å (>>>) ãè¿œå ãããŸãããããã¯ãã>>ãæŒç®åãšã¯ç°ãªããç®è¡æŒç®ã§ã¯ãªãã笊å·ããããèæ ®ããã«æ©èœããè«çã·ãããå®è¡ããŸã (ã·ãã㯠XNUMX ã€ã«åå²ããã«å®è¡ãããŸã)ãæ£ã®æ°ãšè² ã®æ°)ã
- ãžã§ããªãã¯é¢æ°åãååŒæ°ãšããŠäœ¿çšããããšã劚ããŠããååŒæ°ã®å¶éãåé€ãããŸããã ããšãã°ã次ã®ããã«æå®ã§ããããã«ãªããŸããã late List (T)>idFunctions; var ã³ãŒã«ãã㯠= [ (T å€) => å€]; åŸæ S é¢æ°(T)>(S) f;
- @Deprecated ãªã©ã®ã¢ãããŒã·ã§ã³ã§åã䜿çšããŠåŒæ°ãæå®ã§ããããã«ããŸãã ããšãã°ã @TypeHelper ãæå®ã§ããããã«ãªããŸããã (42ããæå³ã)
- éçã¡ãœãã hashãhashAllãããã³ hashAllUnowned ã Object ã¯ã©ã¹ã®æšæºã©ã€ãã©ãª (ã³ã¢) ã«è¿œå ãããŸããã DateTime ã¯ã©ã¹ã¯ã30 æéã§å²ãåããªãå€æéãšå¬æéã®éã§ã¯ããã¯ãå€æãããšãã®çŸå°æéã®åŠçãæ¹åããŸãã (ããšãã°ããªãŒã¹ãã©ãªã¢ã§ã¯ XNUMX åã®ãªãã»ããã䜿çšãããŸã)ã ffi ããã±ãŒãžã«ã¯ããªãœãŒã¹ãèªåçã«è§£æŸããã¢ãªãŒã ã¡ã¢ãªå²ãåœãŠã¡ã«ããºã ã®ãµããŒããè¿œå ãããŸããã ffigen ããã±ãŒãžã«ã¯ãC èšèªãã Dart åã® typedef å®çŸ©ãçæããæ©èœãè¿œå ãããŸããã
- pub.dev ãªããžããªã®æã人æ°ã®ãã 250 ããã±ãŒãžãšäžäœ 94 ããã±ãŒãžã® 1000% ã¯ããnull ã»ãŒããã£ãã¢ãŒãã䜿çšããããã«åãæ¿ããããŸãããããã«ãããå€ãæªå®çŸ©ã§ãNullãã«èšå®ãããŠããå€æ°ã䜿çšããããšããè©Šã¿ã«ãã£ãŠåŒãèµ·ããããã¯ã©ãã·ã¥ãåé¿ãããŸãã ãã ãã®ã¢ãŒãã¯ãæ瀺çã«å€ null ãå²ãåœãŠãããªãéããå€æ°ã¯ null å€ãæã€ããšãã§ããªãããšãæå³ããŸãã ãã®ã¢ãŒãã¯å€æ°ã®åãå³å¯ã«å°éãããããã³ã³ãã€ã©ãŒã¯è¿œå ã®æé©åãé©çšã§ããŸãã åã®æºæ æ§ã¯ã³ã³ãã€ã«æã«ãã§ãã¯ãããŸããããšãã°ããintããªã©ãæªå®çŸ©ã®ç¶æ ãæå³ããªãåã®å€æ°ã«å€ãNullããä»£å ¥ããããšãããšããšã©ãŒã衚瀺ãããŸãã
- ã³ãŒã ã¢ãã©ã€ã¶ãŒ (ãªã³ã¿ãŒ) ã®çµ±äžã«ãŒã« ã»ãããææ¡ãããDart ãš Flutter ãã¬ãŒã ã¯ãŒã¯ã®ã³ãŒã ã¹ã¿ã€ã« ã¬ã€ãã©ã€ã³ãžã®æºæ ããã§ãã¯ããããã®åæãµããŒããæäŸããŸãã æŽå²çãªçç±ãããFlutter ãš Dart ã®ã³ãŒãã£ã³ã° ã«ãŒã«ã¯ç°ãªã£ãŠããŸãããããã«ãDart ã§ã¯ 2.14 ã€ã®ã«ãŒã« ã»ããã䜿çšãããŠããŸãããGoogle ã®è¡åŠçã«ãŒã«ãšãDart éçºè ã³ãã¥ããã£ã®ã«ãŒã«ã§ãã Dart XNUMX ã§ã¯ããªã³ã¿ãŒã®æ°ããå ±éã«ãŒã« ã»ãããå°å ¥ãããŠãããããã¯æ°ãã Dart ãããžã§ã¯ãããã³ Flutter SDK ã§ããã©ã«ãã§äœ¿çšãããããšã決å®ãããŠããŸãã ãã®ã»ããã«ã¯ãã³ã¢ ã«ãŒã« (lints/core.yaml ããã±ãŒãž)ãæšå¥šãããè¿œå ã«ãŒã« (lints/recommended.yaml)ãããã³ Flutter åºæã®æšå¥šäºé (flutter_lints/flutter.yaml) ãå«ãŸããŠããŸãã è¡åŠçã«ãŒã«ã®ãŠãŒã¶ãŒã¯ãDart ããã¥ã¡ã³ãã®æšå¥šäºé ã«åºã¥ããŠãæ°ããã³ãŒãã£ã³ã° ã¹ã¿ã€ã«ã®äœ¿çšã«åãæ¿ããããšããå§ãããŸãã
- ãã©ãŒããã¿ã§ã¯ãã«ã¹ã±ãŒã ã³ãŒã ãããã¯ã®æžåŒèšå®ãæé©åãããŠãããããã«ããæžåŒèšå®ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããåŒèŠçŽ ã®æææš©ã®ãããŸããªè§£éãåé¿ãããŸãã ããšãã°ãåŒãvar result = errorState ?ãã§ã..doItããåŒã³åºããŸãã foo : bad..doIt()ãã¯ããbadããããã¯ã®æ¡ä»¶éšåã§ã¯ãªãåŒå šäœã«é¢ä¿ãããããæžåŒèšå®æã«æ¬¡ã®ããã«åé¢ãããŸãã foo : æªã ..doIt();
- Apple M1 (ã·ãªã³ã³) ããã»ããµã®ãµããŒãã SDK ã«è¿œå ãããŸãããããã¯ãApple Silicon ããã»ããµãæèŒããã·ã¹ãã äžã§ Dart VMããŠãŒãã£ãªãã£ãSDK ã³ã³ããŒãã³ããå®è¡ããæ©èœãšããããã®ãããçšã®å®è¡å¯èœãã¡ã€ã«ã®ã³ã³ãã€ã«ã®ãµããŒãã®äž¡æ¹ãæå³ããŸãã
- ã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 ã®ä»£æ¿ãšããŠèæ ®ãããŠãããXNUMX ã€ã®ã³ãŒã ããŒã¹ã«åºã¥ããŠãiOSãAndroidãWindowsãmacOSãLinux çšã®ã¢ããªã±ãŒã·ã§ã³ããªãªãŒã¹ã§ããããã«ãªããŸãããã©ãããã©ãŒã ãæ§ç¯ããã ãã§ãªãããã©ãŠã¶ã§å®è¡ããã¢ããªã±ãŒã·ã§ã³ãäœæããããšãã§ããŸãã Google ãéçºãã Fuchsia ãã€ã¯ãã«ãŒãã« ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã«ã¹ã¿ã ã·ã§ã«ã¯ãFlutter ã«åºã¥ããŠæ§ç¯ãããŠããŸãã
Flutter ã³ãŒãã®äž»èŠéšå㯠Dart èšèªã§å®è£ ãããã¢ããªã±ãŒã·ã§ã³ãå®è¡ããã©ã³ã¿ã€ã ãšã³ãžã³ã¯ C++ ã§æžãããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ãéçºãããšãã¯ãFlutter ã®ãã€ãã£ã Dart èšèªã«å ããŠãDart å€éšé¢æ°ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšã㊠C/C++ ã³ãŒããåŒã³åºãããšãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãã¿ãŒã²ãã ãã©ãããã©ãŒã ã®ãã€ãã£ã ã³ãŒãã«ã³ã³ãã€ã«ããããšã§ãé«ãå®è¡ããã©ãŒãã³ã¹ãå®çŸãããŸãã ãã®å Žåãå€æŽã®ãã³ã«ããã°ã©ã ãåã³ã³ãã€ã«ããå¿ èŠã¯ãããŸãããDart ã«ã¯ãå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã«å€æŽãå ããŠçµæãããã«è©äŸ¡ã§ããããã ãªããŒã ã¢ãŒããçšæãããŠããŸãã
Flutter 2.5 ã®äž»ãªå€æŽç¹:
- 倧å¹
ãªããã©ãŒãã³ã¹ã®æé©åãè¡ããŸããã iOS ããã³ macOS ãã©ãããã©ãŒã ã§ã¯ãMetal ã°ã©ãã£ãã¯ã¹ API ã®ã·ã§ãŒããŒã®ããªã³ã³ãã€ã«ãå®è£
ãããŸããã éåæã€ãã³ãã®åŠçå¹çãåäžããŸããã ã¬ããŒãž ã³ã¬ã¯ã¿ãŒãæªäœ¿çšã®ç»åããã¡ã¢ãªãåå©çšããéã®é
延ã®åé¡ã解決ããŸãã (ããšãã°ã20 ç§ã®ã¢ãã¡ãŒã·ã§ã³ GIF ã®åçäžã«ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³æäœã®æ°ã 400 ãã 4 ã«æžããŸãããDart ãš Objective ã®éã§ã¡ãã»ãŒãžãæž¡ããšãã®é
延)ã C/Swift ã 50% (iOS) ãŸã㯠Java/Kotlin (Android) ã«åæžãããŸããã Apple Silicon ãããã«åºã¥ãã·ã¹ãã ã®ãã€ãã£ã ãã«ã ãµããŒããè¿œå ãããŸããã
- Android ãã©ãããã©ãŒã ã§ã¯ãå šç»é¢ã¢ãŒãã§ã®ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ã®ãµããŒãã確ç«ãããŸããã 次äžä»£ã®ãããªã¢ã« ãã¶ã€ã³ ãªãã·ã§ã³ãšããŠæ瀺ãããããããªã¢ã« ãŠãŒããã¶ã€ã³ ã³ã³ã»ããã®å®è£ ãç¶ç¶ãããŸããã æ°ããã¹ããŒã MaterialState.scrolledUnder ãè¿œå ãããµã€ãºå€æŽæã®ã¹ã¯ããŒã« ããŒã®åç衚瀺ãå®è£ ããéç¥ãããŒã衚瀺ããããã®æ°ããã€ã³ã¿ãŒãã§ã€ã¹ãææ¡ããŸããã
- ã«ã¡ã© ãã©ã°ã€ã³ã®æ©èœãå€§å¹ ã«æ¡åŒµããããªãŒããã©ãŒã«ã¹ãé²åºããã©ãã·ã¥ããºãŒã ããã€ãº ãªãã¯ã·ã§ã³ã解å床ãå¶åŸ¡ããããŒã«ãè¿œå ãããŸããã
- éçºè
ããŒã« (DevTools) ãæ¹åãããæŽæ°ããããŠã£ãžã§ããæ€æ»ã¢ãŒãã®ã»ããã¬ã³ããªã³ã°é
延ãç¹å®ããã·ã§ãŒã㌠ã³ã³ãã€ã«ã远跡ããããã®ããŒã«ãè¿œå ãããŸããã
- Visual Studio Code ããã³ IntelliJ/Android Studio ã®ãã©ã°ã€ã³ãæ¹åãããŸããã
åºæïŒ ãªãŒãã³ããã.ru