ዳርት 2.15 የፕሮግራም አወጣጥ ቋንቋ እና ፍሉተር 2.8 ማዕቀፍ ይገኛል።

ጎግል የዳርት 2.15 ፕሮግራሚንግ ቋንቋን ለቋል። አያስፈልግም፣ ነገር ግን ተለዋዋጭ ትየባ ከአሁን በኋላ ጥቅም ላይ አይውልም እና መጀመሪያ ላይ የተሰላው አይነት ለተለዋዋጭ ይመደባል እና ከዚያ ጥብቅ ዓይነት ፍተሻ ይተገበራል።

የዳርት ቋንቋ ባህሪዎች

  • ለጃቫ ስክሪፕት፣ ሲ እና ጃቫ ፕሮግራመሮች ተፈጥሯዊ የሆነ የተለመደ እና ለመማር ቀላል የሆነ አገባብ።
  • ፈጣን ጅምር እና ከፍተኛ አፈፃፀም ለሁሉም ዘመናዊ የድር አሳሾች እና ለተለያዩ የአካባቢ ዓይነቶች ከተንቀሳቃሽ መሳሪያዎች እስከ ኃይለኛ አገልጋዮች መስጠት።
  • ማቀፊያን ለማንቃት እና ያሉትን ዘዴዎች እና መረጃዎች እንደገና ለመጠቀም ክፍሎችን እና በይነገጾችን የመግለጽ ችሎታ።
  • ዓይነቶችን መግለጽ ስህተቶችን ለማረም እና ለመለየት ቀላል ያደርገዋል, ኮዱን የበለጠ ግልጽ እና የበለጠ ለማንበብ ያደርገዋል, እና የሶስተኛ ወገን ገንቢዎች ለማጣራት እና ለመተንተን ቀላል ያደርገዋል.
  • ከሚደገፉት ዓይነቶች መካከል፡- የተለያዩ የሃሽ ዓይነቶች፣ ድርድሮች እና ዝርዝሮች፣ ወረፋዎች፣ የቁጥር እና የሕብረቁምፊ አይነቶች፣ የቀን እና የሰዓት አይነቶች፣ መደበኛ መግለጫዎች (RegExp)። የእራስዎን ዓይነቶች መፍጠር ይቻላል.
  • ትይዩ ማስፈጸሚያን ለማደራጀት መልእክቶችን በመላክ ከዋናው ሂደት ጋር መስተጋብር በተለየ የማስታወሻ ቦታ ውስጥ ሙሉ በሙሉ የሚፈፀመውን ልዩ ባህሪ ያላቸውን ክፍሎች እንዲጠቀሙ ይመከራል ።
  • የትላልቅ የድር ፕሮጀክቶችን ድጋፍ እና ማረም ቀላል የሚያደርግ የቤተ-መጻህፍት አጠቃቀም ድጋፍ። የሶስተኛ ወገን ትግበራዎች እንደ የጋራ ቤተ-መጽሐፍት ሊካተቱ ይችላሉ. አፕሊኬሽኖች ወደ ክፍሎች ሊከፋፈሉ እና የእያንዳንዱ ክፍል እድገት ለተለየ የፕሮግራም አውጪዎች ቡድን ሊመደብ ይችላል።
  • በዳርት ቋንቋ ልማትን ለመደገፍ ዝግጁ የሆኑ መሳሪያዎች ስብስብ፣ ተለዋዋጭ የልማት መሳሪያዎችን መተግበር እና በበረራ ላይ በኮድ እርማት ማረም ("አርትዕ-እና-ቀጥል")።
  • ኤስዲኬ፣ የመጠጥ ቤት ፓኬጅ አስተዳዳሪ፣ የዳርት_አናላይዘር የማይንቀሳቀስ ኮድ ተንታኝ፣ የቤተ-መጻህፍት ስብስብ፣ የዳርትፓድ አይዲኢ እና ዳርት የነቁ ፕለጊኖች ለIntelliJ IDEA፣ WebStorm፣ Emacs፣ Sublime Text 2 እና Vim የዳርት ልማትን ለማቃለል ቀርቧል።
  • ቤተ-መጻሕፍት እና መገልገያ ያላቸው ተጨማሪ ፓኬጆች 22 ሺህ ያህል ፓኬጆች ባለው መጠጥ ቤት ማከማቻ በኩል ይሰራጫሉ።

በዳርት 2.15 መለቀቅ ላይ ቁልፍ ለውጦች፡-

  • ከተቆጣጣሪዎች መነጠል ስራዎችን በፍጥነት በትይዩ ለማስፈጸሚያ መሳሪያዎችን ያቀርባል። በባለብዙ ኮር ሲስተሞች፣ Dart Runtime በነባሪ የመተግበሪያ ኮድን በአንድ ሲፒዩ ኮር ያስኬዳል እና እንደ ያልተመሳሰለ I/O፣ ፋይሎችን መጻፍ ወይም የአውታረ መረብ ጥሪዎችን ለማድረግ ሌሎች ኮሮችን ይጠቀማል። ተቆጣጣሪዎቻቸውን በትይዩ ማስፈፀም ለሚፈልጉ አፕሊኬሽኖች ለምሳሌ በበይነገፁ ላይ አኒሜሽን ለመስራት ፣የተለያዩ የኮድ ብሎኮችን ማስጀመር ይቻላል (ገለልተኛ) ፣ አንዳቸው ከሌላው የተነጠሉ እና በሌሎች ሲፒዩ ኮሮች ላይ በተመሳሳይ ጊዜ ከዋናው መተግበሪያ ክር ጋር ተፈፃሚ ይሆናሉ ። . በተመሳሳይ የውሂብ ስብስብ የሚሰራ ኮድ በአንድ ጊዜ ሲተገበር ከሚፈጠሩ ስህተቶች ለመከላከል፣ የሚለዋወጡ ዕቃዎችን በተለያዩ የተገለሉ ብሎኮች ውስጥ ማጋራት የተከለከለ ሲሆን የመልእክት ማስተላለፍ ሞዴል በተቆጣጣሪዎች መካከል መስተጋብር ለመፍጠር ጥቅም ላይ ይውላል።

    ዳርት 2.15 አዲስ ፅንሰ-ሀሳብ ያስተዋውቃል - የተለዩ የማገጃ ቡድኖች (የገለልተኛ ቡድኖች) ፣ ይህም የአንድ ቡድን አካል በሆኑ በገለልተኛ ብሎኮች ውስጥ የተለያዩ የውስጥ የውሂብ አወቃቀሮችን የጋራ ተደራሽነት እንዲያደራጁ ያስችልዎታል ፣ ይህም በቡድን ውስጥ ባሉ ተቆጣጣሪዎች መካከል በሚገናኙበት ጊዜ ከአናት በላይ ሊቀንስ ይችላል ። . ለምሳሌ በነባር ቡድን ውስጥ ተጨማሪ ማግለል ብሎክን ማስጀመር 100 እጥፍ ፈጣን ሲሆን የተለየ የማግለል ብሎክ ከመጀመር ከ10-100 እጥፍ ያነሰ ማህደረ ትውስታን ይፈልጋል የፕሮግራም ዳታ አወቃቀሮችን የማስጀመር አስፈላጊነት በመጥፋቱ።

    ምንም እንኳን በቡድን ውስጥ ያሉ ማገጃዎች የሚለዋወጡትን ነገሮች በጋራ መጠቀምን የሚከለክሉ ቢሆኑም ቡድኖቹ የጋራ ክምር ማህደረ ትውስታን ይጠቀማሉ ፣ ይህም የነገሮችን ይዘት ከአንድ ብሎክ ወደ ሌላ በፍጥነት ማስተላለፍን በከፍተኛ ሁኔታ ሊያፋጥን ይችላል ። አዲሱ እትም ወደ Isolate.exit() ሲደውሉ የተቆጣጣሪውን ውጤት እንዲያሳልፉ ይፈቅድልዎታል። በተጨማሪም ፣ የመልእክት ማስተላለፊያ ዘዴው ተሻሽሏል - ትናንሽ እና መካከለኛ መልዕክቶች አሁን በግምት 8 ጊዜ ያህል በፍጥነት ይሰራሉ። የ SendPort.send() ጥሪን በመጠቀም በገለልተኛ መካከል ሊተላለፉ የሚችሉ ነገሮች አንዳንድ አይነት ተግባራትን፣ መዝጊያዎችን እና የቁልል መከታተያዎችን ያካትታሉ።

  • በሌሎች ነገሮች ውስጥ ወደ ግለሰባዊ ተግባራት አመላካቾችን ለመፍጠር በሚጠቀሙባቸው መሳሪያዎች ውስጥ (እንባ) በኮንስትራክተር ኮድ ውስጥ ተመሳሳይ ጠቋሚዎችን የመፍጠር ገደቦች ተወግደዋል ፣ ይህም በ Flutter ቤተ-መጽሐፍት ላይ በመመስረት መገናኛዎችን ሲገነቡ ጠቃሚ ሊሆን ይችላል። ለምሳሌ፣ በርካታ የጽሁፍ መግብሮችን የሚያካትት የአምድ መግብር ለመፍጠር፣ ".map()" በመደወል ጠቋሚዎችን ወደ Text.new ገንቢው የጽሁፍ ነገር ማስተላለፍ ይችላሉ፡ ክፍል ፍሬውዋይጅ ሀገር አልባ መግብርን ያራዝማል {@override Widget build(BuildContext context) {መመለሻ አምድ (ልጆች፡ ['አፕል'፣ 'ብርቱካን']])። ካርታ (Text.new) .toList()); }
  • ከተግባር ጠቋሚዎች አጠቃቀም ጋር የተያያዙ እድሎች ተዘርግተዋል. አጠቃላይ ያልሆነ ዘዴ እና ጠቋሚ ለመፍጠር አጠቃላይ ዘዴዎችን እና የተግባር አመልካቾችን የመጠቀም ችሎታ ታክሏል፡ ቲ መታወቂያ (ቲ እሴት) => ዋጋ; var intId = መታወቂያ ; // በ "int Function(int) intId = id;" ፈንታ በስሪት 2.15 ተፈቅዷል። const fo = id; // ወደ ተግባር መታወቂያ ጠቋሚ። const c1 = fo ;
  • የዳርት፡ኮር ቤተ መፃህፍቱ ለኢነምዎች ድጋፍን አሻሽሏል፡ ለምሳሌ፡ አሁን የ‹‹.name›› ዘዴን በመጠቀም ከእያንዳንዱ የቁጥር እሴት የሕብረቁምፊ እሴት ማውጣት ትችላለህ፣ እሴቶችን በስም ምረጥ፣ ወይም ጥንድ እሴቶችን ማዛመድ፡ enum MyEnum {አንድ , ሁለት, ሶስት} ባዶ ዋና () {ህትመት (MyEnum.one.name); // "አንድ" ይታተማል. ማተም (MyEnum.values.byName ('ሁለት') == MyEnum.two); // "እውነት" ይታተማል። የመጨረሻ ካርታ = MyEnum.values.asNameMap (); ማተም (ካርታ ['ሦስት'] == MyEnum.three); // "እውነት" }
  • ባለ 64 ቢት የአድራሻ ቦታ ለአድራሻ በቂ ከሆነ (ከ 32 ጂቢ በላይ ማህደረ ትውስታ ጥቅም ላይ የማይውል ከሆነ) በ 4 ቢት አከባቢዎች ውስጥ የጠቋሚዎችን ውክልና ለመጠቀም የሚያስችል የጠቋሚ መጭመቂያ ቴክኒክ ተተግብሯል። ሙከራዎች እንደሚያሳዩት እንዲህ ዓይነቱ ማመቻቸት የክብሩን መጠን በ 10% ገደማ ለመቀነስ ያስችላል. በFlutter ኤስዲኬ አዲሱ ሁነታ አስቀድሞ በነባሪነት ለአንድሮይድ ነቅቷል፣ እና ወደፊት በሚለቀቅበት ጊዜ ለአይኦኤስ እንዲነቃ ታቅዷል።
  • ዳርት ኤስዲኬ ከዚህ ቀደም በተለየ ጥቅል ውስጥ የቀረቡትን የማረም እና የአፈጻጸም ትንተና (DevTools) መሳሪያዎችን ያካትታል።
  • ሚስጥራዊ መረጃ በአጋጣሚ መታተምን ለመከታተል መሳሪያዎች ወደ "ዳርት pub" ትዕዛዝ እና በ pub.dev ጥቅል ማከማቻዎች ላይ ተጨምረዋል፣ ለምሳሌ በጥቅሉ ውስጥ ለተከታታይ የውህደት ስርዓቶች እና የደመና አከባቢዎች ምስክርነቶችን ይተዋል። እንደዚህ አይነት ፍሳሾች ከተገኙ የ"ዳርት መጠጥ ቤት ህትመት" ትዕዛዝ አፈጻጸም በስህተት መልዕክት ይቋረጣል። የውሸት አወንታዊ ነገር ካለ፣ ቼኩን በነጭ ዝርዝር በኩል ማለፍ ይቻላል።
  • ቀደም ሲል የታተመውን የጥቅል እትም የመሻር ችሎታ ወደ pub.dev ማከማቻ ታክሏል፣ ለምሳሌ አደገኛ ስህተቶች ወይም ተጋላጭነቶች ከተገኙ። ከዚህ ቀደም ለእንደዚህ አይነት እርማቶች, ልምምዱ የማስተካከያ እትም ማተም ነበር, ነገር ግን በአንዳንድ ሁኔታዎች ነባሩን መሰረዝ እና ተጨማሪ ስርጭቱን በአስቸኳይ ማቆም አስፈላጊ ነው (ለምሳሌ, እርማቱ ገና ዝግጁ ካልሆነ ወይም ሙሉ በሙሉ ከተለቀቀ) ከሙከራ ስሪት ይልቅ በስህተት የታተመ)። ከተሻረ በኋላ ጥቅሉ በ"pub get" እና "pub upgrade" ትዕዛዞች ውስጥ ተለይቶ አይታወቅም እና ቀደም ሲል በጫኑት ስርዓቶች ላይ " pub get" በሚፈፀምበት ጊዜ ልዩ ማስጠንቀቂያ ይሰጣል.
  • የማሳያውን ቅደም ተከተል በሚቀይሩ ኮድ ውስጥ የዩኒኮድ ቁምፊዎችን በመጠቀም ለተጋላጭነት (CVE-2021-22567) ተጨማሪ ጥበቃ።
  • የ pub.dev oauth2021 የመዳረሻ ቶከኖችን ለሚቀበል የሶስተኛ ወገን አገልጋይ ፓኬጆችን በሚያትሙበት ጊዜ ሌላ pub.dev ተጠቃሚን ለማስመሰል የሚያስችልዎት ቋሚ ተጋላጭነት (CVE-22568-2)። ለምሳሌ፣ ተጋላጭነቱ የውስጥ እና የድርጅት ጥቅል አገልጋዮችን ለማጥቃት ሊያገለግል ይችላል። በ pub.dev ላይ ጥቅሎችን ብቻ የሚያስተናግዱ ገንቢዎች በዚህ ችግር አይነኩም።

በተመሳሳይ ጊዜ የተጠቃሚ በይነገጽ ማዕቀፍ ፍሉተር 2.8 ጉልህ የሆነ ልቀት ቀርቧል ፣ እሱም እንደ React Native እንደ አማራጭ የሚቆጠር እና በአንድ ኮድ መሠረት ላይ በመመርኮዝ ለ iOS ፣ Android ፣ Windows ፣ MacOS እና መተግበሪያዎችን ለመልቀቅ ያስችላል። የሊኑክስ መድረኮች፣ እንዲሁም በአሳሾች ውስጥ የሚሰሩ መተግበሪያዎችን ይፍጠሩ። በGoogle የተገነባው ለFuchsia ማይክሮከርነል ኦፕሬቲንግ ሲስተም ብጁ ሼል በFlutter መሰረት ነው የተሰራው። ባለፉት ስድስት ወራት ውስጥ በጎግል ፕሌይ ስቶር ውስጥ የFlutter 2 አፕሊኬሽኖች ቁጥር ከ200 ሺህ ወደ 375 ሺህ ከፍ ማለቱን ተጠቁሟል። ሁለት ጊዜ ማለት ይቻላል.

አብዛኛው የFlutter ኮድ በዳርት ውስጥ ይተገበራል፣ እና መተግበሪያዎችን ለማስኬድ የሩጫ ጊዜ ሞተር በC++ ተጽፏል። አፕሊኬሽኖችን በሚገነቡበት ጊዜ፣ ከFlutter የዳርት ቋንቋ በተጨማሪ፣ ወደ C/C++ ኮድ ለመደወል የዳርት የውጭ ተግባር በይነገጽን መጠቀም ይችላሉ። ለዒላማ መድረኮች መተግበሪያዎችን ወደ ቤተኛ ኮድ በማዘጋጀት ከፍተኛ የሩጫ ጊዜ አፈጻጸም ተገኝቷል። በተመሳሳይ ጊዜ መርሃግብሩ ከእያንዳንዱ ለውጥ በኋላ እንደገና ማጠናቀር አያስፈልገውም - ዳርት በአሂድ ትግበራ ላይ ለውጦችን እንዲያደርጉ እና ውጤቱን ወዲያውኑ እንዲገመግሙ የሚያስችል የሞቀ ዳግም ጭነት ሁነታን ይሰጣል።

በአዲሱ የFlutter ልቀት ላይ ከተደረጉት ለውጦች መካከል የማስጀመሪያ ፍጥነት እና የማህደረ ትውስታ ፍጆታ በሞባይል መሳሪያዎች ላይ ማመቻቸት ተጠቁሟል። መተግበሪያዎችን እንደ ፋየርቤዝ እና ጎግል ክላውድ ካሉ የድጋፍ ሰጪ አገልግሎቶች ጋር ማገናኘት ቀላል ነው። ከጎግል ማስታወቂያ ጋር የመዋሃድ መሳሪያዎች ተረጋግተዋል። ለካሜራዎች እና የድር ተሰኪዎች ድጋፍ በከፍተኛ ሁኔታ ተሻሽሏል። ልማትን ለማቃለል አዳዲስ መሳሪያዎች ቀርበዋል ለምሳሌ፡Firebaseን በመጠቀም ለማረጋገጥ መግብር ተጨምሯል። Flutterን በመጠቀም 2D ጨዋታዎችን ለማዘጋጀት የተነደፈው የፍላም ሞተር ተዘምኗል።

ምንጭ: opennet.ru

አስተያየት ያክሉ