Доступны язык Dart 2.14 и фреймворк Flutter 2.5

Компания Google опубликовала релиз языка программирования Dart 2.14, продолживший развитие кардинально переработанной ветки Dart 2, которая отличается от изначального варианта языка Dart применением сильной статической типизации (типы могут выводиться автоматически, поэтому указание типов не является обязательным, но динамическая типизация больше не используется и вычисленный изначально тип закрепляется за переменной и в дальнейшем применяется строгая проверка типа).

Veçoritë e gjuhës Dart:

  • Sintaksë e njohur dhe e thjeshtë për t'u mësuar, e natyrshme për programuesit në JavaScript, C dhe Java.
  • Sigurimi i një fillimi të shpejtë dhe performance të lartë për të gjitha shfletuesit modernë dhe llojet e ndryshme të mjediseve, nga pajisjet portative deri te ato të fuqishme. serverësh.
  • Mundësia për të përcaktuar klasa dhe interface, duke lejuar përdorimin e inkapsulimit dhe ripërdorimin e metodave dhe të dhënave ekzistuese.
  • Shënimi i tipave lejon thjeshtimin e procesit të debugimit dhe identifikimit të gabimeve, e bën kodin më të qartë dhe më të lexueshëm, e lehtëson përmirësimin dhe analizën nga zhvilluesit e jashtëm.
  • Mes tipeve të mbështetur janë: llojet e ndryshme të hash-eve, masivave dhe listave, radhët, llojet numerike dhe string, tipet për përcaktimin e datës dhe orës, shprehjet e rregullta (RegExp). Ka mundësinë e krijimit të tipave të vet.
  • Për organizimin e ekzekutimit paralel, propozohet përdorimi i klasave me atributin isolate, kodi i të cilëve ekzekutohet plotësisht në një hapësirë të izoluar në një zonë të veçantë të memories, duke bashkëpunuar me procesin kryesor nëpërmjet dërgimit të mesazheve.
  • Mbështetje për përdorimin e bibliotekave që thjeshtojnë mbështetje dhe debugimin e projekteve të mëdha web. Implementimet e jashtme të funksioneve mund të lidhen si biblioteka të ndara. Aplikacionet mund të ndahen në pjesë dhe t'i besohet zhvillimi i secilës pjesë një ekipi të veçantë programuesish.
  • Një grup mjetesh të gatshme për mbështetje të zhvillimit në gjuhën Dart, duke përfshirë implementimin e mjeteve të zhvillimit dinamik dhe debugimit me korrigjimin e kodit në flukso («edit-and-continue»).
  • Për lehtësimin e zhvillimit në gjuhën Dart, ofrohet SDK, menaxheri i paketave pub, analizatori statik i kodit dart_analyzer, një grup bibliotekash, ambienti i integruar i zhvillimit DartPad dhe shtesat me mbështetje për Dart për IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 dhe Vim.
  • Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub, который насчитывает более 20 тысяч пакетов.

Основные изменения в выпуске Dart 2.14:

  • Добавлен новый оператор тройного сдвига (>>>), который в отличие от оператора «>>» выполняет не арифметический, а логический сдвиг, работающий без учёта знакового бита (сдвиг совершается без разделения на положительные и отрицательные числа).
  • Снято ограничение на аргументы типа, не позволявшие использовать общие типы функций в качестве аргумента с типом. Например, сейчас можно указывать: late List<T Function<T>(T)> idFunctions; var callback = [<T>(T value) => value]; late S Function<S extends T Function<T>(T)>(S) f;
  • Разрешено указание аргументов с типами в аннотациях, таких как @Deprecated. Например, теперь можно указывать: @TypeHelper<int>(42, «The meaning»)
  • В стандартную библиотеку (core) в класс Object добавлены статические методы hash, hashAll и hashAllUnordered. В классе DateTime улучшена обработка локального времени при переводе часов между летним и зимним временем не кратным одному часу (например, в Австралии используется смещение на 30 минут). В пакет ffi добавлена поддержка механизма выделения памяти arena, автоматически высвобождающего ресурсы. В пакет ffigen добавлена возможность генерации typedef-определений типов Dart из языка C.
  • 250 самых популярных пакетов из репозитория pub.dev и 94% из top-1000 переведены на применение режима безопасного использования значения «Null» (null safety), который позволят избежать крахов, вызванных попытками использования переменных, значение которых не определено и выставлено в «Null». Режим подразумевает, что переменные не могут иметь неопределённые значения, если им явно не присваивается значение null. В режиме строго учитываются типы переменных, что позволяет компилятору применять дополнительные оптимизации. Соответствие типов проверяется на этапе компиляции, например, в случае попытки присвоения значения «Null» переменной с типом, не подразумевающим неопределённое состояние, таким как «int», будет выведена ошибка.
  • Предложены унифицированные наборы правил для анализатора кода (linter), обеспечивающие одновременную поддержку проверки следования рекомендациям по стилю оформления кода для Dart и фреймворка Flutter. По историческим причинам правила оформления кода для Flutter и Dart отличались, кроме того для Dart в обиходе находилось два набора правил — педантичные от Google и правила от сообщества разработчиков Dart. В Dart 2.14 представлен новый общий набор правил для linter, который решено применять по умолчанию в новых проектах Dart и во Flutter SDK. Набор включает в себя базовые правила (пакет lints/core.yaml), рекомендованные дополнительные правила (lints/recommended.yaml) и специфичные для Flutter рекомендации (flutter_lints/flutter.yaml). Пользователям педантичных правил рекомендовано перейти на использование нового стиля кодирования, основанного на рекомендациях из документации Dart.
  • В formatter внесены оптимизации в форматирование каскадных блоков кода, позволяющие заметно повысить производительность форматирования и избежать неоднозначной трактовки принадлежности элементов выражения. Например, вызов «..doIt» в выражении «var result = errorState ? foo : bad..doIt()» касается не условной части блока «bad» а всего выражения, поэтому при форматировании теперь разделяется: var result = errorState ? foo : bad ..doIt();
  • В SDK добавлена поддержка процессоров Apple M1 (Silicon), подразумевающая как возможность запуска Dart VM, утилит и компонентов SDK на системах с процессором Apple Silicon, так и поддержку компиляции исполняемых файлов для указанных чипов.
  • В команду «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 и позволяет на основе одной кодовой базы выпускать приложения для платформ iOS, Android, Windows, macOS и Linux, а также создавать приложения для запуска в браузерах. На основе Flutter построена пользовательская оболочка развиваемой в Google микроядерной операционной системы Fuchsia.

Pjesa kryesore e kodit të Flutter është realizuar në gjuhën Dart, ndërsa motori runtime për ekzekutimin e aplikacioneve është shkruar në C++. Gjatë zhvillimit të aplikacioneve, përveç gjuhës natyrale për Flutter, Dart, mund të përdoret ndërfaqja Dart Foreign Function për të calls kodin në C/C++. Performanca e lartë e ekzekutimit arrihet falë kompilimit të aplikacioneve në kodin machine për platformat e synuara. Në të njëjtën kohë, programi nuk ka nevojë të riprogramohet pas çdo ndryshimi — Dart ofron modalitetin e rifreskimit të nxehtë, i cili lejon të bëhen ndryshime në aplikacionin që është duke punuar dhe menjëherë të vlerësohet rezultati.

Основные изменения во Flutter 2.5:

  • Внесены значительные оптимизации производительности. На платформах iOS и macOS реализована предкомпиляция шейдеров для графического API Metal. Повышена эффективность обработки асинхронных событий. Решена проблема с задержками во время высвобождения сборщиком мусора памяти от неиспользуемых изображений (например, во время воспроизведения 20-секундного анимированного GIF число операций сборки мусора снижено с 400 до 4. До 50% cнижены задержки при передаче сообщений между Dart и Objective-C/Swift (iOS) или Java/Kotlin (Android). Добавлена поддержка родной сборки для систем на базе чипа Apple Silicon.
    Доступны язык Dart 2.14 и фреймворк Flutter 2.5
  • Для платформы Android налажена поддержка работы приложений в полноэкранном режиме. Продолжена реализация концепции оформления «Material You», преподносимой как вариант Material Design следующего поколения. Добавлено новое состояние MaterialState.scrolledUnder, реализовано динамическое отображение полос прокрутки при изменении размера и предложен новый интерфейс для отображения баннеров с уведомлениями.
  • Значительно расширены возможности плагина для работы с камерой, в котором появились средства для управления автофокусом, экспозицией, вспышкой, увеличением, подавлением шумов и разрешением.
  • Улучшены инструменты для разработчиков (DevTools), в которых появился обновлённый режим инспектирования виджетов, а также предоставлены средства для выявления задержек при отрисовке и отслеживания компиляции шейдеров.
    Доступны язык Dart 2.14 и фреймворк Flutter 2.5
  • Улучшены плагины для Visual Studio Code и IntelliJ/Android Studio.

Burimi: opennet.ru

Bleni hostin e besueshëm për faqet me mbrojtje nga DDoS, VPS VDS servera 🔥 Bli hostin e besueshëm për faqet me mbrojtje nga DDoS, VPS VDS servera | ProHoster