2014-07-13

О магазинах приложений

На хакатоне мобильных приложений для Омска случилось затронуть тему магазинов приложений и свободы программного обеспечения.


Собственно, в магазинах приложений нет ничего особо нового. Дистрибутивы Гну/Линукса (да и прочих Юниксов) издревле имеют репозитории, откуда одной командой можно скачать и установить почти любое доступное приложение. Это вам не искать, качать, запускать install.exe. Пожалуй, существование дистрибутивов вызвано чисто технической особенностью: разделяемые библиотеки в Юниксах устанавливаются в систему и доступны всем приложениям, а не включены в дистрибутив каждого приложения. Соответственно, для удобного разрешения, скачивания и установки зависимых библиотек репозитории и создавались. Впрочем, Убунту разжился и настоящим магазином в 2009, для продажи всякой проприетарщины и журнальчиков.

Проприетарные магазины начались с игр. Самый крупный сейчас Steam. А ведь он существует аж с 2003 года. Крупные издатели тоже любят обзаводиться своими магазинами, например Origin от Electronic Arts (с 2011). Ну и конечно производители консолей тоже любят привязывать пользователей к интернетам: Xbox Live (2002, старичок!), PlayStation Network (2006).

Ну а магазины всякоразных, в первую очередь мобильных, приложений, пожалуй, начались с того самого App Store для iPhone OS 2.0 в 2008. В том же 2008 и Гугль подтянулся со своим Android Market. Ну и пошло поехало. Своими магазинами обзавелись не только производители ОС, но и многие производители устройств, производители платформ на основе Андроида и прочие и прочие: Samsung Apps (2009), Opera Mobile Store (2011), Яндекс.Стор (2013). Ну и Microsoft, когда очнулась в мобильную разработку, тоже открыли Windows Phone Store в 2010. Есть свой магазин у Tizen и, конечно, у Amazon. А в Windows 8 появился и десктопный Windows Store.


Вновь вспоминая определения свободного ПО обратимся на этот раз с критериям Debian. Для разнообразия. Насколько современные магазины приложений им соответствуют?

Свободное распространение. Вроде все ок. Везде, где можно поставить клиентскую часть магазина и получить доступ к самому магазину, можно и скачать и установить программу. Дебиан, правда, требует, чтобы распространение не требовало денежной компенсации, т.е. было бы совершенно бесплатным. Но мы не можем требовать от магазинов, чтобы все приложения были бесплатными. Все же это магазин, а не репозиторий.

Доступ к исходным текстам. Плохо. Магазины не требуют с разработчиков публикации текстов. А разработчики (даже свободного ПО) не всегда удосуживаются публиковать ссылки на исходники.

Создание и распространение производных работ. Никак магазины этому не способствуют. Но, в принципе, и не препятствуют публикации другим разработчиком. Так что все по-честному. Есть исходники, модифицируй, собирай, публикуй, под своим отдельным аккаунтом. Следят ли магазины за клонами? App Store, может быть, и следит.

Распространение патчей, если нельзя распространять модифицированные версии ПО. Фиг с ним. Не забота это магазинов.

«Запрещается дискриминация людей и групп людей». О-о-о-о! Вот оно! В этих самых магазинах можно запросто закрыть доступ к приложению в любой отдельно взятой стране. А некоторые страны блокируются даже не разработчиками, а владельцами магазина. Дискриминация в чистом виде! Почему они всегда проверяют страну, откуда пришел пользователь? Почему нельзя разрешить распространение во всех странах, без явного выбора галочек?

«Запрещается дискриминации по областям деятельности». Тут вроде ограничений нет.

«Лицензия распространяется на любого, кто получил копию ПО». В общем-то, так оно и есть. Магазин знает каждого, что он получил эту самую копию. Для параноидальных разработчиков есть даже механизмы раздачи слон лицензий и их валидации.

«Лицензия не должна относиться исключительно к Debian». Ну мы тут и не про Дебиан говорим :)

«Лицензия не должна ограничивать другое ПО». Обычно так оно и есть. Пользователь может ставить любые программы в любых комбинациях и одна программа обычно не просит удалить другую (если нет конфликта в функциональности). Но встречаются интересные ограничения. Например, через магазин приложений нельзя распространять другие магазины приложений. Такова лицензия использования магазина приложений для разработчика.

В общем, все магазины приложений - гнусная проприетарщина и DRM. За исключением F-Droid.


По сути F-Droid — это скорее репозиторий, чем магазин. Андроидных приложений. Ибо платных приложений там нет, покупок из приложения он не поддерживает, и даже не следит, кто поставил приложения. Зато там все приложения свободные.

F-Droid работает почти как обычный линуксовый репозиторий. Есть клиентское приложение для поиска, установки и обновления ПО. Есть каталог приложений. Все как положено, с указанием лицензии, ссылкой на исходники и т.п. Сами apkшки собираются сугубо из исходников и подписываются сертификатом F-Droid. Разработчику, если его приложение попало в F-Droid, достаточно проставить новый тег в репозитории исходников и новая версия соберется и будет доступна через F-Droid. Весьма удобный механизм публикации обновлений.


К сожалению, умолчательной сейчас считается проприетарная лицензия. Что не всегда является оптимальным решением. По всей видимости, пока разработчики мобильных приложений (и игр) не начнут задумываться о вопросах лицензирования, у нас и будут процветать несвободные магазины. Посмотрим...