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 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів