Знакомая ситуация: сидишь на объекте, смотришь в проект — давление указано в кгс/см², а на манометре бары. В голове пытаешься вспомнить коэффициент. Или заказчик спрашивает: «А сколько это в гигакалориях?» — и ты лезешь в Google, открываешь три вкладки, считаешь на калькуляторе...
Я инженер ОВиК. Отопление, вентиляция, кондиционирование — это моя ежедневная работа. И каждый день одно и то же: пересчитай давление, переведи расход, посчитай скорость в трубе, прикинь объём расширительного бака. Рутина, которая отнимает время и нервы.
Почему существующие приложения не устроили
Я честно пытался найти готовое решение. Вот что нашёл:
Универсальные конвертеры — знают килограммы, метры, литры. Но попробуй найти там кгс/м², Гкал/ч или мм водяного столба. Этих единиц просто нет, потому что разработчики — не инженеры.
Инженерные калькуляторы — существуют, но:
Половина на английском без локализации
Реклама на полэкрана после каждого расчёта
Подписка 300₽/мес за то, чтобы посчитать потерю давления на клапане
Нужен интернет (а на объекте связь бывает не всегда)
В какой-то момент я подумал: я же умею писать на Python. Почему бы не сделать самому?
От идеи до приложения: выбор инструментов
Я не мобильный разработчик. Я не знаю Kotlin, не знаю Swift, не хочу разбираться в Android SDK. Зато я пишу на Python скрипты для работы — автоматизация расчётов, обработка данных, всё такое.
Оказалось, есть Kivy — фреймворк, который позволяет писать мобильные приложения на чистом Python. А Buildozer упаковывает это в обычный APK. Никакой Java, никакого Gradle. Пишешь на Python — получаешь приложение для телефона.
Звучит как магия? Отчасти так и есть. Но с нюансами — о них позже.
Что в итоге получилось
Конвертер, который знает инженерные единицы
10 категорий, 60 единиц измерения. Не просто длина-масса-температура, а то, с чем реально работают инженеры:
Давление — Па, кПа, МПа, кгс/м², кгс/см², мм.рт.ст., мм.вод.ст., бар, м.вод.ст. (да, все 9 штук, которые встречаются в проектной документации)
Мощность — включая ккал/ч, Мкал/ч, Гкал/ч и BTU/ч (попробуйте найти Гкал/ч в обычном конвертере)
Расход — м³/с, м³/мин, м³/ч, л/с, л/мин, л/ч
Плюс энергия, температура, длина, площадь, объём, масса, скорость
Вводишь значение — и сразу видишь таблицу пересчёта во все единицы категории. Не надо выбирать «из чего — во что» по одной штуке.
5 инженерных калькуляторов — то, что считаешь каждый день
Скорость потока в трубе. Выбрал материал (сталь, PPR, PEX, медь), выбрал DN — приложение знает реальные внутренние диаметры. Ввёл расход — получил скорость. Тут же справка: для магистралей норма 1.5-3.0 м/с, для распределения 0.5-1.5 м/с. Не надо лезть в СНиП.
Тепловая мощность. Формула Q = G × ρ × c × ΔT / 3600 — простая, но каждый раз нужно вспоминать теплоёмкость и плотность. А если теплоноситель — не вода, а гликоль? А при какой температуре? А при какой концентрации? Всё это приложение считает само: вода, этиленгликоль, пропиленгликоль, концентрация 10-60%, свойства интерполируются по температуре.
Потеря давления на клапане. Знаешь расход и Kvs — получи ΔP. Два поля, одна кнопка.
Объём расширительного бака. По СП 60.13330-2020. Вводишь мощность системы, диапазон температур, давления, тип теплоносителя — приложение считает нужный объём и сразу подбирает ближайший стандартный размер бака. От 5 до 1000 литров.
Площадь изоляции. Для составления спецификаций и смет — площадь и объём изоляции по диаметру трубы, толщине и длине.
Работает без интернета
Это было принципиальным требованием. На стройке, в подвале, в техническом помещении — связь есть не всегда. Приложение не делает ни одного сетевого запроса. Все данные, коэффициенты, таблицы свойств — встроены в код.
Русский и английский
Переключается одной кнопкой. Весь интерфейс, все подписи, справочная информация — всё на двух языках.
Техническая сторона (для тех, кому интересно)
Один файл — всё приложение
Весь проект — это один main.py на ~1200 строк. Без базы данных, без сервера, без внешних API. Данные (размеры труб, свойства теплоносителей, коэффициенты пересчёта) живут в словарях прямо в коде.
Можно ли было разбить на модули? Да. Нужно ли? Для инструмента такого размера — нет. Один файл проще поддерживать, проще собирать, проще отлаживать.
Свойства теплоносителей — не константы
Самая интересная техническая часть — расчёт тепловой мощности. Плотность и теплоёмкость воды и гликолей зависят от температуры. Для точного расчёта в приложении хранятся таблицы свойств с шагом 10°C, а значения между точками получаются линейной интерполяцией:
def interpolate(self, table, temp): temps = sorted(table.keys()) if temp <= temps[0]: return table[temps[0]] if temp >= temps[-1]: return table[temps[-1]] for i in range(len(temps) - 1): if temps[i] <= temp <= temps[i + 1]: t1, t2 = temps[i], temps[i + 1] v1, v2 = table[t1], table[t2] return v1 + (v2 - v1) * (temp - t1) / (t2 - t1)
Для этиленгликоля и пропиленгликоля данные хранятся с учётом концентрации — двумерные таблицы «температура × концентрация».
Сборка: Windows + WSL2 + Buildozer
Buildozer работает только в Linux. На Windows спасает WSL2:
# Первая сборка (~15 минут — скачивает Android SDK/NDK) buildozer android debug # Release-версия для публикации buildozer android release
Итоговый APK весит ~35 МБ. Да, многовато для калькулятора — это цена Python-рантайма внутри. Нативное приложение весило бы 5-10 МБ. Но для офлайн-инструмента это терпимо.
Публикация в RuStore
Выбрал RuStore как первую площадку — он набирает популярность, и для российских пользователей это логичный выбор.
Процесс оказался достаточно простым:
Загружаешь APK и сертификат подписи
Заполняешь карточку: описание, скриншоты, иконка, категория
Указываешь что приложение не собирает данных (а оно действительно не собирает — ни аналитики, ни трекеров, ничего)
Отправляешь на модерацию
Модерация прошла за пару дней.
Что пошло не так (а что-то всегда идёт не так)
Размер APK. 35 МБ за калькулятор — звучит смешно. Но Python-рантайм, который упаковывается внутрь, весит около 30 МБ. Это главный минус Kivy. Решения два: смириться или переписать на Kotlin. Я выбрал первое.
Кириллица в Kivy. Не все шрифты корректно рендерят кириллицу. Решение нашлось быстро — использовать системные шрифты. Но нервы потрепало.
Тестирование. Эмулятор Android Studio — это не реальный телефон. Некоторые вещи (скорость отклика, размер элементов, удобство ввода) можно оценить только на реальном устройстве. Совет: не откладывайте тест на реальном телефоне до последнего.
Что дальше
Google Play — AAB уже собран, в планах регистрация аккаунта разработчика
iOS — код адаптирован, для сборки нужен Mac
Новые расчёты — подбор насоса, расчёт воздуховодов, гидравлический расчёт системы отопления
Ваши идеи — если пользуетесь приложением и не хватает какого-то расчёта, напишите
Итого
Можно ли написать полезное мобильное приложение, не будучи мобильным разработчиком? Да, если знаешь Python и у тебя есть конкретная проблема, которую нужно решить.
Kivy + Buildozer — не идеальный стек. APK большой, производительность не как у нативного приложения, экосистема библиотек скромная. Но для инструмента, который решает конкретную задачу конкретных людей — этого более чем достаточно.
Главное — я больше не гуглю «кгс/см² в бары». И вы можете не гуглить.
Скачать бесплатно в RuStore: Engineering Converter
Бесплатно. Без рекламы. Без интернета. Без регистрации. Просто инженерный инструмент.
Если вы инженер ОВиК, проектировщик, монтажник, сантехник или студент технического вуза — попробуйте. И напишите в комментариях, каких расчётов и единиц не хватает. Я добавлю.
Комментарии (45)

StasTukalo
11.02.2026 19:16Спасибо!
Скачать бесплатно в RuStore
А можно апк гдето выложить, что бы напрямую качнуть?

sansmaster Автор
11.02.2026 19:16Спасибо! Да, хорошая идея. Выложу APK на GitHub в ближайшее время, кину ссылку сюда. Пока можно скачать напрямую из RuStore — он не требует регистрации для скачивания бесплатных приложений.

KEugene
11.02.2026 19:16Есть еще специализированный ресурс для мобильных приложений - 4pda. Сейчас это https://4pda.to/

LAutour
11.02.2026 19:16Нативное приложение весило бы 5-10 МБ
Мда, как все печально нынче стало.

sansmaster Автор
11.02.2026 19:16Ну, это цена за то, чтобы инженер мог написать приложение за пару вечеров, не изучая Kotlin. Python-рантайм внутри APK весит ~30 МБ, с этим ничего не поделаешь. Зато разработка на Python — в разы быстрее. Для утилиты, которая ставится один раз и работает офлайн — вполне приемлемый компромисс.

NutsUnderline
11.02.2026 19:16ато разработка на Python — в разы быстрее.
ну это кого чему в школе учили :) тоже ведь есть моментики.
для интереса посмотрел в принципе под android есть и basic и pascal и fortran но каждый со своими моментами будет
а один один коммерческий теплокалькулятор похоже весь на веб технологиях. .apk у него 3MB весит :)

sansmaster Автор
11.02.2026 19:16Как уже упоминал выше — 35 МБ это цена Python-рантайма. Но для меня ключевым было другое: вся логика расчётов уже была готова на Python в моих рабочих Excel-скриптах. Python + Kivy позволили из одного кода получить и десктопную версию для Windows, и мобильную для Android — практически без изменений. На JS или Basic пришлось бы переписывать всё с нуля дважды. А 3 МБ на веб-технологиях — скорее всего WebView с HTML-формой, для простого конвертера подойдёт, но для расчётов с интерполяцией свойств гликолей и базой труб по 4 материалам — уже не так тривиально. 35 МБ — плата за кроссплатформенность и скорость разработки)

NutsUnderline
11.02.2026 19:16я лично это дело не пробовал (там еще и подписка в евро и еще кое какие аспекты) но софт этот именно про гликоли, ссылку нашел на профильном форуме .
js как бы для того и предназначен чтобы запускать без изменений, runtime для него еще тяжелее, но он по сути встроенный, и для android и для web, чего там переписывать то. да и pascal похоже довели до нужной степени кросплатформенности
на Python в моих рабочих Excel-скриптах
а вот тут я наверное чего то не знаю: в excel можно исполнять скрипты на python ? там же как раз basic

Ksiat
11.02.2026 19:16А почему не распечатать?
Помнится таблицы Брайля были весьма удобны.
Или есть какие-то нюансы, мешающие бумажному виду?

sansmaster Автор
11.02.2026 19:16если вы имели ввиду таблицы брадиса то распечатать коэффициенты пересчёта — можно, конечно. Но представьте: вы на пусконаладке, нужно быстро проверить — укладывается ли скорость в трубе DN32 PPR при расходе 1.2 м³/ч в норму? Или заказчик поменял котёл и нужно пересчитать расширительный бак прямо на совещании. Или монтажники поставили клапан с Kvs 4 вместо Kvs 16 — а вам нужно за минуту понять, какие потери давления это даст и не убьёт ли это циркуляцию в системе. Такие ошибки приводят к реальным поломкам: завоздушивание, недогрев, выход из строя насоса. Доставать таблицы Брайля и калькулятор — можно, но телефон уже в кармане. Приложение закрывает именно такие ситуации: быстро, на месте, без интернета. Таблицы Брайля это программа конечно не заменит))

Ksiat
11.02.2026 19:16Таблицы Брадиса, прошу прощения, не проверил авто ввод.

sansmaster Автор
11.02.2026 19:16Всё ок, я понял что имелось в виду)

Okeu
11.02.2026 19:16Забавно, как у вас в комменте в конце такая же оговорка) Мозговая ловушка, если конечно не сарказм))))

sansmaster Автор
11.02.2026 19:16Это юмор)) Я знаю что такое таблицы Брайля ...к сожалению моя программа тут не поможет .

Okeu
11.02.2026 19:16просто часто бывает - заразишься неправильным словом и мозг по инерции его продолжает в контексте использовать)

Octagon77
11.02.2026 19:16Почему смущает 35 мегов? Сейчас проги уровня калькулятора могут и за сотню уйти,
Зачем писать бесплатное приложнние - вот этого я не понимаю. Есть же возможность тупо выполнять Питон на смартфоне. Для этого точно есть специальные приложения, но я в них плохо разбираюсь ибо Термукс.
А платное приложение должно быть не на Питоне, а быстрым. А что учить чтобы его писать - я не знаю ибо есть подозрение, что https://fluorite.game/ меняет возможно всё.

sansmaster Автор
11.02.2026 19:1635 мегов — да, согласен, для калькулятора немало. Но это ставится один раз и живёт в телефоне. Не 500 МБ же)
По поводу Termux и запуска Python напрямую — можно, но это решение для разработчика, а не для инженера на объекте. Мне нужно было чтобы монтажник на стройке открыл приложение и за 5 секунд посчитал скорость в трубе, без терминала и командной строки.
Fluorite выглядит интересно, спасибо за ссылку — гляну. Но у меня задача была конкретная: сделать инструмент для себя и коллег, а не изучить мобильную разработку. Python + Kivy позволили это сделать за пару вечеров.

Octagon77
11.02.2026 19:16чтобы монтажник
Вот это из статьи я и не понял. Перечитывать и смотреть есть оно там или нет - не стал, это не важно, важно восприятие по факту. Вот и подумал, что написано было для себя.

Aliandwa
11.02.2026 19:16Отличное приложение! У меня на объектах постоянно возникают такие же вопросы. Никак не могу запомнить, как давление газа перевести из кПа в мм вод. ст. Баки подбираю как примерно одна десятая от объёма воды в системе ну и т.п. Однозначно маст хэв!

sansmaster Автор
11.02.2026 19:16Спасибо! Приятно слышать что приложение реально полезно коллегам. Кстати, есть ещё десктопная версия с расширенным функционалом — дорабатываю, скоро выложу на GitHub. Если есть пожелания какие расчёты добавить — пишите, учту в следующем обновлении.

N1X
11.02.2026 19:16оБщий смысл понятен, но перевод кгс/см2 в бары? Там же почти 1 к 1 :)

sansmaster Автор
11.02.2026 19:16Да, почти 1:1, поэтому и кажется “лишним”. Но формально не равно: 1 кгс/см² = 0,980665 бар, а 1 бар = 1,01972 кгс/см². На “десятках” это уже заметно: 10 кгс/см² = 9,80665 бар (если принять 1:1, получаем ошибку почти 0,2 бар). Конвертацию добавил потому, что в паспортах/манометрах и старой документации часто встречается кгс/см², а в расчетах и настройках автоматики обычно работают бар/кПа. А пример в статье специально сделан гиперболизированным, для наглядности и лёгкого юмора, чтобы проще было зацепить идею. Спасибо за комментарий

geov
11.02.2026 19:16Открываем qalculate! Пишем
1 kgf/cm^2 to bar. Получаем результат:
1 kilopond/(centimeter²) = 0.980665 bar

Smartor
11.02.2026 19:16А почему не обычный Эксель на открытом ноутбуке?:)

sansmaster Автор
11.02.2026 19:16Excel как раз и был отправной точкой — все расчёты в приложении взяты из моих же 9 рабочих таблиц Excel. Просто устал каждый раз открывать ноутбук чтобы найти нужную таблицу. А на объекте (подвал ИТП, крыша с чиллером, совещание у заказчика) ноутбука вообще нет — телефон всегда в кармане. По сути приложение — это мои 9 экселек в одной иконке на рабочем столе, которая работает без ноутбука и без интернета.

pvzh
11.02.2026 19:16Тут как раз хорошо справится JavaScript тупо встроенный в HTML-файл с формой. Работает в любом веб-браузере без интернетов. Размер меньше килобайта. Я такое даже на кнопочных телефонах пользовал.

economist75
11.02.2026 19:16Верно, но автору был бы еще более удобен для написания Brython - Python внутри HTML, транслируемый незаметно в JavaScript. Но он правильно сделал что сделал, а не превратил выбор стека в квест длиной год.
Удивляет другое: сколько же мы умничаем в ответ на чужое доброе дело. Это тревожный сигнал. Как истинное чувство юмора с возрастом вырождается до сарказма, так и архитектурные вопросы начинают довлеть на результатом, каким бы полезным и простым в достижении он не был.

TastaBlud
11.02.2026 19:16Соглашусь: человек уже сделал для себя и коллег быстро, и только стоило от широкой души поделиться с сообществом, как понабежали со своими кулькуляторами. А где вы все были ДО этого времени?
И все предлагают гугол, а человеку нужно решение без интернета. И вот он сделал.

NutsUnderline
11.02.2026 19:16а кто понабежал то, что то не вижу. это даже не упрек автору, в принципе, он сделал оптимально, для нынешних условий.
однако оверинжиниринг тоже сильно напрягает и тут очень показательный пример. мы в кармане носим компьютер на несколько порядков мощнее суперкомьютеров 30 летней давности, решаем на тем те же самые задачи но используя на порядки больше ресурсов. куча ресурсов тратиться в воздух, да на показ рекламы, и типа это нормально, модно, современно. А потом почему то иду крики про углекисклород, дефицит воды и электричества, дефицит чипов и всякие подорожания памяти.
вот к примеру могу предложить эмулятор какого нибуть zx spectrum/БК со встроенным бейсиком (или фортраном!) который и то будет весить меньше если он написан в нативном коде. плюс 1000 байт исходника на бейсике для расчета. или можно сделать этот сложнейший расчет скажем на чем то типа arduino. Но это же уровень вхождения и не будет градиентных кнопок.

sansmaster Автор
11.02.2026 19:16Спасибо за наводку на Brython — не знал про него, обязательно разберусь! Идея сделать веб-версию конвертера на Brython отличная — можно будет пользоваться прямо из браузера без установки. Я не профессиональный программист, это хобби — основная работа инженером ОВиК. Поэтому и ценю когда в комментариях подсказывают новые инструменты.

NutsUnderline
11.02.2026 19:16собственно android и electron примерно так и работают

pvzh
11.02.2026 19:16Неа, Электрон это HTML + JS + отдельный движок браузера под каждое приложение. А исходную идею веба помните? Один браузер для всех страниц. Сейчас браузер из коробки почти везде. Но нееет, для просмотра кабинета ОблРайГорЭнергоСбыта надо своё отдельное специальное Электрон-приложение. Так и живём

sansmaster Автор
11.02.2026 19:16Справедливо, для конвертера единиц HTML+JS — идеальный вариант по размеру. Но для расчёта тепловой мощности нужны таблицы интерполяции свойств гликолей при разных температурах и концентрациях, база данных реальных диаметров труб по материалам, расчёт расширительного бака по СП — это уже не один килобайт. А нативное приложение удобнее: одна иконка на рабочем столе, открыл и считаешь. Без браузера и поиска нужного файла.

tuxi
11.02.2026 19:16А программируемые калькуляторы есть в продаже? Там батарейки месяц легко живут. В отличии от смартыфона.

sansmaster Автор
11.02.2026 19:16Хорошая мысль! Но инженерный калькулятор не хранит базу данных труб по 4 материалам с реальными внутренними диаметрами, таблицы свойств гликолей при разных температурах и концентрациях, стандартные размеры расширительных баков по СП. Калькулятор считает формулы — а здесь половина работы это справочные данные, которые нужны для подстановки в эти формулы. Плюс смартфон и так всегда с собой — отдельное устройство носить не надо.

NutsUnderline
11.02.2026 19:16тут просто такой момент - статья то начинается с 1 конверсии в виде умножения на коэффициент. а калькулятор ночне встроен даже в смарт часы

Akina
Да даже обычный гуглопоиск и знает, и сразу переводит.
sansmaster Автор
Согласен, Google умеет переводить отдельные единицы. Но попробуйте на объекте без связи быстро посчитать тепловую мощность на пропиленгликоле 40% при 65°C или подобрать расширительный бак по СП 60.13330. Конвертер — это только часть приложения, основная ценность — инженерные калькуляторы с встроенными данными по теплоносителям и трубам. И всё это офлайн, в одном месте.