Из уст переводчика: инструмент puro совсем новый по меркам продуктовой разработки (первый релиз – октябрь 2022), но, по моему личному мнению, api его уже достаточно стабилизирован, а сам инструмент выражает искреннюю радость подходами. Большинство его текущих преимуществ (и выгодных отличий от fvm) я разбирал ранее в этом исчерпывающем материале – "Полное руководство по использованию FVM (Flutter Version Management) – жонглируйте версиями Flutter sdk в своих проектаx" – где вполне наглядно показано торжество puro... Уровень моего португальского невелик, и потому перевод является достаточно свободным, с иными выверенными интонациями и построениями предложений, нежели чем могут быть в оригинале. Приятного чтения! Возможно, вы уже сталкивались с ситуацией, когда приходится работать над несколькими проектами Flutter, которые необходимо запускать на разных версиях sdk. К сожалению, это очень часто встречается в мире разработки программного обеспечения. Например, недавно был выпущен Flutter 3.13, в котором было небольшое breaking change. По этой причине многие проекты, работающие на версии 3.10, не перешли на стабильную версию, и разработчикам, желающим протестировать новые возможности Flutter, приходится постоянно переключаться между ними, используя flutter downgrade и flutter downgrade. Поэтому существуют менеджеры версий, позволяющие настроить то, какую версию Flutter будет использовать каждый проект. Мы уже говорили здесь о FVM (Flutter Version Management) – менеджере, созданном бразильцем (Leo Farias, Google Developer Experts in Dart), который я использовал в течение многих лет. Недавно был выпущен менеджер версий Puro, который выглядит круто и очень прост в установке. На самом сайте Puro есть график, сравнивающий время установки и настройки Puro с другими способами установки Flutter, и он показывает выигрыш более чем в 50% (всегда следует с осторожностью относиться к подобным бенчмаркам). Также показано сравнение использования сетевого трафика и экономии дискового пространства. Итак, давайте посмотрим, как его установить и использовать. Первая зависимость, которую нам необходимо устранить (если вы еще не знаете это, то должны узнать), – это установка git на вашей машине, что довольно просто. Если вы, как и я, являетесь пользователем Windows, я рекомендую использовать chocolatey для установки пакетов в Windows. Чтобы установить chocolatey, просто запустите PowerShell от имени администратора. И выполните команду, чтобы установить chocolatey: Для подтверждения выполните команду choco -v: "Шоколадка" установлена! Теперь мы можем просто установить git, выполнив команду: а затем подтвердить нажатием кнопки Y. Перезапустите PowerShell и запустите git -v для подтверждения установки. Теперь для установки Puro достаточно выполнить команду в PowerShell (на этот раз НЕ от имени администратора): (прим. пер.: будьте внимательны, какую версию вы собираетесь ставить. Сейчас это 1.3.5) После этого будет произведена автоматическая настройка переменных окружения. Теперь мы можем использовать Puro! Создаём новую среду с помощью команды puro create: (прим. пер.: я не считаю данный пример хорошим тоном – называть environment по имени канала или же по версии flutter sdk. Даже использование my_env семантически лучше, поэтому далее я буду использовать именно это именование) Команда состоит из: Помните, что имя my_env должно начинаться с буквы: Чтобы получить список установленных версий, просто выполните команду puro ls:   Для глобальной установки версии в операционной системе мы будем использовать флаг -g: В рамках проекта можно также установить версию, отличную от глобальной:  Это позволит использовать разные версии в разных проектах, не прибегая к постоянному понижению и повышению версий через flutter cli. Лично я нашел Puro очень простым и полезным, но, конечно, это принесет пользу только в том случае, если вы работаете над несколькими проектами с разными версиями, что характерно для многих разработчиков. Стоит помнить, что Puro – это недавно вышедший проект, поэтому используйте его с осторожностью! Спасибо и до встречи! 😊   Материал переведён Ruble.  Моя литера Т стремится к равнозначности линий