Россия 196084 , Санкт-Петербург, ул. Заозерная, дом №8, корпус 2, Литера А, офис 212
Мы работаем по будням с 10.00 до 19.00 +7 (495) 215-53-16 +7 (812) 748-20-96 info@notissimus.comКейс футбольного клуба «Зенит»: как мы делали мобильное приложение и нарвались на аудит
Рассказываем о том, как мы столкнулись с аудитом со стороны заказчика и чем это закончилось
Хотя наш опыт показывает, что не бывает полностью беспроблемных проектов, тем не менее работа не предвещала никаких неожиданностей. Шла привычная рутина: есть договор, есть задачи, все заняты делом. Так как заказчиком были проработаны и дизайн, и полное техническое задание, то разработка проекта шла гладко и без необходимости множественных согласований.
Особенности приложения
С точки зрения архитектуры и сервер, и бекенд — полностью на стороне ФК «Зенит». Дополнительно мы сделали сервер push-уведомлений, но он тоже разместился на стороне заказчика.
Тотализатор, в котором можно принять участие прямо в приложении, перед началом игры испытывает ажиотажную нагрузку, а значит, надо добиться, чтобы пользователи не просто не разочаровывались интеграцией, а не замечали бы её вовсе.
Сервис push- уведомлений
Помню, когда отдали приложение на первый тест, то естественно не всё работало, так как не все интеграционные мероприятия были в полной мере завершены. У заказчика был некоторый шок: и это не работает, и то не так себя ведет. Это естественный процесс. После выяснения всех причин и коррекции методов API всё исправляется и начинает работать как ожидалось.
Аудит
Участвовало три устройства: одна из последних моделей iPhone и два Android — среднего и низкого ценового сегмента. Приложение одновременно запустили на всех трёх устройствах-участниках. Несложно догадаться, что первым отработал iPhone, затем (практически сразу) производительный Android и, наконец, с заметным отставанием слабенький Android.
Представители ФК «Зенит» поступили очень профессионально. Они внимательно изучили полученную от нас информацию, поблагодарили и… нашли компанию для получения независимой оценки.
Действительно, приложение долго отрабатывает на старте — это неоднозначный момент. Эксперимент продолжился, но уже на совсем ином уровне. Аудиторская компания провела большое исследование, по итогу которого подготовила несколько отчетов.
Ожидаемый результат: предоставление рекомендаций по рефакторингу и оптимизации исходного кода с целью увеличения производительности работы приложения — отдельно для каждой операционной системы.
- приведение кода согласно методологии Clean Architecture;
- оптимизация кода для работы с локальной базой данных;
- оптимизация кода для работы с сервером;
- оптимизация верстки пользовательского интерфейса.
- приложения работают корректно на каждой из платформ;
- код читабелен, монолитности структуры не наблюдается;
- роблем с базой данных не обнаружено;
- имеется несколько дополнений по замене WebView и некоторых UI-компонентов в версиях для обеих платформ с целью повысить читаемость и производительность кода.
Измерялась производительность и скорость отрисовки разных частей приложения. Требовалось исследовать эту сторону работы и сформировать рекомендации для проблемных разделов. Для аудита скорости было составлено 6 сценариев, проработано 11 параметров измерений.
- время запуска мобильного приложения находится в пределах нормы;
- на высокопроизводительных устройствах (среднебюджетные и выше) время загрузки данных находится в пределах допустимых значений;
- на устройствах с бюджетными процессорами открытие основного экрана происходит достаточно долго — рекомендуется разграничить первичную загрузку данных по блокам, отдельно друг за другом, чтобы добиться асинхронности вместо последовательной загрузки блоков, как делается, например, во многих мобильных банках;
- работа большинства экранов без нареканий — быстро и без ошибок;
- возникла проблема при скроллинге матчей — рекомендуется пересмотреть логику работы рекламных баннеров;
- авторизация сделана хорошо.
Что можно сказать?
Наши «да» и «нет»
Это совсем не так. UITableView отлично подходит для вертикальных списков, а проблемы с расчетом высоты случаются только при недостаточно профессиональной верстке. Волшебная асинхронность UICollectionView второго компонента тоже из разряда редкостей.
Приложение работает с компонентом WebView, который является серьезным испытанием для производительности. При этом происходит переход на сайт для получения и отображения ресурсов. WebView — действительно «бутылочное горлышко» в общей отзывчивости приложения, но заменить эту технологию пока возможности нет.
Всё, что приводило к усложнению дальнейшей работы и было чревато нехорошими последствиями, мы отбросили. Некоторые доработки согласовали с ФК «Зенит» и взяли в работу.
Аудит завершился как нельзя лучше.
Выводы
Например, сейчас мы добавляем интеграцию с сервисом, который отслеживает и анализирует действия пользователей в приложении для получения рекомендаций по оптимизации работы как самого приложения, так и бизнес-задач. Это тоже длительный процесс и наверняка придется задуматься о каких-то нюансах. Отметим высокий профессионализм представителей заказчика — работать с ними не только эффективно, но и приятно.
Давно работаем с командой Нотиссимус. Первое приложение, которое они сделали было для интернет-магазина атрибутики ФК «Зенит». Сейчас мы очень тесно сотрудничаем в части создания официального мобильного приложения болельщиков нашего клуба и у нас большие планы по развитию.