{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

Новые версии iOS и Android – подготовьте ваше мобильное приложение к изменениям

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

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

Если вспомнить предыдущие мажорные обновления, представленные Apple и Google, бывали случаи, что они создавали некоторые проблемы для разработчиков. Например, появление «темной темы», которая сегодня стала неотъемлемой частью любых интерфейсов, в свое время привело к нарушению дизайна различных приложений. В частности, приходилось вручную перекрашивать календарь под iOS, а также принудительно выставлять светлую тему для приложений, у которых просто не было сделано темного интерфейса.

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

Новшества Android

Операционная система Android с каждой версией увеличивает свои требования к использованию оперативной памяти. Так, до Android 7 приложения без проблем работали в фоновом режиме (нередко подвешивая телефон «намертво»). Но начиная с «семерки», ОС стала следить за работой приложений, и при исчерпании свободной памяти начала выгружать менее приоритетные утилиты. С каждой версией эта политика становится все жестче. Не сомневаюсь, что в Android 11 слишком тяжелые и громоздкие приложения будут выгружаться еще быстрее. Так что сейчас самое время провести ревизию и, быть может, исключить какую-то часть данных из хранения в оперативной памяти.

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

С «опасными» разрешениями тоже произошли изменения. Сначала в Android появилась возможность их разрешения или запрещения, то с 11 версии Android будет поддерживать возможность разрешения по каждому пункту только на текущую сессию. Так что если приложение не готово к изменению перечня разрешений, оно может давать сбои, и его придется переделывать.

iOS

Компания Apple, как известно, тщательно готовится к изменениям. Практически все разработчики в курсе, что дает новая iOS, и какие требования к приложениям появляются. Однако если вы давно не обновляли свое приложение, в скором времени могут возникнуть проблемы при его использовании и загрузке на маркет.

Например, с апреля 2020 года Apple перестала принимать новые приложения, которыми используется UIWebView для просмотра веб-контента. Уже загруженных приложений это пока не касается, но к концу года вы не сможете обновить свое приложение, если оно использует UIWebView API. Вместо этого Apple разработала WKWebView – более совершенную и, главное, безопасную библиотеку, которая решает многие проблемы компрометации пользователей через web, характерные для старой API. Для владельцев приложений – это сигнал о том, что нужно провести ревизию, какие библиотеки использует ваше ПО.

Кроме этого, в случае с Apple происходит активное развитие Swift UI – инструмента нативной разработки под iOS. В Swift UI появляются все новые и новые возможности, но при этом поддерживаются только iOS 13 и новее. Значительная часть новых фишек от Apple, которые появятся в iOS 14, потребуют Swift UI для своей реализации. А значит, они будут недоступны на старых версиях iOS.

Нюансы кросс-платформенной разработки

Кстати, многие мобильные приложения вообще создаются на базе кросс-платформенных фреймворков, таких как React Native или Flutter. Это удобно, ведь вы пишете код только один раз, а он компилируется для разных операционных систем (возможно, с небольшими доработками, но все же намного быстрее, чем отдельная разработка под каждую платформу). И если ваше приложение построено именно так, возникают дополнительные риски при появлении новых ОС.

Например, в случае, когда прекращается поддержка библиотек, о которых вы и не догадывались, но которые были использованы в фреймворке, ваше приложение просто перестанет работать. Нужно обязательно проверить, как именно будет работать ПО на базе новой операционной системы. В частности, большая часть проблем с новыми интерфейсами и той же «темной темой» относилась именно к проектам на React Native.

К тому же все новые «фишки» операционных систем от Apple и Google, такие как иконки для мессенджеров, новый формат отображения информации и так далее, появятся в кросс-платформенных фреймворках несколько позже. Когда именно – знают только сообщества, развивающие эти фреймворки.

Необходимо подготовиться

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

  • Если у вас есть уже готовое приложение, нужно скачать тестовую версию новой ОС и проверить, как оно будет запускаться на ней;
  • Для Android нужно проверить требования к файловому доступу и скорректировать их;
  • Исключить привязку приложений к «опасным» разрешениям, чтобы операционная система не блокировала их;
  • Проверить факт использования устаревших и неподдерживаемых библиотек – как под iOS, так и под Android;
  • И, наконец, если вы планируете использовать новейшие функции, предусмотреть работу приложений под старыми ОС.

Последний пункт особенно важен для тех, кто занимается активным развитием своих мобильных приложений, ведь нам нужно, чтобы все пользователи были довольны работой вашего ПО. Обычно для этого приходится реализовывать альтернативные функции для старых ОС. Например, когда с выходом iOS 10 появилась авторизация при помощи токенов, для старых версии iOS ничего не оставалось, кроме обычной авторизация через запрос в браузере. Да, уровень безопасности для таких пользователей был ниже, но что делать, если они не могут или не хотят обновлять ОС? Нам же остается обеспечить максимально адекватную работу приложения на самых разных устройствах, а также обеспечить его соответствие самым новым требованиям маркетов.

Для этого нужно провести аудит текущей версии приложения уже сегодня, исправить несоответствия, провести тесты и решить, какие версии ОС вы готовы поддерживать. Например, недавно WhatsApp прекратил поддержку старых версий Android и iOS из соображений безопасности. И если количество ваших пользователей на iOS старше 10 и Android старше 7 незначительно, быть может, и не стоит тратить свои деньги и ресурсы на поддержку устаревших ОС?

0
Комментарии
-3 комментариев
Раскрывать всегда