Давай без б* (баз)
Тезисы
В 2021 году работа офлайн — одно из преимуществ мобильного 2ГИС — перестало быть таковым. Необходимость скачать сотни мегабайт сразу после установки приложения, чтобы просто начать им пользоваться, приводила к серьёзному проценту отказов.

Мы хотим поделиться историей, как за год из офлайн приложения мы сделали гибридное, работающее и со скачанной базой, и без неё — полностью в онлайн режиме.

Перед нами стояло несколько непростых технических задач:
  • Научиться быстро выводить первые результаты запросов, которые могут содержать десятки тысяч результатов. В худшем случае, когда плохое соединение, за единицы секунд. А в лучшем — за сотни миллисекунд.
  • Сохранить пользовательский сценарий максимально консистентным — ротация рекламодателей в выдаче не должна приводить к дубликатам на разных страницах или пропуску результатов.
  • Уменьшить связанность нашего продукта, в котором десятки различных сценариев получения справочных выдач. И изменение в одном часто могло затронуть совершенно неожиданные места. При этом нужно было не потерять возможность переиспользовать универсальные компоненты там, где они уместны.
Расскажем с какими трудностями столкнулись, какие ошибки совершили и какие не самые очевидные технические решения реализовали. Затронем как темы организации архитектуры мобильного справочника с картой, так и клиент-серверного взаимодействия.

Слушатели смогут оценить, стоит ли пытаться плыть против течения и отказываться от общепринятых подходов ради желания сделать продукт с лучшим UX. Узнают немного о внутреннем устройстве большого сложного продукта с многомиллионной аудиторией. Ну и конечно же о том, каких грабель в работе над задачей длиной в год можно избежать.
В 2021 году работа офлайн — одно из преимуществ мобильного 2ГИС — перестало быть таковым. Необходимость скачать сотни мегабайт сразу после установки приложения, чтобы просто начать им пользоваться, приводила к серьёзному проценту отказов.

Мы хотим поделиться историей, как за год из офлайн приложения мы сделали гибридное, работающее и со скачанной базой, и без неё — полностью в онлайн режиме.

Перед нами стояло несколько непростых технических задач:
  • Научиться быстро выводить первые результаты запросов, которые могут содержать десятки тысяч результатов. В худшем случае, когда плохое соединение, за единицы секунд. А в лучшем — за сотни миллисекунд.
  • Сохранить пользовательский сценарий максимально консистентным — ротация рекламодателей в выдаче не должна приводить к дубликатам на разных страницах или пропуску результатов.
  • Уменьшить связанность нашего продукта, в котором десятки различных сценариев получения справочных выдач. И изменение в одном часто могло затронуть совершенно неожиданные места. При этом нужно было не потерять возможность переиспользовать универсальные компоненты там, где они уместны.
Расскажем с какими трудностями столкнулись, какие ошибки совершили и какие не самые очевидные технические решения реализовали. Затронем как темы организации архитектуры мобильного справочника с картой, так и клиент-серверного взаимодействия.

Слушатели смогут оценить, стоит ли пытаться плыть против течения и отказываться от общепринятых подходов ради желания сделать продукт с лучшим UX. Узнают немного о внутреннем устройстве большого сложного продукта с многомиллионной аудиторией. Ну и конечно же о том, каких грабель в работе над задачей длиной в год можно избежать.
Видеозапись доклада
Информация о спикере
Владимир Иванов
Руководитель группы разработки ПО, 2ГИС
Работаю в 2ГИС, страшно подумать, с 2013 года. Прошёл путь от Junior C++ разработчика до руководителя команды из десятка крутых инженеров.

На текущей позиции отвечал за доставку самых сложных задач последних лет, таких как замена картографического 3D-движка, переход к бесшовной карте России и реализация гибридного режима работы мобильного приложения 2ГИС.

Люблю вместе с коллегами рисовать схемки маркером на доске, а ещё писать код на современном C++ (=
Дмитрий Головнёв
Разработчик, 2ГИС
C 2013 года разрабатываю ядро мобильных приложений 2ГИС.

Реализовал с нуля ряд крупных подсистем продукта, таких как собственная система аналитики, синхронизируемая CRDT база данных, remote config и другие. Стоял у истоков подсистемы справочника, ставшей моей постоянной зоной ответственности. Спроектировал справочник для регионального, бесшовного, а теперь и гибридного поколения приложения.

Люблю искать и находить компромисс между гибкостью и эффективностью решения при минимальном количестве кода.

В свободное время аудиофил и велосипедист.
  • Владимир Иванов
    Руководитель группы разработки ПО, 2ГИС
    Работаю в 2ГИС, страшно подумать, с 2013 года. Прошёл путь от Junior C++ разработчика до руководителя команды из десятка крутых инженеров.

    На текущей позиции отвечал за доставку самых сложных задач последних лет, таких как замена картографического 3D-движка, переход к бесшовной карте России и реализация гибридного режима работы мобильного приложения 2ГИС.

    Люблю вместе с коллегами рисовать схемки маркером на доске, а ещё писать код на современном C++ (=
  • Дмитрий Головнёв
    Разработчик, 2ГИС
    C 2013 года разрабатываю ядро мобильных приложений 2ГИС.

    Реализовал с нуля ряд крупных подсистем продукта, таких как собственная система аналитики, синхронизируемая CRDT база данных, remote config и другие. Стоял у истоков подсистемы справочника, ставшей моей постоянной зоной ответственности. Спроектировал справочник для регионального, бесшовного, а теперь и гибридного поколения приложения.

    Люблю искать и находить компромисс между гибкостью и эффективностью решения при минимальном количестве кода.

    В свободное время аудиофил и велосипедист.
Все доклады секции