Для создания программы на языке Dart нам достаточно определить файл с расширением *.dart
и определить в нем некоторый программный код. Далее мы можем запустить
этот файл с помощью Dart SDK или скомпилировать из него исполняемую программу, как было рассмотрено в прошлой статье. Однако Dart SDK также предоставляет и другой способ - создать
полноценный проект с помощью команды create Dart SDK.
Зачем нам создавать проект Dart, если мы просто можем создать файл программы, определить в нем код и запустить его? Дело в том, что команда create позволяет создать базовую структуру для управления проектом с готовой конфигурацией, что упрощает нам создание приложение, особенно когда речь идет о больших проектах.
Так, определим на каталог для проекта. Например, в моем случае пусть это будет каталог C:\dart. Перейдем в этот каталог в консоли с помощью команды cd. И затем выполним команду
dart create hello
После команды create
указывается имя создаваемого проекта - в данном случае hello. В результате выполнения команда выведет нам набор создаваемых файлов и ряд дополнительной
информации:
C:\Users\eugen>cd c:\dart c:\dart>dart create hello Creating hello using template console... .gitignore analysis_options.yaml CHANGELOG.md pubspec.yaml README.md bin\hello.dart lib\hello.dart test\hello_test.dart Running pub get... Resolving dependencies... Changed 46 dependencies! Created project hello in hello! In order to get started, run the following commands: cd hello dart run c:\dart>
Рассмотрим создаваемую структуру проекта по умолчанию:
.dart_tool: данная папка хранит файлы, которые используются различными инструментами в Dart SDK.
bin: предназначен для хранения скриптов, по умолчанию содержит главный файл программы - скрипт hello.dart (называется по имени проекта) с функцией main, которая запускается при запуске программы.
lib: предназначена для хранения библиотек, которые затем можно импортировать и использовать в других частях приложения. По умолчанию здесь генерируется файл hello.dart (называется также, как и главный файл проекта) с некоторым содержимым по умолчанию. Как правило, вся основная логика приложения размещается в этой папке.
test: предназначен для хранения файлов тестов программы. По умолчанию здесь создается файл hello_test.dart
для тестирования функционала из файла lib/hello.dart
.gitignore: файл, где можно определить какие файлы проекта надо исключить, чтобы не размещать их на GitHub или другом репозиторим Git.
analysis_options.yaml: cодержит особые правила, которые могут помочь отследить различные проблемы в программном коде (то, что называется линтинг).
CHANGELOG.md: предназначен для занесения всех изменений в проекте, что может помочь при командной работе, чтобы все, кто работает над проектом, могли отследить, какие изменения были сделаны.
README.md: предназначен для хранения описания проекта
pubspec.yaml: содержит список сторонних зависимостей (внешних библиотек), которые используются в проекте.
Программный код приложения в основном помещаются в папку lib
в файлы с расширением .dart
. По умолчанию здесь уже есть файл main.dart
со следующим
кодом:
int calculate() { return 6 * 7; }
Здесь определяется функция calculate()
, которая вычисляет произведение чисел 6 и 7. Этот код несколько бессмысленный и служит скорее для целей демонстрации того, как связаны и работают
различные части проекта.
Этот код используется в одноименном файле hello.dart
из папки bin
:
import 'package:hello/hello.dart' as hello; void main(List<String> arguments) { print('Hello world: ${hello.calculate()}!'); }
Все элементы этого кода будут рассмотрены в последующих статьях, но для общего понимания пока достаточно знать, что здесь импортируется функционал из файла lib/hello.dart
import 'package:hello/hello.dart' as hello;
Далее определяется обязательная для программы на Dart функция main:
void main(List<String> arguments) {
И в этой функции с помощью функции print
печатаем на консоль некоторый текст. А именно результат функции calculate
из lib/hello.dart
print('Hello world: ${hello.calculate()}!');
Попробуем запустить проект. Для этого перейдем в консоли в папку проекта и выполним команду
dart run bin/hello.dart
То есть в данном случае мы выполняем файл bin/hello.dart
, который содержит функцию main. В итоге нам отобразится некоторый текст - результат программы:
c:\dart\hello>dart run bin/hello.dart Hello world: 42! c:\dart\hello>
Таким образом, мы можем создавать проекты и запускать их.
Выше мы создали проект консольного приложения - самый простой тип проектов. Однако Dart SDK также поддерживает ряд других типов проектов для разных задач:
console
: проект консольного проекта (тип по умолчанию)
package
: проект библиотеки Dart
server-shelf
: проект серверного приложения, которое использует package:shelf
web
: проект веб-приложения
Для создания проекта команде dart create
передается опция
dart create hello_web -t web
В данном случае проект будет называться "hello_web". Он будет иметь чуть больше папок и файлов, чем проект консольного приложения, но общий принцип работы с проектом будет тем же.