Пару лет назад мы упростили жизнь пользователям мобилок и сделали так, чтобы базы городов можно было не скачивать и пользоваться 2ГИС онлайн. Сегодня пошли дальше и поменяли приоритет между локальными данными и данными с сервера. Расскажу, как теперь ваше приложение будет получать точную карту и справочник.
Многие годы приложение 2ГИС требовало скачивать локальные базы городов и работало офлайн. Это было и преимуществом, и недостатком одновременно: его работоспособность не зависела от интернета, но без базы вообще не работало.
Два года назад вышла версия 6.0, в которой карта, справочник и навигатор стали доступны онлайн. С этого момента пользователям было не обязательно загружать базы. Но мы потеряли ключевое преимущество: без интернета (то есть, как правило, в критической ситуации) 2ГИС превращается «в тыкву». Спустя два года увидели, что скачанная база есть уже только у половины аудитории.
Как работает 2ГИС сейчас
Если упростить, алгоритм работы приложения при запуске выглядит примерно так.
Так работает 2ГИС по принципу offline-first — сначала ищет данные, скачанные на телефоне
Это то, что мы называем принципом offline-first, когда приложение идёт за данными в первую очередь в скачанную на телефон базу города. И если её не находит, то обращается к онлайн-серверам.
справочник мест и компаний обновляется каждый день
карта обновляется каждый день
поиск по всем городам
онлайн-серверы
локальные базы городов
справочник мест и компаний обновляется два раза в неделю
карта обновляется раз в месяц
поиск только по городу со скачанной базой
Получается, что сейчас примерно половина пользователей видит устаревшую информацию в местах, где за месяц успели появиться новые дома или объекты карты.
Кроме того, мы начали добавлять в приложение много интересных возможностей: от поиска по всем городам сразу до интеграции нейросетей. Всё это работает только в онлайн-режиме — доставить их на телефоны пользователей без потери качества не получится.
Что изменили
Мы решили поменять поведение приложения с offline-first, на online-first — то есть сделать так, чтобы 2ГИС искал данные в первую очередь в онлайн-API. И обращался к скачанным базам, только когда нет интернета или он слишком медленный. То же самое решили проделать с картой.
Новый алгоритм — так называемый online-first — выглядит примерно так.
Так работает 2ГИС по принципу online-first — сначала ищет данные в интернете и в случае неуспеха или медленного соединения идёт за сохранёнными данными на телефоне, пусть и чуть менее актуальными
Такое решение позволит нам обновлять данные и алгоритмы в любой момент. И при этом мы оставим лояльным пользователям возможность скачать базу данных и пользоваться 2ГИС там, где интернета нет: в подземке, в горах и даже в самолёте.
Что показали тесты
Мы уже опробовали новый механизм в виде A/B-теста в некоторых сценариях: это основной поиск, отображение его результатов и карточки компаний и мест.
Мы разделили 5% аудитории на две равные группы (по 2,5%): одной включили данные в режиме online-first, а второй — в offline-first. Подстраховались и сделали так, чтобы пользователи могли принудительно включить offline-first в настройках — на случай, если понадобится откатиться. Предварительные результаты показали, что за время теста всего пара десятков человек из сотен тысяч пользователей зашли в настройки и вернули «как было», что, конечно, при таких масштабах очень мало.
Параллельно и независимо включили online-first карту для 5% Android-пользователей. Увидели, что по скорости новое поведение ничем не уступает тому, что есть сейчас. Также не заметили какой-либо статистически значимой разницы в скорости работы онлайн- и офлайн-поиска.
Что дальше
В течение нескольких месяцев мы включим online-first всей аудитории во всех сценариях. И тогда полностью развяжем себе руки для развития поиска, и пользователи станут получать самые свежие данные гораздо быстрее.
Следующий шаг — уменьшить размеры баз, чтобы их было проще скачивать. В идеале хотим научиться автоматически загружать нужную территорию, чтобы выручать в критических ситуациях.
Нажимая кнопку «Комментировать», вы принимаете условие Лицензионного соглашения и даёте ООО «ДубльГИС» согласие на обработку персональных данных на условиях и в целях, определённых «Политикой конфиденциальности».