Как установить dart sdk
Русские Блоги
Загрузка и настройка Dart SDK для Linux
Загрузка и настройка Dart SDK для Linux
Прежде всего, рекомендуется, чтобы мелкие партнеры, которые хотят изучать Dart, выбирали среду разработки Linux. Конкретных причин не будет много. Если вы хотите попробовать установить Dart SDK на Windows или Mac, вы можете обратиться кInstalling the Dart SDK on WindowsилиInstalling the Dart SDK on Mac。
Есть два способа установить Dart SDK на компьютеры с Ubuntu или Debian:
1. Используйте apt-get
2. Загрузите файл пакета Debian
Здесь только вводится метод установки с использованием apt-get
Используйте apt-get
Прежде чем использовать apt-get для загрузки Dart SDK, вам нужно добавить источники, от которых он зависит, на этот компьютер:
Добавить стабильную версию исходного кода
Добавить источник для версии разработчика
Скачать Dart SDK
Следующий шаг загрузит SDK, соответствующий последней версии в соответствии с вышеуказанной конфигурацией.
Установите указанную версию SDK
Если версия разработчика выбрана в вышеуказанной конфигурации, последняя версия версии разработчика будет загружена по умолчанию, но стабильную версию можно принудительно загрузить следующими способами:
Вы также можете указать версию для загрузки, например:
Конфигурация среды
Добавить соответствующий путь в PATH
После выполнения вышеуказанных действий введите в терминале dart или pub. Если отображается следующее, установка прошла успешно.
Сервис на языке Dart: каркас серверного приложения
Подготовка
В прошлый раз мы закончили на том, что разместили статическую веб страницу-заглушку, разработанную с использованием Flutter для web. Страница отображает прогресс разработки нашего сервиса, однако данные о датах начала разработки и релиза пришлось захардкодить в приложении. Таким образом мы лишились возможности изменить сведения на странице. Пришло время разработать приложение — сервер данных. Схема всех приложений сервиса — в статье «Сервис на языке Dart: введение, инфраструктура бэкэнд».
В этой статье мы напишем приложение с использованием фреймворка Aqueduct, оценим его производительность и потребление ресурсов в разных режимах, напишем инструментарий для компиляции в нативное приложение для Windows и Linux, разберемся с миграциями схемы базы данных для доменных классов приложения и даже опубликуем наш инструментальный docker образ в публичный регистр DockerHub.
Установка Aqueduct
Начнем с установки dart-sdk — набора средств разработки на языке Dart. Установить его можно с использованием пакетного менеджера вашей операционной системы как предложено здесь. Однако, в случае Windows никакого пакетного менеджера в вашей системе по умолчанию не установлено. Поэтому просто:
Теоретически можно установить локально также сервер баз данных PostgreSQL. Однако Docker позволит нам избежать этой необходимости и сделает среду разработки подобной среде выполнения на сервере.
Генерация приложения
Итак, откроем папку нашего сервера в VsCode
Для тех, кто не видел первую и вторую статьи, исходный код можно склонировать из guthub репозитория:
Создадим шаблон приложения:
Ознакомимся с содержимым шаблона проекта:
Конфигурация
Первая задача, которую предстоит решить, — настройка приложения при запуске. Aqueduct имеет встроенный механизм извлечения параметров из конфигурационных файлов, но этот механизм не очень удобен при запуске в Docker контейнере. Мы поступим иначе:
EnvironmentRepository в конструкторе считывает переменные окружения из операционной системы в виде словаря Map и сохраняет в приватной переменной _env. Добавим метод для получения всех параметров в виде словаря:
lib/service/EnvironmentService — логический компонент доступа к данным EnvironmentRepository:
Инъекция зависимостей
Здесь необходимо остановиться и разобраться с зависимостями компонентов:
Создадим экземпляр контейнера инжектора lib/di/di_container.dart и напишем метод с регистрацией репозитория и сервиса:
Метод инициализации контейнера DI вызовем в методе подготовки приложения:
Cетевой слой
lib/controller/ActuatorController — сетевой http компонент. Он содержит методы доступа к служебным данным приложения:
Задекларируем обработчики маршрутов для контроллеров в lib/controller/Routes:
Первый запуск
Для запуска необходимо:
Добавим контейнер приложения в сценарий docker-compose.yaml:
Создадим файл data_app.env с переменными конфигурации для приложения:
Добавим новый location в отладочный конфиг NGINX conf.dev.d/default.conf:
Запускаем отладочный сценарий с флагом предварительной сборки образов:
Сценарий успешно запустился, но настораживают несколько моментов:
Предположительно ресурсов нашего бюджетного VPS не хватит для работы такого ресурсоемкого приложения. Давайте проверим:
Нам предстоит решить три задачи:
Начнем с локального удаления aqueduct CLI:
Установим новую версию:
Поднимем зависимости в pubspec.yaml:
Соберем нативное приложение:
Результатом будет однофайловая сборка data_app.aot размером около 6 МБ. Можно сразу запустить это приложение с параметрами, например:
Потребление памяти сразу после запуска — менее 10 МБ.
Посмотрим под нагрузкой. Параметры теста: сетевые запросы GET /actuator, 100 потоков с максимальной доступной скоростью, 10 минут. Результат:
Итого: средняя скорость — 13к запросов в сек для тела ответа JSON 1,4кВ, среднее время ответа — 7 мсек, потребление оперативной памяти (на два инстанса) 42 MB. Ошибок нет.
При повторном тесте с шестью инстансами приложения средняя скорость, конечно, повышается до 19к/сек, но и утилизация процессора достигает 45% при потреблении памяти 64 МБ.
Это превосходный результат.
Упаковка в контейнер
Здесь мы столкнемся еще с одной сложностью: скомпилировать dart-приложение в натив мы можем только под текущую ОС. В моем случае это Windows10 x64. В docker-контейнере я, конечно, предпочел бы один из дистрибутивов Linux — например, Ubuntu 20.10.
Решением здесь станет промежуточный docker-стенд, используемый только для сборки нативных приложений под Ubuntu. Напишем его /dart2native/Dockerfile:
Теперь соберем его в docker-образ с именем aqueduct_builder:4.0.0-b1, перезаписав, если есть, старые версии:
Напишем сценарий сборки нативного приложения docker-compose.dev.build.yaml:
Запустим сценарий сборки:
Файл скомпилированного под Ubuntu приложения data_app.aot занимает уже 9 МБ. При запуске утилизирует 19 МБ оперативной памяти (для двух инстансов). Проведем локальное нагрузочное тестирование с теми же условиями, но в контейнере с проксированием NGINX (GET, 100 потоков):
В среднем 5,3к запросов в секунду. При этом потребление оперативной памяти не превысило 55 МБ. Размер образа уменьшился по сравнению с установленным dart и aqueduct c 840 МБ до 74 МБ на диске.
Напишем новый сценарий docker-compose.aot.yaml запуска приложения. Для этого заменим блок описания data_app, установив базовым образ “пустой” Ubuntu:20.10. Смонтируем файл сборки и изменим команду запуска:
Решим еще одну сервисную задачу: фактически сборочный docker-образ c установленными dart и aqueduct — вполне себе переиспользуемый инструмент. Имеет смысл выгрузить его в общедоступный регистр и подключать как готовый скачиваемый образ. Для этого необходимо:
https://hub.docker.com/repository/docker/andx2/aqueduct/general
Теперь можно изменить наш сценарий сборки для использования публичного образа
Подключение базы данных
В aqueduct уже встроен ORM для работы с базой данных PostgreSQL. Для его использования необходимо:
Здесь необходимо обратить внимание на файл переменных окружения data_db.env. Дело в том, что образ заранее настроен на использование этих переменных в качестве имени пользователя, хоста, порта и пароля доступа. Добавим эти переменные в файл:
Значения приведены условно.
Также смонтируем папку хоста ./data_db/ в контейнер для хранения данных БД.
Далее в приложении data_app добавим класс /service/DbHelper для подключения к базе данных, используя переменные окружения:
Создадим доменный объект, управляемый ORM, для получения настроек клиентского приложения:
Добавим репозиторий и сервис для добавления настроек и получения актуальной версии:
Зарегистрируем новые компоненты в DI контейнере:
Добавим новый контроллер и эндпойнт в маршрутизатор:
Теперь сгенерируем файл миграции базы данных. Выполним:
Результатом будет создание файлов миграции в папке проекта:
Теперь нужно решить сервисную задачу: миграции нужно применять из системы с установленным aqueduct (и dart) к базе данных, работающей в контейнере, и это нужно выполнять как при локальной разработке, так и на сервере. Используем для этого кейса ранее собранный и опубликованный образ для AOT-сборки. Напишем соответствующий docker-compose сценарий миграции БД:
Интересная деталь — строка подключения к БД. При запуске сценария можно передать в качестве аргумента файл с переменными окружения, а затем использовать эти переменные для подстановки в сценарии:
Также обратим внимание на флаги запуска:
Публикация
Для подготовки к публикации приложения необходимо:
Выполним сценарий миграции схемы базы данных:
How to install Dart on Windows?
Install Dart on Windows
In this tutorial, we will provide a step by step process to get Dart installed on Windows.
Dart SDK comes as a pre-compiled version. So, download and extracting is all you need to do.
Step 1: Download Dart SDK
Go to Dart SDK archive page.
The URL is https://dart.dev/tools/sdk/archive.
Click on the Dart SDK link. The download will start immediately and a zip file will be downloaded.
Step 2: Extract zip file
Extract the contents of Dart SDK zip file. The contents of the folder would be as shown below.
Step 3: Run Dart
You can run Dart command. Yeah!
Open command prompt and navigate to the bin folder.
Step 4: Add Dart Path to PATH Environment Variable
As of now, you can run dart command only from bin folder of dart sdk. To run dart command from anywhere in your file system, add dart bin path to PATH environment variable.
Open Environment Variables. Under System variables, click on Path and click Edit button.
Edit environment variable window appears. Click on New and paste the dart sdk bin path as shown below.
Click on OK. The changes will take effect if you restart your command prompt.
Step 5: Restart Command Prompt
Close the existing command prompt window and open a new command prompt.
Conclusion
In this Dart Tutorial, we learned how to install Dart on Windows, to work with Dart programming.
Get the Dart SDK
This page describes how to download the Dart SDK. The Dart SDK has the libraries and command-line tools that you need to develop Dart command-line, server, and non-Flutter web apps. For details, see the Dart SDK overview.
As of Flutter 1.21, the Flutter SDK includes the full Dart SDK. So if you have Flutter installed, you might not need to explicitly download the Dart SDK. Consider downloading the Dart SDK if any of the following are true:
Installing the Dart SDK
As the following instructions show, you can use a package manager to easily install and update a stable channel Dart SDK. Alternatively, you can build the SDK from source, grab a Dart Docker image, or install from any release channel by downloading the SDK as a zip file.
Dart tools may send usage metrics and crash reports to Google. By downloading the Dart SDK, you agree to the Google Terms of Service. Note: The Google Privacy Policy describes how data is handled in this service.
To control the submission of metrics, use the following options on the dart tool:
You can install the Dart SDK using Chocolatey.
Important: These commands require administrator rights. Here’s one way to open a Command Prompt window that has admin rights:
To install the Dart SDK:
To upgrade the Dart SDK:
If you can’t use the Dart SDK executables, add the SDK location to your PATH:
If you’re using Debian/Ubuntu on AMD64 (64-bit Intel), you can choose one of the following options, both of which can update the SDK automatically when new versions are released.
Install using apt-get
Perform the following one-time setup:
Then install the Dart SDK:
Install a Debian package
Modify PATH for access to all Dart binaries
To change the PATH for future terminal sessions, use a command like this:
Install Homebrew, and then run the following commands:
To upgrade when a new release of Dart is available:
To see which versions of Dart you’ve installed:
System requirements
The Dart SDK is supported on Windows, Linux, and macOS.
Windows
Linux
Note: The arm support requires glibc 2.23 or newer due to a dynamic linker bug.
macOS
About release channels and version strings
The Dart SDK has three release channels:
Stable releases are suitable for production use.
Beta channel builds are preview builds for the stable channel. We recommend testing, but not releasing, your apps against beta to preview new features or test compatibility with future releases.
Dev channel releases are the most current with latest changes, may be broken, are unsupported, and may contain unvetted breaking changes.
You can get stable channel releases using the instructions above, or you can get stable, beta, or dev channel releases using a package manager or Dart Docker image, or by downloading the SDK as a zip file.
Введение в язык Dart
Что такое Dart. Первая программа
В своем развитии Dart испытал влияние более ранних языков, таких как Smalltak, Java, JavaScript. Его синтаксис похож на синтаксис других си-подобных языков.
Установка Dart
Для работы с Dart необходимо установить Dart SDK. Для этого нужно загрузить zip-архив с SDK с адреса https://dart.dev/tools/sdk/archive и распаковать его на жестком диске.
На странице загрузки есть пакеты для Windows, Linux, MacOS. Также стоит отметить, что доступны различные сборки: бета-билды и билды для разработчиков. В данном же случае мы будем использовать стабильную сборку, которая рекомендуется к использованию в разрработки, поэтому при загрузке выбираем нужный пакет в секции «Stable channel».
С помощью данной утилиты собственно и будут запускаться скрипты на языке Dart.
Первая программа
Затем введем в командную строку для запуска скрипта следующую команду:
В данном случае имеется в виду, что dart sdk распаковано по пути c:\dart-sdk. И в этом SDK вызывается программа dart.exe, которой передается наш скрипт main.dart. И после это будет выполняться наша программа, которая выведет на консоль строку:
Чтобы каждый раз при запуске программы не надо было вводить полный путь до утилиты dart.exe, можно добавить путь к утилите в переменные среды:
Соответственно после этого можно будет запускать программу на dart следующим образом:
Компиляция программы
В данном случае будет компилировать файл helloapp.exe.
Так, скомпилируем и запустим файл программы: