TGViewer
Flutter Friendly Flutter Friendly @flutterfriendly · 995 subscribers
Post #131 602
Привет, это Катя, Flutter Dev Friflex.

Во время разработки мобильных приложений иногда возникает необходимость выполнять команды терминала прямо из кода. Это может пригодиться, например, для автоматизации задач, работы с внешними CLI-инструментами или интеграции с системами сборки. Dart предоставляет способ выполнения таких команд через класс Process.

💡Что такое Process?
Класс dart:io → Process позволяет запускать внешние процессы и взаимодействовать с ними: передавать аргументы, получать стандартный вывод (stdout), ошибки (stderr) и код завершения.

Как использовать?
Рассмотрим на примере, в котором будем выводить результат flutter --version в консоль.


import 'dart:io';

void main() async {
  final result = await Process.run('flutter', ['--version']);

  if (result.exitCode == 0) {
    print('Flutter version: ${result.stdout}');
  } else {
    print(Error: ${result.stderr}');
  }
}


Что происходит:
▫️Process.run — запускает процесс и возвращает результат после его завершения
▫️'flutter' — команда, которую мы хотим выполнить
▫️['--version'] — список аргументов для команды
▫️result.stdout — стандартный вывод
▫️result.stderr — ошибка
▫️result.exitCode — код завершения (0 — успех, иначе ошибка)

Методы Process
▫️run(executable, arguments) — запускает процесс, дожидается его завершения и возвращает результат
▫️start(executable, arguments) — запускает процесс и возвращает объект Process, не дожидаясь завершения
▫️killPid(pid) — завершает любой процесс по его PID, даже если нет объекта Process
▫️kill() — завершает процесс, запущенный через start.
▫️getter exitCode — возвращает код выхода

Важно помнить
▫️
Команда должна быть доступна в окружении (PATH)
▫️Всегда оборачивайте вызовы в try-catch на случай ошибок
▫️Будьте осторожны с пользовательским вводом: не передавайте его напрямую в Process без фильтрации

Мой опыт
Я использовала Process в проекте, где нужно было обрабатывать видео с помощью ffmpeg. Команды нарезки и склейки видео выполнялись прямо из Flutter-приложения, и Process стал отличным способом обернуть это взаимодействие с CLI.

Вывод
Process во Flutter (точнее, в Dart) — это мощный инструмент для расширения возможностей приложения: от автоматизации до взаимодействия с внешними утилитами.

Вы когда-нибудь использовали Process в Flutter или Dart? Для чего он вам понадобился?
  • 🔥 14
  • ❤ 6
  • 👍 2
More from @flutterfriendly
  1. May 14, 2026👀Какой сложный вопрос или тема по Flutter вас сейчас беспокоят? Может, задача не идет, ба…
  2. Apr 17, 2026💭Привет! Это Роза, Flutter-разработчица Friflex! Уверена, многие из вас знакомы с Dart De…
  3. Apr 8, 2026Привет, друзья! Делимся нашей страничкой на Хабре, чтобы всегда оставаться на связи. Там е…
  4. Apr 3, 2026🌸Апрель в календаре и на экране Весна зовет обновлять визуальное: убирать темные темы и в…
  5. Apr 1, 2026Всегда с нетерпением ждем этого дня, чтобы сделать подборку ИТ-мемов Пусть поводов для улы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →