Нави Тулаг – От датчика до интерфейса. Практическое руководство по созданию инженерных десктоп приложений на Python и web-технологиях (страница 7)
B) Electron + Flask — нужен доступ из браузера, сложная авторизация, массовые пользователи.
C) Neutralino — критичен размер, запуск на старом ПК, простой UI.
В следующей главе мы систематизируем всё, что узнали, и дадим вам чёткий алгоритм выбора: «Когда использовать Eel, Electron или Neutralino?» — с таблицей, примерами и контрольными вопросами.
Глава 4. Критерии выбора: когда использовать какой фреймворк?
О чём эта глава?
Вы уже познакомились с тремя подходами:
Python Eel — для инженеров, живущих в экосистеме Python.
Electron — для сложных продуктов с мощным UI.
Neutralino — для лёгких утилит без лишних зависимостей.
Теперь настало время перейти от теории к решению. В этой главе вы узнаете:
✅ Как выбрать фреймворк на основе реальных требований проекта (железо, данные, пользователи).
✅ Какие пять ключевых вопросов задать себе перед стартом.
✅ Как сравнить фреймворки объективно — не по хайпу, а по цифрам и ограничениям (размер, COM-порты, сложность).
К концу главы у вас будет личная карта решений, которую вы сможете использовать в будущих проектах.
4.1. Пять вопросов перед выбором
Прежде чем писать код, ответьте на эти вопросы. Честные ответы сэкономят вам недели работы.
1. На каком языке написана основная логика?
Python? → Скорее всего, Eel.
JavaScript/TypeScript? → Electron или Neutralino.
2. Насколько сложен пользовательский интерфейс?
Простые формы, кнопки, графики? → Eel подойдёт идеально.
Сложные анимации, drag-and-drop, редакторы кода? → Electron.
Минимализм, стандартные элементы? → Neutralino.
3. Нужен ли доступ к нативным функциям ОС?
COM-порты, GPIO, файлы? → Eel (через Python) или Electron (через Node.js).
Трей, системные уведомления, меню? → Electron (встроено).
4. Кто ваш пользователь?
Коллеги в офисе / Лаборанты? → Eel или Neutralino.
Миллионы пользователей (публичный продукт)? → Electron.
5. Каковы требования к размеру и производительности?
Установка должна быть < 20 МБ? → Neutralino.
Память > 300 МБ — критично? → Избегайте Electron для простых задач.
4.2. Сравнительная таблица: объективные метрики
Давайте посмотрим на цифры. Представим, что мы создаём панель мониторинга датчиков с графиком в реальном времени.
Критерий
Python Eel
Electron
Neutralino
Комментарий для инженера
Язык бэкенда
Python 3.7+
JavaScript/Node.js
JavaScript
Eel выигрывает, если логика на Python
Доступ к COM-портам
✅ Прямой (pyserial)
⚠️ Через serialport (npm)
⚠️ Через плагин или бэкенд
Eel проще: import serial и всё работает
Мин. размер дистрибутива
~30–60 МБ*
~150 МБ
~5–10 МБ
*Зависит от библиотек Python
Потребление RAM