Абсолютное большинство мобильных приложений имеет интересный нюанс – «хвост» старых версий, которыми все еще продолжают пользоваться. В этой статье мы посмотрим, какие проблемы это приносит и как с этим бороться. Материал будет полезен и мобильным разработчикам, и тем, кто каким-либо образом связан с разработкой мобильных приложений, к примеру, разрабатывает backend-сервисы, которые используются в приложениях.
Что такое хвост старых версий и какие от него проблемы?
Допустим, пару лет назад вы выпустили версию 1.0.0, с тех пор произошло еще 30 релизов и текущая актуальная версия приложения в App Store или Google Play у вас, к примеру, 2.5.1. Если вы проанализируете логи обращений к серверу или посмотрите в систему аналитики, то увидите, что предыдущими версиями приложения всё ещё пользуются. Хвост старых версий – это те версии приложения, которые не просто установлены на телефонах пользователей, этими версиями продолжают пользоваться.
Если вы хотите увидеть динамику распределения версий по времени, можете построить графики на основе логов. Если у вас в приложении используется Firebase, подобный график можно посмотреть в виджете «Users by App version over time» из раздела Dashboard.
Как Обновить Приложения и Игры на Андроид Телефоне Сделать Обновление Установить Новую Версию 2022
Я вижу 3 основных группы проблем, которые создает подобный хвост:
1. Баги в текущих версиях приложения
В работе версий приложения, которые все еще встречаются у пользователей, есть баг (никогда такого не было и вот опять). Это может быть креш или какой-то плавающий баг в одной из фич, который приводит к некорректной работе приложения.
Даже если вы уже выложили новую версию с правкой, это не значит, что её уже успели скачать. «Довольные» пользователи нагружают вашу службу поддержки, пишут отзывы в App Store и Google Play, делятся негативом в социальных сетях.
2. Проблемы обеспечения обратной совместимости
Старые версии приложений могут использовать старые версии серверного API, значит нужно поддерживать обратную совместимость, а это далеко не всегда просто и бесплатно. В какой-то момент команда, отвечающая за backend, может сказать, что длительная поддержка разных версий API доставляет им сложности при разработке и тестировании. При этом неважно, каким из путей пойти: версионировать API или пытаться организовать ветвление if-else в коде имеющихся методов.
3. Недостаточно быстрое внедрение фич
В новых версиях приложения добавлен функционал, могут быть важны данные аналитики или доход, который этот функционал приносит, вот только пользователи не торопятся обновляться, приходится ждать. При таком ожидании мы можем терять время и деньги.
Форсируем обновления
Посмотрим на варианты форсирования обновлений мобильных приложений. Учтите, что время не стоит на месте – на момент прочтения этой статьи могут быть и другие инструменты, поэтому перед тем, как возьметесь за реализацию, проведите небольшое исследование.
Как обновлять приложения на андроиде.Как включить автообновление приложений Андроид.
1. Готовые решения
Для форсирования обновлений существуют готовые библиотеки. К примеру, на iOS такой библиотекой является Siren (ранее Harpy). При запуске приложения номер актуальной версии приложения будет получен из App Store. На основе выбранных вами правил пользователю будет показаны варианты: обновиться сейчас, пропустить новую версию или отказаться от обновления.
Библиотека существует с 2015 года, имеет тысячи звезд на Github, поддерживает локализацию на десятки языков, устанавливается через SPM и CocoaPods, а еще проверяет на возможность обновиться на новую версию с поправкой на текущую версию iOS на устройстве (к примеру, если новая версия приложения требует iOS 13, а на устройстве iOS 12, возможно, пользователю бесполезно сейчас предлагать скачивать обновление).
Решение довольно простое и надежное, рекомендую рассмотреть его, если у вас нет необходимости или желания управлять номерами версий, на которые нужно обновиться, и вы просто хотите, чтобы пользователям всегда предлагалась самая свежая версия. Библиотеки, аналогичные по функционалу Siren, есть и на Android, к примеру AppUpdater.
Для Android-приложений можно воспользоваться инструментом обновления от Google in-app updates. Он тесно интегрирован с Google Play, относительно прост в использовании, требует для своей работы Play Core library. In-app updates поддерживает 2 сценария обновления.
Сценарий Flexible updates позволяет запустить скачивание обновления в фоне, не прерывая взаимодействия пользователя с приложением, с точки зрения UX это очень хорошо. Второй сценарий – Immediate updates потребует от пользователей скачать и установить обновление, прежде чем продолжить использование приложения. Про его работу на хабре уже есть обзорная статья.
2. Самописные решения
Допустим, мы выпускаем новые версии приложений очень часто и не хотим тревожить пользователя предложениями обновиться, когда в этом нет крайней необходимости, или мы хотим управлять процессом «раскатки» релизов и не хотим, чтобы приложения сразу при запуске старались обновиться на последнюю версию. В этом случае для форсированного обновления нам бы пригодилась возможность гибко управлять номерами поддерживаемых версий.
Для каждого приложения на стороне сервера мы можем хранить два номера версий – минимальную необходимую и минимальную рекомендуемую. Идентификатором приложения может выступать Package name для Android и Bundle ID для iOS.
При запуске приложения мы будем сравнивать номер его версии с номерами, хранящимися на бэкенде:
- Если версия приложения ниже минимальной необходимой, нужно обновление (показываем кнопку перехода в нужный магазин приложений).
- Если версия приложения выше минимальной необходимой, но ниже минимальной рекомендуемой, можем предложить пользователю обновление, от которого он может отказаться до следующего запуска или до выхода следующей рекомендуемой версии.
Я предлагаю хранить версии в формате семантического версионирования, а не номеров сборки. Согласен, что сравнение двух целых чисел, которыми обычно характеризуют номера сборки, проще, чем парсинг строк в формате «1.2.17» и «1.5.13» и поочередное сравнение номеров мажора, минора и патча (на все это хорошо бы иметь тесты + на iOS можно использовать стандартную функцию compare), но у семантических версий вижу важные преимущества:
- Сотрудники службы поддержки, пользователи, аналитики, проджект и продакт менеджеры редко понимают про номера сборок, им проще посмотреть актуальную версию в Google Play и историю версий в App Store, а также историю релизов в системах аналитики.
- Номера сборки не всегда просто переносить между разными сборочными сервисами и машинами, вам придется помнить об этом при настройке CI/CD.
Храним номера версий на своем сервере
Можно хранить номера версий на сервере и отдавать их через API. Для хранения можно использовать базу данных или статичный файл (не забудьте в этом случае поставить короткое время жизни кэша или отключить его). Преимущества файла в том, что он будет работать быстро и не создавать при этом нагрузку на базу, что может быть актуально для приложений с большой аудиторией.
Пример реализации такого подхода можно посмотреть в материале Force-Updating Your Apps Should Be Industry Standard.
Firebase Remote Config
Firebase Remote Config – простой, бесплатный и довольно удобный инструмент для работы с различными фиче-флагами и параметрами. К вашим услугам панель администратора, где можно менять значения параметров, а также клиентский SDK, готовый к внедрению в мобильные приложения.
Номера версий вы можете хранить в Remote Config, пример реализации можно посмотреть тут.
Если в приложении уже есть Firebase, добавить Remote Config очень просто, но важно помнить про следующие нюансы:
- Remote Config не предназначен для частого чтения и имеет кэш со своим временем жизни (по умолчанию 12 часов), а значит изменения могут долго добираться до клиентов. Вы сможете управлять временем жизни кэша и использовать более агрессивный (частый) опрос, но в этом случае можете упереться в квоты Firebase. К тому же, если в Remote Config будет много параметров, частое скачивание их полного набора создаст ненужную нагрузку.
- В консоли Remote Config есть история изменений – вы сможете увидеть, кто и когда поменял значения, но у вас не получится ограничить доступ определенным пользователям на изменение какой-то части параметров.
- Remote Config не всегда стабильно вел себя при тестировании.
Мысли, идеи и советы
- Пользователи не всегда хотят или могут скачивать обновления. Им может быть неудобно в данный момент: садится телефон, дорогой или медленный интернет, не хватает места для установки новой версии. Если вы будете затруднять процесс использования ваших приложений частыми запросами на обновления, рискуете вызвать недовольство.
- В iOS 13 было снято ограничение на размер приложений для загрузки через сотовую связь, но необходимость обновить приложение более 200 Мб может отпугнуть пользователя.
- Если какая-то часть кода приложения очень часто меняется и требует частых обновлений, рассмотрите варианты ее переноса на бэкенд, чтобы ее можно было менять без перевыпуска приложения.
- Представьте, что вам пришлось выложить новую версию приложения с другим Package name на Android или Bundle ID на iOS. Фактически это означает выкладку новых приложений в сторы. Механизм обновления перестанет работать – нужно как-то мигрировать пользователей в новые приложения. Для самописных вариантов вы сможете помимо номеров версий заложить отдельное поле с url нового приложения для миграции.
- Если у вас есть несколько приложений, которые собираются из общего набора модулей, каждый из которых имеет свою версию, рассмотрите вариант сравнивать версии поддерживаемых модулей, а не приложений.
- Блог компании Skyeng
- Разработка под iOS
- Разработка мобильных приложений
- Разработка под Android
Источник: habr.com
Как обновить программы или приложения на смартфоне Huawei (honor)?
Не все знают, но многие догадываются, что самым важным элементом современного смартфона является его программное обеспечение, или попросту говоря его приложения. Без этих программ, состоящих из последовательно расположенных значков машинного кода в памяти смартфона, ваш телефон представляет собой просто красивую коробочку, которой можно воспользоваться только как зеркалом, глядя на своё отражение в его тёмном экране.
Только программное обеспечение может вдохнуть ЖИЗНЬ в ваше мобильное устройство, наполняя его жизненной силой. С момента включения телефона и автоматической загрузки Операционной Системы Android (ОС Android), ваши приложения, которые вы установили в него, начинают пульсировать, обеспечивая вас связью со всем миром, чтобы Вы смогли получить удовольствие от каждого прожитого мгновения.
Программы тоже живые существа и у них бывает период становления и молодости, а может прийти и старость. Поэтому со временем с некоторыми приходится прощаться, удаляя их из памяти смартфона.
Самый верный способ продления жизнеспособности приложений вашего смартфона это поддержание их в рабочем состоянии путём обновления. Необходимость постоянного обновления программ его разработчиками вызвана необходимостью улучшения их потребительских свойств (т.е. эволюция программы) и адаптации их к постоянно меняющимся условиям.
А как узнать есть ли необходимость в обновлении приложений, установленных на телефоне Huawei или Honor?
Многие программы являются системными, и они обновляются вместе с обновлением всей Операционной Системы, которую проводит сам производитель смартфона. Обновление же приложений, которые вы установили на свой телефон сами, следует проводить самостоятельно.
Хорошей же новостью в данном случае является то, что ваш смартфон периодически сам автоматически проверяет наличие обновлений всех установленных программ и при необходимости он может обновить их сам.
Порядок настройки режима автоматического обновления описан в статье «Как ограничить автоматическое обновление приложений на смартфоне HUAWEI (honor)?», для перехода к ней нажмите здесь.
А как апгрейдить приложения на смартфоне Huawei?
Слово «Апгрейд» с англ. «Upgrade» в переводе обозначает «усовершенствовать», «модернизировать» или «обновить».
Далее мы опишем порядок их ручного обновления на мобильном устройстве, где в качестве примера воспользуемся редакционным смартфоном Huawei P smart (2018) с Операционной Системой Android 9 Pie.
Инструкция по обновлению приложений на смартфоне Huawei (honor).
Лучше всего обновлять программы с помощью системного приложения Google Play Маркет. Оно позволяет апргрейдить все ваши исполняемые файлы, у которых появились более свежие версии, не обращаясь на сайты их разработчиков.
В то же время с помощью этой программы вы можете обновить любое приложение вашего телефона в ручном режиме.
1. Запускаете с Главного экрана Google Play Маркет.
2. На главной странице Google Play Маркет нужно нажать на значок «Три линии» в строке поиска или свайпом от левого края экрана вправо открыть Настройки.
3. В Настройках Google Play Маркет войти в раздел «Мои приложения и игры».
4. В этом разделе необходимо активировать подраздел «Обновления».
В подразделе «Обновления» вам будет представлен список всех программ, которые имеют более свежие версии, но они ещё не обновлены на вашем смартфоне. Об этом говорит надпись «Доступны обновления (17)». Число «17» говорит о количестве программ, которые сейчас могут быть обновлены.
Здесь вы можете запустить процесс обновления всех приложений, нажав на значок «Обновить все», или выбрать одно из них для ручного обновления, нажав на значок «Обновить» в строчке этой программы.
Как обновить приложения на смартфоне Samsung.
Все приложения смартфона являются живыми существами. Но нужно сделать оговорку – они не биологические живые существа, а техногенные. Они, как и мы, биологические существа, рождаются, растут, учатся жить в этом сложном мире, эволюционируют. Они, так же как и мы, взрослея умнеют. Но если не поддерживать «актуальность» приложения, то оно стареет и в скорости «умирает».
Поэтому его приходится удалять из памяти телефона, чтобы заменить на новый, более современный и жизнеспособный программный продукт.
Техногенный мир живёт в более ускоренном времени, поэтому срок жизни многих программ может составлять несколько месяцев. Долгожители же техногенного мира живут уже по нескольку лет, но это очень редкий случай, и если программистам удалось создать программный продукт, который живёт более десятка лет, то это большая удача. И чаще всего это обеспечивается неустанным совершенствованием самой программы его разработчиками, постоянно выпускающих более актуальные версии.
А где найти последние версии приложений, которые были установлены на смартфоне Samsung?
Каждый разработчик программы, как правило, на своём сайте выкладывает самые актуальные версии своих программ, которые вы можете скачать и тем самым обновить ранее установленные приложения. Если же вы приобрели приложение за деньги, то в этом случае разработчик, взяв на себя обязательство поддержания работоспособности своих программ, как правило, сам направляет вам их обновленные версии.
Но что делать, если количество приложений, установленных на вашем смартфоне, доходит до нескольких десятков, а порой и более ста.
Многие программы, установленные на смартфонах являются системными, и чаще всего они обновляются вместе с обновлением всей Операционной Системы, которую проводит производитель вашего смартфона. Обновление же приложений, которые вы установили на свой телефон самостоятельно, следует проводить самому.
А как обновить все приложения на смартфоне Samsung до последней версии?
Но не нужно отчаиваться, так как ваш смартфон в соответствии со своими первичными настройками, сам в автоматическом режиме проверяет появление новых версий программ, установленных на вашем телефоне, и сам же может обновить их.
Для этого нужно воспользоваться системным магазином приложений Google Play Маркет, с помощью которого вы в своё время и устанавливали программы на свой смартфон. Google Play Маркет позволяет производить апгрейд всех ваших программ, у которых появились новые версии, не переходя на сайты разработчиков. (Слово Апгрейд с англ. Upgrade в переводе обозначает усовершенствовать, модернизировать или обновить.)
Порядок же обновления приложений, разработанных только для смартфонов Samsung, описан в статье «Как обновить собственные приложения Samsung в Galaxy Store?». Для перехода к статье нажмите здесь.
Далее мы опишем порядок обновления программ на мобильном устройстве, где в качестве примера воспользуемся редакционным смартфоном Samsung Galaxy A50 с Операционной Системой Android 9 Pie.
Инструкция по обновлению приложений на смартфонах Samsung.
1. Запускам с Главного экрана магазин приложений Google Play Маркет.
Скрин №1 – нажать на значок Google Play Маркет.
2. На основной странице Google Play Маркет нужно открыть Меню, нажав на значок «Три линии» в строке поиска, либо провести свайпом от левого края экрана вправо.
Скрин №2 – свайпом от левого края экрана вправо открыть Меню.
3. В Меню Google Play Маркет войти в раздел «Мои приложения и игры».
Скрин №3 – нажать на раздел «Мои приложения и игры».
4. Это раздел содержит три подраздела:
Обновления, Установленные, Библиотека.
Нам нужно войти в подраздел «Обновления».
В подразделе «Обновления» представлен список всех программ вашего смартфона, которые имеют новые версии, но которые ещё не установлены на вашем телефоне. Об этом говорит надпись «Доступны обновления (18)». Число «18» говорит о количестве программ, которые сейчас могут быть обновлены.
Скрин №4 – нажать на значок подраздела «Обновления». На экране список всех обновляемых приложений.
Так как смартфон чаще всего эксплуатируется в вертикальном положении, то на его экране не всегда удаётся поместить всю информацию, и часть её бывает скрыта. Поэтому, рекомендуется для увеличения объёма выводимой информации, телефон перевести в горизонтальное положение. После этого на экране будет видна уже вся необходимая информация.
На этой странице вы можете запустить процесс обновления всех приложений, нажав на значок «Обновить все», или выбрать одно из них для ручного обновления, нажав на значок «Обновить» в строчке этой программы.