Pubspec.yaml во Flutter-приложении
Всем доброго времени суток, меня зовут Дмитрий, я Flutter Developer в компании AppVesto. В этой статье я расскажу вам о том, зачем нужен pubspec.yaml во Flutter-приложении. Заранее скажу, что эта статья не будет нести большой пользы для опытных пользователей Flutter, так как больше предназначена для новичков в данной сфере.
Итак, после создания нового веб, мобильного или же десктоп приложения мы всегда будем встречаться с таким файлом, как pubspec.yaml.
Рассмотрим, что именно внутри pubspec.yaml:
# General Section name: new_flutter_app description: flutter is amazing. publish_to: 'none' version: 1.0.0+1 # Environment environment: sdk: ">=2.7.0 <3.0.0" # Dependencies dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.0 dev_dependencies: flutter_test: sdk: flutter # Flutter configurations flutter: uses-material-design: true
Как вы могли заметить, он делится на 4 раздела. Теперь поочередно разберем каждый из них.
General Section (Общая информация о приложение)
Вверху файла мы видим поле name, что отвечает за название пакета, а так же за то, как мы будем импортировать файлы в вашем приложение. Как пример возьмем импорт файла main.dart, что по стандарту находится в директории lib/:
import 'package:new_flutter_app/main.dart'
Также нужно понимать, что после того, как мы изменим имя нашего пакета, мы должны будем изменить его и в наших импортах, как пример возьмем новое имя old_flutter_app:
import 'package:old_flutter_app/main.dart'
Далее мы видим строчку description, по сути, это необязательное поле которое позволяет добавить описание для проекта, так же если мы будем создавать библиотеку для pub.dev, то это описание будет видно другим пользователям при поиске на данном сайте.
description: A new Flutter project.
Следующая строка publish_to, она не позволяет пользователю случайно выставить свое приложение на pub.dev, но если вам нужно будет создать пакет для pub.dev, Вы просто удалите эту строку: publish_to: 'none'
Перейдем к строчке version, что отвечает за управлением версиями. Для мобильных приложений это будет версия, которая будет доступна в App Store и Google Play. Ранее вы могли видеть такие версии как 1.0.0 + 1, что обозначает 1.0.0 версия со сборкой 1.
version: 1.0.0+1
Следующее поле envoriment, что содержит в себе еще одно поле, которое позволяет нам добавлять ограничение версии Dart и Flutter. Это означает, что приложение будет работать только на версии выше, чем 2.7.0 либо такой же версии, но не ниже, чем 3.0.0
environment: sdk: ">=2.7.0 <3.0.0"
Также мы можем указать сами версию Flutter, на которой мы желаем работать, но при этом мы должны будем работать только на этой версии, ибо мы получим ошибку:
environment: sdk: ">=2.7.0 <3.0.0" flutter: "1.22.0"
Dependencies
Следующий раздел служит для подключения пакетов к вашему приложению итак, давайте посмотри на способы, с помощью которых мы можем добавлять нужные нам пакеты.
Первый и самый простой способ — это добавление с помощью сайта pub.dev, где мы выбираем нужный нам пакет и добавляем его в наши зависимости, для примера давайте возьмем Provider, заходим на сайте и переходим на вкладку «Installing», там видим нужную нам строчку:

После копируем ее в наш dependencies:
dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.0 provider: ^4.3.2+3
Используем команду flutter pub get и видим успешный результат установки пакета:
И уже в проекте мы можем видеть, что нам доступен данный пакет:
import 'package:provider/provider.dart';
Второй способ — это добавление пакета через каталог, в основном мы будем его использовать, когда нам нужно будет работать с пакетом локально, для этого мы переходим на репозиторий нужного пакета, клонируем и добавляем в наш проект, далее уже в dependencies добавляем строчку подключения пакета:
dependencies: flutter_test: sdk: flutter provider: path: ../
После того как мы посмотрели 2 основных способа добавление пакетов в проект, давайте же посмотрим, в чем разница между dependencies и dev_dependencies:
в dependencies находятся только те пакеты, которые в дальнейшем необходимы для компиляции приложения, в свою очередь dev_dependencies нужны нашему приложению, используются только во время разработки, например, тестовые среды или пакеты, генерирующие код.
Flutter configurations
В самом низу нашего файла мы видим раздел flutter, где мы уже видим стандартный параметр uses-material-design:
flutter: uses-material-design: true
Обозначает, что в этом разделе мы используем нужные нам сторонние ресурсы, такие как assents и fonts:
flutter: uses-material-design: true assets: - assets/svg/dog.svg - assets/svg/dialog/ - family: SFProDisplay fonts: - asset: assets/SFPD/SFProDisplay-Black.ttf - asset: assets/SFPD/SFProDisplay-Medium.ttf - asset: assets/SFPD/SFProDisplay-Regular.ttf
Как пример вы можете видеть, что для нужной нам одной картинки мы добавляем поле с указаным полным именем: - assets/svg/dog.svg
Так же мы можем не указывать имя, тогда будем брать все элементы, которые находятся по данному пути: - assets/svg/dialog/
Заключение
Файл pubspec.yaml отвечает за версии, пакеты и добавление сторонних ресурсов, как мы могли видеть здесь, мы можем полностью контролировать наше приложение. По структуре статьи я мог пропустить некоторые поля в данном файле, но мы всегда можем обратиться к документации :)
Сподобалась стаття? Підписуйтесь на автора, щоб отримувати сповіщення про нові публікації на пошту.

3 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів