Одна программа, три сборки: почему версии выходят порознь

Пользователь каталога видит картину регулярно: у программы три версии, номера не совпадают, список функций отличается, а даты выхода разъезжаются на месяцы. Виноват не ленивый разработчик — точнее, не только он.

Платформы разрешают разное

Настольная система позволяет программе почти всё: писать в любую папку, ставить службу, запускаться при старте, следить за буфером обмена. Мобильные системы построены наоборот — каждое такое действие либо требует отдельного разрешения, либо запрещено. Поэтому «та же программа» на телефоне неизбежно теряет часть возможностей, и это не урезание ради экономии, а граница платформы.

Один код или три — вопрос не идеологии, а сопровождения

Есть два способа выпускать три версии. Первый — писать под каждую систему отдельно: получается быстрее и точнее по поведению, но каждая правка делается трижды. Второй — держать общий код и тонкую прослойку под каждую систему: правка одна, но она ждёт, пока прослойка поддержит новое поведение платформы.

Малые команды выбирают второй путь и потому выпускают настольную версию первой, а мобильные — по мере готовности. Крупные держат отдельные команды и всё равно не синхронизируют релизы: у мобильных версий свой цикл. Как этот выбор влияет на срок, бюджет и скорость правок, подробно разобрано здесь: разработка мобильного приложения на общем коде и отдельными сборками сравнивается по цене сопровождения, а не по красоте решения.

Магазин добавляет собственную задержку

Настольную версию автор выкладывает сам — и она доступна в тот же час. Мобильная проходит проверку магазина, и срок проверки автору неподвластен. Отсюда типичная картина: исправление критической ошибки в настольной версии вышло вчера, в мобильной ждёт третий день. К этому добавляются требования магазинов к минимальной версии платформы — иногда ради них приходится пересобирать программу целиком.

Почему функции отличаются, а не только даты

Часть различий объясняется экономикой. Настольная версия бесплатна, мобильная продаётся или показывает рекламу — соответственно, платные функции появляются там, где за них платят. Часть — правилами магазинов: скачивание произвольных файлов, установка дополнений и автоматические обновления вне магазина на мобильных системах или запрещены, или сильно ограничены.

Что из этого полезно знать при выборе

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