Россия 196084 , Санкт-Петербург, ул. Заозерная, дом №8, корпус 2, Литера А, офис 212
Мы работаем по будням с 10.00 до 19.00 +7 (495) 215-53-16 +7 (812) 748-20-96 info@notissimus.comКейс футбольного клуба «Зенит»: как мы делали мобильное приложение и нарвались на аудит
Рассказываем о том, как мы столкнулись с аудитом со стороны заказчика и чем это закончилось
Хотя наш опыт показывает, что не бывает полностью беспроблемных проектов, тем не менее работа не предвещала никаких неожиданностей. Шла привычная рутина: есть договор, есть задачи, все заняты делом. Так как заказчиком были проработаны и дизайн, и полное техническое задание, то разработка проекта шла гладко и без необходимости множественных согласований.
![](https://notissimus.com/wp-content/uploads/2024/01/zenit-emb.png)
Особенности приложения
![](https://notissimus.com/wp-content/uploads/2024/01/zenit1-1.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit1-2.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit1-3.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit1-4.png)
С точки зрения архитектуры и сервер, и бекенд — полностью на стороне ФК «Зенит». Дополнительно мы сделали сервер push-уведомлений, но он тоже разместился на стороне заказчика.
Тотализатор, в котором можно принять участие прямо в приложении, перед началом игры испытывает ажиотажную нагрузку, а значит, надо добиться, чтобы пользователи не просто не разочаровывались интеграцией, а не замечали бы её вовсе.
Сервис push- уведомлений
Помню, когда отдали приложение на первый тест, то естественно не всё работало, так как не все интеграционные мероприятия были в полной мере завершены. У заказчика был некоторый шок: и это не работает, и то не так себя ведет. Это естественный процесс. После выяснения всех причин и коррекции методов API всё исправляется и начинает работать как ожидалось.
![boss boss](https://notissimus.com/wp-content/uploads/2023/07/boss.png)
Аудит
Участвовало три устройства: одна из последних моделей iPhone и два Android — среднего и низкого ценового сегмента. Приложение одновременно запустили на всех трёх устройствах-участниках. Несложно догадаться, что первым отработал iPhone, затем (практически сразу) производительный Android и, наконец, с заметным отставанием слабенький Android.
Представители ФК «Зенит» поступили очень профессионально. Они внимательно изучили полученную от нас информацию, поблагодарили и… нашли компанию для получения независимой оценки.
![](https://notissimus.com/wp-content/uploads/2024/01/zenit2-1.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit2-2.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit2-3.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit2-4.png)
Действительно, приложение долго отрабатывает на старте — это неоднозначный момент. Эксперимент продолжился, но уже на совсем ином уровне. Аудиторская компания провела большое исследование, по итогу которого подготовила несколько отчетов.
Ожидаемый результат: предоставление рекомендаций по рефакторингу и оптимизации исходного кода с целью увеличения производительности работы приложения — отдельно для каждой операционной системы.
- приведение кода согласно методологии Clean Architecture;
- оптимизация кода для работы с локальной базой данных;
- оптимизация кода для работы с сервером;
- оптимизация верстки пользовательского интерфейса.
- приложения работают корректно на каждой из платформ;
- код читабелен, монолитности структуры не наблюдается;
- роблем с базой данных не обнаружено;
- имеется несколько дополнений по замене WebView и некоторых UI-компонентов в версиях для обеих платформ с целью повысить читаемость и производительность кода.
Измерялась производительность и скорость отрисовки разных частей приложения. Требовалось исследовать эту сторону работы и сформировать рекомендации для проблемных разделов. Для аудита скорости было составлено 6 сценариев, проработано 11 параметров измерений.
- время запуска мобильного приложения находится в пределах нормы;
- на высокопроизводительных устройствах (среднебюджетные и выше) время загрузки данных находится в пределах допустимых значений;
- на устройствах с бюджетными процессорами открытие основного экрана происходит достаточно долго — рекомендуется разграничить первичную загрузку данных по блокам, отдельно друг за другом, чтобы добиться асинхронности вместо последовательной загрузки блоков, как делается, например, во многих мобильных банках;
- работа большинства экранов без нареканий — быстро и без ошибок;
- возникла проблема при скроллинге матчей — рекомендуется пересмотреть логику работы рекламных баннеров;
- авторизация сделана хорошо.
Что можно сказать?
![](https://notissimus.com/wp-content/uploads/2024/01/zenit4-1.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit4-2.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit4-3.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit4-4.png)
Наши «да» и «нет»
![](https://notissimus.com/wp-content/uploads/2023/02/xamarin-icon-black.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit-1.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit-2.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit-3.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit-4.png)
Это совсем не так. UITableView отлично подходит для вертикальных списков, а проблемы с расчетом высоты случаются только при недостаточно профессиональной верстке. Волшебная асинхронность UICollectionView второго компонента тоже из разряда редкостей.
![](https://notissimus.com/wp-content/uploads/2024/01/zenit-5.png)
Приложение работает с компонентом WebView, который является серьезным испытанием для производительности. При этом происходит переход на сайт для получения и отображения ресурсов. WebView — действительно «бутылочное горлышко» в общей отзывчивости приложения, но заменить эту технологию пока возможности нет.
![](https://notissimus.com/wp-content/uploads/2024/01/zenit3-1.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit3-2.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit3-3.png)
![](https://notissimus.com/wp-content/uploads/2024/01/zenit3-4.png)
Всё, что приводило к усложнению дальнейшей работы и было чревато нехорошими последствиями, мы отбросили. Некоторые доработки согласовали с ФК «Зенит» и взяли в работу.
Аудит завершился как нельзя лучше.
Выводы
Например, сейчас мы добавляем интеграцию с сервисом, который отслеживает и анализирует действия пользователей в приложении для получения рекомендаций по оптимизации работы как самого приложения, так и бизнес-задач. Это тоже длительный процесс и наверняка придется задуматься о каких-то нюансах. Отметим высокий профессионализм представителей заказчика — работать с ними не только эффективно, но и приятно.
Давно работаем с командой Нотиссимус. Первое приложение, которое они сделали было для интернет-магазина атрибутики ФК «Зенит». Сейчас мы очень тесно сотрудничаем в части создания официального мобильного приложения болельщиков нашего клуба и у нас большие планы по развитию.
![fc-zenit fc-zenit](https://notissimus.com/wp-content/uploads/2024/01/fc-zenit.png)
Результат проделанной работы
![](https://notissimus.com/wp-content/uploads/2021/09/mobilnoe-prilozhenie-fk-zenit.gif)