Pubspec.yaml во Flutter-приложении

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

Всем доброго времени суток, меня зовут Дмитрий, я 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 отвечает за версии, пакеты и добавление сторонних ресурсов, как мы могли видеть здесь, мы можем полностью контролировать наше приложение. По структуре статьи я мог пропустить некоторые поля в данном файле, но мы всегда можем обратиться к документации :)

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Вас якось керівництво стимулює писати статті? Як вони аргументують їх необхідність, не казали?

з нетерпінням чекаю статтю flutter create або як створити новий flutter проект.

Знов «галєрка» прислала того, кого не шкода))

Подписаться на комментарии