ዳርት 2.14 ቋንቋ እና ፍሉተር 2.5 ማዕቀፍ ይገኛል።

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

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

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

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

  • አዲስ የሶስትዮሽ ፈረቃ ኦፕሬተር (>>) ተጨምሯል ፣ እሱም ከ “>> ኦፕሬተር በተለየ ፣ የሂሳብ ስራን ሳይሆን ፣ የምልክት ቢትን ከግምት ውስጥ ሳያስገባ የሚሰራ የሎጂካዊ ለውጥ (ፈረቃው የሚከናወነው ወደ ሳይከፋፈል ነው) አወንታዊ እና አሉታዊ ቁጥሮች).
  • አጠቃላይ የተግባር አይነቶችን እንደ ነጋሪ እሴት እንዳይጠቀሙ የሚከለክለው የአይነት ነጋሪ እሴት ላይ ያለውን ገደብ ተወግዷል። ለምሳሌ፣ አሁን መግለጽ ይችላሉ፡ ዘግይቶ ዝርዝር (ቲ)> id ተግባራት; var መልሶ ጥሪ = [ (ቲ እሴት) => ዋጋ]; ዘግይቶ S ተግባር (ቲ)>(S) f;
  • እንደ @Deprecated ባሉ ማብራሪያዎች ውስጥ ነጋሪ እሴቶችን ከአይነቶች ጋር መግለጽ ይፍቀዱ። ለምሳሌ፡ አሁን፡ @TypeHelperን መግለጽ ትችላለህ (42, "ትርጉሙ")
  • የማይንቀሳቀሱ ስልቶች hash፣ hashAll እና hashAllUnordered ወደ መደበኛው ቤተ-መጽሐፍት (ኮር) በነገር ክፍል ውስጥ ተጨምረዋል። የDateTime ክፍል በበጋ እና በክረምት መካከል ሰዓቶችን በአንድ ሰዓት ውስጥ የማይከፋፈሉ ሲቀይሩ የአካባቢን ጊዜ አያያዝ አሻሽሏል (ለምሳሌ በአውስትራሊያ ውስጥ የ30 ደቂቃ ማካካሻ ጥቅም ላይ ይውላል)። የ ffi ጥቅሉ ለ Arena ማህደረ ትውስታ ድልድል ዘዴ ድጋፍን ጨምሯል ፣ ይህም ሀብቶችን በራስ-ሰር ያወጣል። የ ffigen ጥቅል የDart አይነቶችን ከC ቋንቋ የታይፕ ዲፍ ፍቺዎችን የማመንጨት ችሎታን አክሏል።
  • ከ pub.dev ማከማቻ ውስጥ 250 በጣም ታዋቂው ፓኬጆች እና 94% የከፍተኛ-1000 "ኑል ሴፍቲ" ሁነታን ወደ መጠቀም ተለውጠዋል, ይህም ዋጋቸው ያልተገለፀ እና ወደ "Null" ተቀናብሯል በተለዋዋጮች ሙከራ ምክንያት የሚመጡ ብልሽቶችን ያስወግዳል. ” ሁነታው የሚያመለክተው ተለዋዋጮች ዋጋ ቢስ በሆነ መልኩ ካልተመደቡ በስተቀር ባዶ ​​እሴቶች ሊኖራቸው እንደማይችል ነው። ሁነታው ተለዋዋጭ ዓይነቶችን በጥብቅ ያከብራል, ይህም ማጠናከሪያው ተጨማሪ ማመቻቸትን እንዲጠቀም ያስችለዋል. የመተዳደሪያ ደንብ በተጠናቀረበት ጊዜ ላይ ምልክት ይደረግበታል፡ ለምሳሌ፡- “Null” የሚለውን እሴት ለተለዋዋጭ እንደ “int” የማይገልጽ ዓይነት ለመመደብ ከሞከሩ ስህተት ይታያል።
  • ለዳርት እና ለFlutter ማዕቀፍ የኮድ ዘይቤ መመሪያዎችን መከበራቸውን ለማረጋገጥ በአንድ ጊዜ ድጋፍ በመስጠት ለኮድ ​​ተንታኝ (ሊንተር) የተዋሃዱ ህጎች ቀርበዋል። በታሪካዊ ምክንያቶች የፍሉተር እና የዳርት ኮድ ኮድ ደንቦች የተለያዩ ነበሩ፣ በተጨማሪም፣ ለዳርት ሁለት አይነት ደንቦች ጥቅም ላይ ውለው ነበር - ከGoogle እና ከዳርት ገንቢ ማህበረሰብ የመጡ ህጎች። ዳርት 2.14 ለሊንተር አዲስ የጋራ ደንቦችን ያስተዋውቃል፣ እሱም በነባሪነት በአዲስ ዳርት ፕሮጀክቶች እና በFlutter ኤስዲኬ ውስጥ ጥቅም ላይ እንዲውል ተወስኗል። ስብስቡ ዋና ደንቦችን (lints/core.yaml ጥቅል)፣ የሚመከሩ ተጨማሪ ደንቦችን (lints/recommended.yaml) እና የFlutter-ተኮር ምክሮችን (flutter_lints/flutter.yaml) ያካትታል። የፔዳንቲክ ህጎች ተጠቃሚዎች ከዳርት ዶክመንቴሽን በተሰጡት ምክሮች መሰረት ወደ አዲስ የኮዲንግ ዘይቤ እንዲቀይሩ ይመከራሉ።
  • በቅርጸት ውስጥ፣ የካስካዲንግ ኮድ ብሎኮችን ለመቅረጽ ማመቻቸት ተደርገዋል፣ ይህም የቅርጸት አፈጻጸምን በእጅጉ ሊያሻሽል እና የገለጻ አካላትን ባለቤትነት አሻሚ ትርጓሜ ሊያስቀር ይችላል። ለምሳሌ "..doIt" በመደወል "var result = errorState ? foo : bad..doIt()” የ“መጥፎ” ብሎክ ሁኔታዊ ክፍልን አይመለከትም ፣ ግን አጠቃላይ አገላለጹን እንጂ ፣ ሲቀርጸው አሁን ተለያይቷል፡ var result = errorState? foo: መጥፎ ..doIt();
  • የአፕል ኤም 1 (ሲሊኮን) ፕሮሰሰር ድጋፍ ወደ ኤስዲኬ ተጨምሯል ፣ይህም ሁለቱንም የዳርት ቪኤም ፣ መገልገያዎችን እና ኤስዲኬ አካላትን ከ Apple Silicon ፕሮሰሰር ጋር የማስኬድ ችሎታ እና ለእነዚህ ቺፕስ ሊተገበሩ የሚችሉ ፋይሎችን የማጠናቀር ድጋፍን ያሳያል።
  • የ "ዳርት ፐብ" ትዕዛዝ ለአዲሱ የአገልግሎት ፋይል ".pubignore" ድጋፍ አክሏል, ይህም ጥቅል ወደ pub.dev ማከማቻ ሲታተም የሚዘለሉ ፋይሎችን ዝርዝር እንዲገልጹ ያስችልዎታል. እነዚህ ቅንጅቶች በ ".gitignore" ችላ ዝርዝር ውስጥ ጣልቃ አይገቡም (በአንዳንድ ሁኔታዎች pub.dev በ Git ውስጥ የሚያስፈልጉትን ፋይሎች ከማስተላለፍ መቆጠብ ሊፈልግ ይችላል, ለምሳሌ, በግንባታ ወቅት ጥቅም ላይ የሚውሉ የውስጥ ስክሪፕቶች).
  • የስሪት ቁጥሩ ካልተቀየረ pubspec ን ከተቀየረ በኋላ እንደገና የማጠናቀር ሙከራዎችን የማይፈልገው የ "ዳርት ፈተና" ትዕዛዝን አፈጻጸም ለማሻሻል ስራ ተሰርቷል።
  • በ ECMAScript 5 ተኳሃኝነት ሁነታ ላይ የማጠናቀር ድጋፍ ተቋርጧል (ለውጡ ከ IE11 አሳሽ ጋር ተኳሃኝነትን ያስከትላል)።
  • በዳርት መገልገያ በኩል በተጠሩ ውስጠ ግንቡ ትዕዛዞች የተተኩ የግለሰብ መገልገያዎች መድረክ፣ dartfmt እና dart2native ጊዜ ያለፈባቸው መሆናቸው ተነግሯል።
  • የVM ቤተኛ ቅጥያዎች ዘዴ ተቋርጧል። ቤተኛ ኮድ ከዳርት ኮድ ለመደወል አዲሱን የዳርት FFI (የውጭ ተግባር በይነገጽ) ለመጠቀም ይመከራል።

በተመሳሳይ ጊዜ የተጠቃሚ በይነገጽ ማዕቀፍ ፍሉተር 2.5 ጉልህ የሆነ ልቀት ቀርቧል ፣ እሱም እንደ React Native እንደ አማራጭ የሚቆጠር እና በአንድ ኮድ መሠረት ላይ ለ iOS ፣ Android ፣ Windows ፣ MacOS እና Linux መተግበሪያዎችን ለመልቀቅ ያስችላል። መድረኮችን, እንዲሁም በአሳሾች ውስጥ ለመስራት መተግበሪያዎችን ይፍጠሩ. በGoogle የተገነባው ለFuchsia ማይክሮከርነል ኦፕሬቲንግ ሲስተም ብጁ ሼል በFlutter መሰረት ነው የተሰራው።

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

በFlutter 2.5 ውስጥ ዋና ለውጦች፡-

  • ጉልህ የአፈጻጸም ማሻሻያዎችን አድርጓል። በ iOS እና macOS መድረኮች ላይ ለብረት ግራፊክስ ኤፒአይ የሼዶች ቅድመ ዝግጅት ተተግብሯል። ያልተመሳሰሉ ክስተቶችን የማስኬድ ቅልጥፍና የተሻሻለ። ቆሻሻ ሰብሳቢው ጥቅም ላይ ካልዋሉ ምስሎች ማህደረ ትውስታን በሚመልስበት ጊዜ የመዘግየቶች ችግር ተፈቷል (ለምሳሌ፣ የ20 ሰከንድ አኒሜሽን ጂአይኤፍ በሚጫወትበት ጊዜ፣ የቆሻሻ አሰባሰብ ስራዎች ብዛት ከ400 ወደ 4 ቀንሷል። በዳርት እና አላማ መካከል መልዕክቶችን ሲያስተላልፉ መዘግየቶች- ሲ/ስዊፍት ወደ 50% (አይኦኤስ) ወይም ጃቫ/ኮትሊን (አንድሮይድ) በአፕል ሲሊከን ቺፕ ላይ ለተመሠረተ የስርዓቶች ቤተኛ ግንባታ ድጋፍ ታክሏል።
    ዳርት 2.14 ቋንቋ እና ፍሉተር 2.5 ማዕቀፍ ይገኛል።
  • ለአንድሮይድ መድረክ፣ አፕሊኬሽኖችን በሙሉ ስክሪን ሁነታ ለማሄድ ድጋፍ ተመስርቷል። እንደ ቀጣዩ ትውልድ የቁሳቁስ ንድፍ አማራጭ የቀረበው የ "ቁሳቁስ እርስዎ" ንድፍ ጽንሰ-ሀሳብ ትግበራ ቀጥሏል. አዲስ ግዛት MaterialState.scrolledUnder ታክሏል፣መጠን ሲቀየር ተለዋዋጭ የማሸብለል አሞሌዎች ማሳያ ተተግብሯል፣ እና የማሳወቂያ ሰንደቆችን ለማሳየት አዲስ በይነገጽ ሀሳብ አቅርቧል።
  • የካሜራ ተሰኪው አቅም በከፍተኛ ሁኔታ ተስፋፍቷል፣ አውቶማቲክን ለመቆጣጠር፣ መጋለጥ፣ ብልጭታ፣ ማጉላት፣ የድምጽ መቀነሻ እና መፍታት።
  • የገንቢ መሳሪያዎች (DevTools) የዘመነ መግብር ፍተሻ ሁነታን እንዲሁም መዘግየቶችን ለመለየት እና የሻደር ማሰባሰብን ለመከታተል የሚረዱ መሳሪያዎች ተሻሽለዋል።
    ዳርት 2.14 ቋንቋ እና ፍሉተር 2.5 ማዕቀፍ ይገኛል።
  • ለ Visual Studio Code እና IntelliJ/አንድሮይድ ስቱዲዮ የተሻሻሉ ተሰኪዎች።

ምንጭ: opennet.ru

አስተያየት ያክሉ