Знакомая ситуация: сидишь на объекте, смотришь в проект — давление указано в кгс/см², а на манометре бары. В голове пытаешься вспомнить коэффициент. Или заказчик спрашивает: «А сколько это в гигакалориях?» — и ты лезешь в 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 как первую площадку — он набирает популярность, и для российских пользователей это логичный выбор.

Процесс оказался достаточно простым:

  1. Загружаешь APK и сертификат подписи

  2. Заполняешь карточку: описание, скриншоты, иконка, категория

  3. Указываешь что приложение не собирает данных (а оно действительно не собирает — ни аналитики, ни трекеров, ничего)

  4. Отправляешь на модерацию

Модерация прошла за пару дней.

Что пошло не так (а что-то всегда идёт не так)

Размер APK. 35 МБ за калькулятор — звучит смешно. Но Python-рантайм, который упаковывается внутрь, весит около 30 МБ. Это главный минус Kivy. Решения два: смириться или переписать на Kotlin. Я выбрал первое.

Кириллица в Kivy. Не все шрифты корректно рендерят кириллицу. Решение нашлось быстро — использовать системные шрифты. Но нервы потрепало.

Тестирование. Эмулятор Android Studio — это не реальный телефон. Некоторые вещи (скорость отклика, размер элементов, удобство ввода) можно оценить только на реальном устройстве. Совет: не откладывайте тест на реальном телефоне до последнего.

Что дальше

  • Google Play — AAB уже собран, в планах регистрация аккаунта разработчика

  • iOS — код адаптирован, для сборки нужен Mac

  • Новые расчёты — подбор насоса, расчёт воздуховодов, гидравлический расчёт системы отопления

  • Ваши идеи — если пользуетесь приложением и не хватает какого-то расчёта, напишите

Итого

Можно ли написать полезное мобильное приложение, не будучи мобильным разработчиком? Да, если знаешь Python и у тебя есть конкретная проблема, которую нужно решить.

Kivy + Buildozer — не идеальный стек. APK большой, производительность не как у нативного приложения, экосистема библиотек скромная. Но для инструмента, который решает конкретную задачу конкретных людей — этого более чем достаточно.

Главное — я больше не гуглю «кгс/см² в бары». И вы можете не гуглить.


Скачать бесплатно в RuStore: Engineering Converter

Бесплатно. Без рекламы. Без интернета. Без регистрации. Просто инженерный инструмент.


Если вы инженер ОВиК, проектировщик, монтажник, сантехник или студент технического вуза — попробуйте. И напишите в комментариях, каких расчётов и единиц не хватает. Я добавлю.

Комментарии (45)


  1. Akina
    11.02.2026 19:16

    Универсальные конвертеры не знают про Гкал/ч и кгс/м²

    Да даже обычный гуглопоиск и знает, и сразу переводит.


    1. sansmaster Автор
      11.02.2026 19:16

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


  1. StasTukalo
    11.02.2026 19:16

    Спасибо!

    Скачать бесплатно в RuStore

    А можно апк гдето выложить, что бы напрямую качнуть?


    1. sansmaster Автор
      11.02.2026 19:16

      да где посоветуете выложить?


    1. sansmaster Автор
      11.02.2026 19:16

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


      1. StasTukalo
        11.02.2026 19:16

        Спасибо!


      1. KEugene
        11.02.2026 19:16

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


        1. sansmaster Автор
          11.02.2026 19:16

          спасибо . выложу. пришлю вам ссылку.


  1. LAutour
    11.02.2026 19:16

    Нативное приложение весило бы 5-10 МБ

    Мда, как все печально нынче стало.


    1. sansmaster Автор
      11.02.2026 19:16

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


      1. NutsUnderline
        11.02.2026 19:16

        ато разработка на Python — в разы быстрее. 

        ну это кого чему в школе учили :) тоже ведь есть моментики.

        для интереса посмотрел в принципе под android есть и basic и pascal и fortran но каждый со своими моментами будет

        а один один коммерческий теплокалькулятор похоже весь на веб технологиях. .apk у него 3MB весит :)


        1. sansmaster Автор
          11.02.2026 19:16

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


          1. NutsUnderline
            11.02.2026 19:16

            я лично это дело не пробовал (там еще и подписка в евро и еще кое какие аспекты) но софт этот именно про гликоли, ссылку нашел на профильном форуме .

            js как бы для того и предназначен чтобы запускать без изменений, runtime для него еще тяжелее, но он по сути встроенный, и для android и для web, чего там переписывать то. да и pascal похоже довели до нужной степени кросплатформенности

            на Python в моих рабочих Excel-скриптах

            а вот тут я наверное чего то не знаю: в excel можно исполнять скрипты на python ? там же как раз basic


      1. ABy
        11.02.2026 19:16

        Почему бы не напрячь нейросетку переписать приложение на Kotlin? Как раз подходящая задача для ИИ. И статью можно ещё одну написать:)


        1. JDJ
          11.02.2026 19:16

          плюсую, приложение бы весило 2мб, у меня блин видео проигрыватель весит меньше 4мб, а тут калькулятор 30.


  1. Ksiat
    11.02.2026 19:16

    А почему не распечатать?

    Помнится таблицы Брайля были весьма удобны.

    Или есть какие-то нюансы, мешающие бумажному виду?


    1. sansmaster Автор
      11.02.2026 19:16

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


      1. Aggle
        11.02.2026 19:16

        Извините, не смог удержаться:


    1. Ksiat
      11.02.2026 19:16

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


      1. sansmaster Автор
        11.02.2026 19:16

        Всё ок, я понял что имелось в виду)


        1. Okeu
          11.02.2026 19:16

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


          1. sansmaster Автор
            11.02.2026 19:16

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


            1. Okeu
              11.02.2026 19:16

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


  1. Octagon77
    11.02.2026 19:16

    Почему смущает 35 мегов? Сейчас проги уровня калькулятора могут и за сотню уйти,

    Зачем писать бесплатное приложнние - вот этого я не понимаю. Есть же возможность тупо выполнять Питон на смартфоне. Для этого точно есть специальные приложения, но я в них плохо разбираюсь ибо Термукс.

    А платное приложение должно быть не на Питоне, а быстрым. А что учить чтобы его писать - я не знаю ибо есть подозрение, что https://fluorite.game/ меняет возможно всё.


    1. sansmaster Автор
      11.02.2026 19:16

      35 мегов — да, согласен, для калькулятора немало. Но это ставится один раз и живёт в телефоне. Не 500 МБ же)

      По поводу Termux и запуска Python напрямую — можно, но это решение для разработчика, а не для инженера на объекте. Мне нужно было чтобы монтажник на стройке открыл приложение и за 5 секунд посчитал скорость в трубе, без терминала и командной строки.

      Fluorite выглядит интересно, спасибо за ссылку — гляну. Но у меня задача была конкретная: сделать инструмент для себя и коллег, а не изучить мобильную разработку. Python + Kivy позволили это сделать за пару вечеров.


      1. Octagon77
        11.02.2026 19:16

        чтобы монтажник

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


  1. Aliandwa
    11.02.2026 19:16

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


    1. sansmaster Автор
      11.02.2026 19:16

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


  1. N1X
    11.02.2026 19:16

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


    1. sansmaster Автор
      11.02.2026 19:16

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


  1. geov
    11.02.2026 19:16

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


  1. Smartor
    11.02.2026 19:16

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


    1. sansmaster Автор
      11.02.2026 19:16

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


  1. pvzh
    11.02.2026 19:16

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


    1. economist75
      11.02.2026 19:16

      Верно, но автору был бы еще более удобен для написания Brython - Python внутри HTML, транслируемый незаметно в JavaScript. Но он правильно сделал что сделал, а не превратил выбор стека в квест длиной год.

      Удивляет другое: сколько же мы умничаем в ответ на чужое доброе дело. Это тревожный сигнал. Как истинное чувство юмора с возрастом вырождается до сарказма, так и архитектурные вопросы начинают довлеть на результатом, каким бы полезным и простым в достижении он не был.


      1. TastaBlud
        11.02.2026 19:16

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

        И все предлагают гугол, а человеку нужно решение без интернета. И вот он сделал.


        1. NutsUnderline
          11.02.2026 19:16

          а кто понабежал то, что то не вижу. это даже не упрек автору, в принципе, он сделал оптимально, для нынешних условий.

          однако оверинжиниринг тоже сильно напрягает и тут очень показательный пример. мы в кармане носим компьютер на несколько порядков мощнее суперкомьютеров 30 летней давности, решаем на тем те же самые задачи но используя на порядки больше ресурсов. куча ресурсов тратиться в воздух, да на показ рекламы, и типа это нормально, модно, современно. А потом почему то иду крики про углекисклород, дефицит воды и электричества, дефицит чипов и всякие подорожания памяти.

          вот к примеру могу предложить эмулятор какого нибуть zx spectrum/БК со встроенным бейсиком (или фортраном!) который и то будет весить меньше если он написан в нативном коде. плюс 1000 байт исходника на бейсике для расчета. или можно сделать этот сложнейший расчет скажем на чем то типа arduino. Но это же уровень вхождения и не будет градиентных кнопок.


      1. sansmaster Автор
        11.02.2026 19:16

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


    1. NutsUnderline
      11.02.2026 19:16

      собственно android и electron примерно так и работают


      1. pvzh
        11.02.2026 19:16

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


    1. sansmaster Автор
      11.02.2026 19:16

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


  1. tuxi
    11.02.2026 19:16

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


    1. Aggle
      11.02.2026 19:16

      Есть, причём даже очень навороченные. Например, такие.


    1. sansmaster Автор
      11.02.2026 19:16

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


      1. NutsUnderline
        11.02.2026 19:16

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