Сегодня поговорим об обновлениях. Как устанавливать их так,
чтобы легко, надежно и желательно без привлечения специалистов со стороны
заказчика.
Для нас этот вопрос особенно важен, потому что мы
ориентированы на кастомизированные проекты. Причем мы не просто берем
конструктор, собираем, меняем настройки – вуаля, новый проект. Наши проекты
новые без дураков, у каждого куча собственных фишек и индивидуальных
особенностей. Соответственно, обновляются они тоже по одному, и не регулярно, а
по мере пользовательской необходимости, так что, например, для OS Android нас Google Play как механизм обновления не устроит.
Проще говоря, обновления чего-нибудь для кого-нибудь – это
то, чем мы занимаемся постоянно, проектов-то много. Придем с утра в офис и
давай обновлять…
Не подумайте, что мы жалуемся. Вовсе нет! Курс на
кастомизацию мы взяли сознательно и точно знали, на что идем. А проблему
обновлений мы решили. Как? Секрет, но вам скажем.
Давным-давно, во времена Palm OS, мы решали ее очень просто. Удаленного обновления тогда не
существовало, и все делалось одним-единственным способом – через программу HotSync.
Когда мы выпустили версию 3.0, мы в числе прочего поменяли и
способ обновления. Сделали в программе
«Наполеон – Администратор» закладку
«Обновления». Сейчас мы таким способом только лицензии подгружаем (о чем,
кстати, в прошлый раз писали),
а тогда эта закладочка много для чего использовалась.
Так вот. Формировали пакет со всеми данными, которые в
программе поменялись, передавали, а на месте они аккуратно раскладывались. Не
подменой программы, а именно обновлением самого кода программы. Сам файл весил
немного, килобайт сто. Тогда еще 3G практически не было и вообще не так-то
просто было что-то передать, так что маленький размер был существенным плюсом.
Мы очень собой гордились – филигранное же дело! Но потом от
этого варианта пришлось отказаться, потому что Windows Mobile начал
стремительно устаревать, меняться, производители его все время дорабатывали, о
чем не всегда сообщали. Это создавало кучу неудобств и пользователям, и нам,
всячески нарушало стройность и красоту нашей системы.
Пришлось меняться. В середине 2011 года, с выходом версии
нашей программы для OS Android,
мы снова взяли другой подход к обновлению. Он оказался удачным, и мы до сих пор
так делаем.
На нашем сервере есть директория каждого нашего проекта.
Дорабатываем программу – выкладываем обновления в эту директорию – сообщаем
заказчикам, что обновление готово, можно загружать.
Кстати, мы никогда не делали и не сделаем принудительного
обновления. Вас когда-нибудь раздражал девайс, который в середине вашего
рабочего процесса вдруг начинает перезагружаться и тупить? Спорю, что да.
Поэтому мы против того, чтобы мешать пользователю, когда он работает. Будет
свободен – нажмет кнопку и запустит процесс.
Выглядит так: идем в раздел меню «О программе»…
…и нажимаем кнопку «Проверить обновления».
Если обновления есть, программа ими займется, а по окончании
процесса отчитается.
Если обновлений нет, она вам об этом скажет.
Плюсы этого подхода:
- не надо иметь в виду какие-то отдельные устройства с их
особенностями, загрузить файл сможет любой «Андроид»;
- файл обычно в пределах полумегабайта, в самых
исключительных случаях (при очень больших обновлениях) – до мегабайта. Редко,
но бывает. Но редко. Словом, при современном уровне связи вполне симпатичный
размер файла;
- он отлично дополняет наш сервис баг-репорта (о котором мы
писали тут).
Случается ошибка (ой, не говорите про мифические программы, с которыми ошибок
не случается никогда), программа отправляет нам сообщение, мы его получаем,
чиним, что надо, отправляем им – и все это без участия ИТ-представителей и
вообще без лишних переписок и растолковываний.
Да, не самый утонченный вариант и не самый изящный. Но
утонченный у нас уже был. А сейчас мы пришли к выводу, что обновления – это не
та задача, где стоит гоняться за красивыми решениями.
Гоняться надо за надежностью.
Комментарии