Dart 2.14 тілі және Flutter 2.5 фреймворк қол жетімді

Google Dart 2.14 бағдарламалау тілінің шығарылымын жариялады, ол Dart 2-тің түбегейлі қайта жасақталған тармағын дамытуды жалғастырады, ол Dart тілінің бастапқы нұсқасынан күшті статикалық теруді қолданумен ерекшеленеді (түрлер автоматты түрде шығарылуы мүмкін, сондықтан типтерді көрсету қажет емес, бірақ динамикалық теру бұдан былай пайдаланылмайды және бастапқыда түр айнымалыға тағайындалады және кейіннен қатаң типті тексеру қолданылады).

Дарт тілінің ерекшеліктері:

  • Таныс және үйренуге оңай синтаксис, JavaScript, C және Java бағдарламашылары үшін табиғи.
  • Портативті құрылғылардан қуатты серверлерге дейінгі барлық заманауи веб-шолғыштар мен әртүрлі орта түрлері үшін жылдам іске қосуды және жоғары өнімділікті қамтамасыз ету.
  • Бар әдістер мен деректерді инкапсуляциялауға және қайта пайдалануға мүмкіндік беретін сыныптар мен интерфейстерді анықтау мүмкіндігі.
  • Түрлерді көрсету қателерді түзетуді және анықтауды жеңілдетеді, кодты түсінікті және оқылатын етеді және үшінші тарап әзірлеушілерімен оны өзгерту мен талдауды жеңілдетеді.
  • Қолдау көрсетілетін түрлерге мыналар жатады: хэштердің әртүрлі түрлері, массивтер мен тізімдер, кезектер, сандық және жолдық типтер, күн мен уақытты анықтауға арналған типтер, тұрақты өрнектер (RegExp). Өз түрлеріңізді жасауға болады.
  • Параллельді орындауды ұйымдастыру үшін коды толығымен оқшауланған кеңістікте жеке жад аймағында орындалатын, хабарламаларды жіберу арқылы негізгі процесспен әрекеттесетін оқшауланған атрибутты кластарды пайдалану ұсынылады.
  • Үлкен веб-жобаларды қолдауды және жөндеуді жеңілдететін кітапханаларды пайдалануды қолдау. Функциялардың үшінші тарап іске асырулары ортақ кітапханалар түрінде қосылуы мүмкін. Қолданбаларды бөліктерге бөлуге және әрбір бөлікті әзірлеуді бағдарламашылардың жеке тобына тапсыруға болады.
  • Dart тіліндегі әзірлеуді қолдауға арналған дайын құралдар жиынтығы, соның ішінде динамикалық әзірлеуді және кодты жылдам түзетумен түзету құралдарын енгізу («өңдеу-және жалғастыру»).
  • Dart тілінде әзірлеуді жеңілдету үшін ол SDK, пакет менеджері пабы, dart_analyzer статикалық код анализаторы, кітапханалар жинағы, DartPad біріктірілген өңдеу ортасы және IntelliJ IDEA, WebStorm, Emacs, Sublime Text үшін Dart қолдайтын плагиндермен бірге келеді. 2 және Vim.
  • Кітапханалары мен утилиталары бар қосымша пакеттер паб репозиторийі арқылы таратылады, онда 20 мыңнан астам пакеттер бар.

Dart 2.14 шығарылымындағы негізгі өзгерістер:

  • Жаңа үш ауысым операторы (>>>) қосылды, ол «>>» операторынан айырмашылығы арифметиканы емес, таңба разрядын есепке алмай жұмыс істейтін логикалық жылжуды орындайды (ауысуы бөлусіз орындалады). оң және теріс сандар).
  • Жалпы функция түрлерін түр аргументі ретінде пайдалануды болдырмайтын түр аргументтеріне шектеу жойылды. Мысалы, енді сіз келесіні көрсете аласыз: кеш тізім (T)>idFunctions; var кері қоңырау = [ (T мәні) => мән]; кеш S функциясы (T)>(S) f;
  • @Deprecated сияқты аннотациялардағы түрлері бар аргументтерді көрсетуге рұқсат беріңіз. Мысалы, енді мынаны көрсетуге болады: @TypeHelper (42, «Мағынасы»)
  • hash, hashAll және hashAllUnordered статикалық әдістері Object класындағы стандартты кітапханаға (негізгі) қосылды. DateTime класы бір сағатқа бөлінбейтін жазғы және қысқы уақыт арасындағы сағаттарды түрлендіру кезінде жергілікті уақытты өңдеуді жақсартты (мысалы, Австралияда 30 минуттық ығысу қолданылады). ffi бумасы ресурстарды автоматты түрде шығаратын арена жадын бөлу механизміне қолдау қосты. Ffigen бумасы C тілінен Dart түрлерінің typedef анықтамаларын жасау мүмкіндігін қосты.
  • pub.dev репозиторийіндегі ең танымал 250 пакет және 94 топтың 1000%-ы мәні анықталмаған және «Нөл» мәніне орнатылған айнымалы мәндерді пайдалану әрекеттерінен туындаған бұзылуларды болдырмайтын «нөлдік қауіпсіздік» режимін пайдалануға ауыстырылды. » » Режим айнымалы мәндерге нақты нөлдік мән тағайындалмайынша нөлдік мәндерге ие болмайтынын білдіреді. Режим айнымалы типтерді қатаң сақтайды, бұл компиляторға қосымша оңтайландыруларды қолдануға мүмкіндік береді. Түрдің сәйкестігі компиляция уақытында тексеріледі, мысалы, «Int» сияқты анықталмаған күйді білдірмейтін түрдегі айнымалыға «Null» мәнін тағайындауға әрекеттенсеңіз, қате көрсетіледі.
  • Dart және Flutter құрылымына арналған код стилі нұсқауларына сәйкестікті тексеруге бір уақытта қолдау көрсететін код анализаторына (линтер) арналған ережелердің бірыңғай жинақтары ұсынылады. Тарихи себептерге байланысты Flutter және Dart кодтау ережелері әртүрлі болды, сонымен қатар, Dart үшін екі ережелер жиынтығы қолданылды - Google-дан педантикалық және Dart әзірлеушілер қауымдастығының ережелері. Dart 2.14 жаңа Dart жобаларында және Flutter SDK бағдарламасында әдепкі бойынша пайдалануға шешім қабылданған линтер үшін жаңа жалпы ережелер жинағын ұсынады. Жиынға негізгі ережелер (lints/core.yaml пакеті), ұсынылған қосымша ережелер (lints/recommended.yaml) және Flutter-арнайы ұсыныстар (flutter_lints/flutter.yaml) кіреді. Педантикалық ережелерді пайдаланушыларға Dart құжаттамасының ұсыныстарына негізделген жаңа кодтау стилін пайдалануға ауысу ұсынылады.
  • Пішімдеуіште каскадты код блоктарын пішімдеу үшін оңтайландырулар жасалды, бұл пішімдеу өнімділігін айтарлықтай жақсартады және өрнек элементтеріне иелік етудің екіұшты интерпретациясын болдырмайды. Мысалы, "var result = errorState" өрнегіндегі "..doIt" шақыру? foo : bad..doIt()” “жаман” блоктың шартты бөлігіне емес, бүкіл өрнекке қатысты, сондықтан пішімдеу кезінде ол енді бөлінеді: var result = errorState ? foo : нашар ..doIt();
  • Apple M1 (Silicon) процессорларына қолдау көрсету SDK жүйесіне қосылды, бұл Apple Silicon процессоры бар жүйелерде Dart VM, утилиталар мен SDK компоненттерін іске қосу мүмкіндігін және осы чиптер үшін орындалатын файлдарды құрастыруға қолдауды білдіреді.
  • "Dart pub" пәрмені буманы pub.dev репозиторийіне жариялау кезінде өткізіп жіберетін файлдар тізімін анықтауға мүмкіндік беретін ".pubignore" жаңа қызметтік файлына қолдауды қосты. Бұл параметрлер «.gitignore» елемеу тізіміне кедергі келтірмейді (кейбір жағдайларда pub.dev Git жүйесінде қажет файлдарды, мысалы, әзірлеу кезінде пайдаланылатын ішкі сценарийлерді тасымалдаудан аулақ болуы мүмкін).
  • Нұсқа нөмірі өзгермеген болса, pubspec өзгерткеннен кейін тесттерді қайта құрастыруды қажет етпейтін «дарт сынағы» пәрменінің өнімділігін жақсарту бойынша жұмыс жасалды.
  • ECMAScript 5 үйлесімділік режимінде компиляцияға қолдау көрсету тоқтатылды (өзгеріс IE11 браузерімен үйлесімділіктің жоғалуына әкеледі).
  • Stephand, dartfmt және dart2native жеке утилиталары ескірген деп жарияланды, олардың орнына dart утилитасы арқылы шақырылған кірістірілген пәрмендер ауыстырылды.
  • VM Native Extensions механизмі ескірген. Dart кодынан жергілікті кодты шақыру үшін жаңа Dart FFI (Шетелдік функция интерфейсі) пайдалану ұсынылады.

Сонымен қатар, Flutter 2.5 пайдаланушы интерфейсінің негізгі шығарылымы ұсынылды, ол React Native-ке балама ретінде қарастырылады және бір кодтық база негізінде iOS, Android, Windows, macOS және Linux үшін қосымшаларды шығаруға мүмкіндік береді. платформалар, сондай-ақ браузерлерде іске қосу үшін қолданбалар жасау. Google әзірлеген Fuchsia микроядролық операциялық жүйесіне арналған реттелетін қабық Flutter негізінде құрастырылған.

Flutter кодының негізгі бөлігі Dart тілінде жүзеге асырылады, ал қолданбаларды орындауға арналған жұмыс уақыты механизмі C++ тілінде жазылған. Қолданбаларды әзірлеу кезінде, Flutter-тің туған Dart тіліне қоса, C/C++ кодын шақыру үшін Dart Foreign Function интерфейсін пайдалануға болады. Жоғары орындау өнімділігі мақсатты платформалар үшін жергілікті кодқа қосымшаларды құрастыру арқылы қол жеткізіледі. Бұл жағдайда бағдарламаны әрбір өзгертуден кейін қайта құрастырудың қажеті жоқ - Dart іске қосылған қолданбаға өзгертулер енгізуге және нәтижені дереу бағалауға мүмкіндік беретін ыстық қайта жүктеу режимін қамтамасыз етеді.

Flutter 2.5 жүйесіндегі негізгі өзгерістер:

  • Маңызды өнімділікті оңтайландырулар жасалды. iOS және macOS платформаларында Metal graphics API үшін шейдерлерді алдын ала құрастыру жүзеге асырылды. Асинхронды оқиғаларды өңдеудің жақсартылған тиімділігі. Қоқыс жинаушы пайдаланылмаған кескіндерден жадты қалпына келтірген кездегі кідірістерге қатысты мәселе шешілді (мысалы, 20 секундтық анимациялық GIF ойнату кезінде қоқыс жинау әрекеттерінің саны 400-ден 4-ке дейін қысқарды. Dart және Objective- C/Swift 50% (iOS) немесе Java/Kotlin (Android) дейін төмендетілді Apple Silicon чипіне негізделген жүйелер үшін жергілікті құрастыру қолдауы қосылды.
    Dart 2.14 тілі және Flutter 2.5 фреймворк қол жетімді
  • Android платформасы үшін қолданбаларды толық экран режимінде іске қосуды қолдау орнатылды. Материалдық дизайнның келесі буын нұсқасы ретінде ұсынылған «Материал Сіз» дизайн тұжырымдамасын жүзеге асыру жалғасты. MaterialState.scrolledUnder жаңа күйі қосылды, өлшемін өзгерту кезінде айналдыру жолақтарының динамикалық дисплейі енгізілді және хабарландыру баннерлерін көрсету үшін жаңа интерфейс ұсынылды.
  • Камера қосылатын модулінің мүмкіндіктері айтарлықтай кеңейтілді, автофокусты, экспозицияны, жарқылды, масштабтауды, шуды азайтуды және ажыратымдылықты басқаруға арналған құралдар қосылды.
  • Әзірлеуші ​​құралдары (DevTools) жаңартылған виджетті тексеру режимін, сондай-ақ көрсету кідірістерін анықтауға және шейдер компиляциясын қадағалауға арналған құралдарды қамту үшін жетілдірілді.
    Dart 2.14 тілі және Flutter 2.5 фреймворк қол жетімді
  • Visual Studio Code және IntelliJ/Android Studio үшін жақсартылған плагиндер.

Ақпарат көзі: opennet.ru

пікір қалдыру