![](https://habrastorage.org/getpro/habr/upload_files/aad/bf8/0b6/aadbf80b67ea9339336ff0e96340ebd0.png)
Рассказываем, как IT-компания Технологика и российский стартап запустили мобильный агрегатор новостей, который опередил своё время.
Содержание
Идея и челлендж проекта
Изначально идея проекта была достаточно простой – создать удобный агрегатор, который собирал бы новости со всей сети в единое пространство. Чтобы пользователь мог получить максимально полную картину происходящего в мире, не прыгая с одной площадки на другую. Нужно было учитывать и то, что каждый новостной источник освещает события по-своему.
Именно здесь и начинает свой путь задумка проекта LifeLines – освещать все мировые события в максимально объективном и непредвзятом ключе, давая читателю возможность формировать свою точку зрения на происходящее.
Другими словами, LifeLines – это агрегатор новостей, который стремится предоставить пользователю широкий спектр возможностей для работы с поступающей информацией, начиная от обзора одного и того же новостного повода в разных СМИ, заканчивая возможностью настройки новостной ленты «под себя».
Мы-независимый проект и делаем то, что нам интересно и не заинтересованы в продвижении какой-то конкретной точки зрения. Мы заинтересованы лишь в одном - качественно подать пользователю информацию. И уже его задача - решить, какая у него точка зрения по данному вопросу. Человек должен сам формировать её на основе нескольких источников.
Вадим Питерский, управляющий проекта LifeLines
Фичи агрегатора LifeLines
![Интерфейс приложения LifeLines Интерфейс приложения LifeLines](https://habrastorage.org/getpro/habr/upload_files/951/2a1/252/9512a1252e1a74b7ce3ead88974377e3.png)
Резонансная новостная лента. Лента стремится донести пользователю наиболее важные события, анализируя, сколько упоминаний в СМИ они произвели.
Персональная новостная лента. Пользователи, которым по какой-то причине не нравится алгоритм резонансной ленты, могут сформировать свою ленту, включив в нее желаемые источники, из базы LifeLines.
Возможность дополнительной персонализации лент новостей, указав интересующие темы и географию. Также можно исключить из показа определенные источники или новостные теги.
Хронология новостей - возможность отследить, как развивалось событие во времени.
Справочная информация. Возможность, не выходя из приложения получить справочную информацию об исторических событиях и персоналиях, упомянутых в статье.
Telegram-каналы как дополнительный источник оперативной и эксклюзивной информации. Новостная выдача из традиционных веб СМИ при возможности обогащается видео- и фото-информацией из Telegram-каналов.
Исследование рынка
Первым на рынок выводился мобильный продукт и только после его запуска - веб версия продукта.
Анализ конкурентных проектов производится только среди новостных агрегаторов. Были проанализированы 2 группы конкурентов:
Крупные игроки вроде Mail.ru, Яндекс, Rambler.
Множество однотипных агрегаторов, предлагающих примерно один и тот же функционал.
![Сравнение крупных и мелких агрегаторов новостей Сравнение крупных и мелких агрегаторов новостей](https://habrastorage.org/getpro/habr/upload_files/6f1/b9a/786/6f1b9a7861e699274de6cfacd29e6c2d.png)
В первой группе очевидным фаворитом является Яндекс, имеющий огромные мощности и самые продвинутые алгоритмы для решения задачи, аналогичной LifeLines. Однако у него нет своего мобильного приложения специально для новостей.
Первая группа конкурентов живет замкнутой жизнью, слабо реагируя на фидбек пользователей. Внести какое-то непопулярное изменение в приложение, и потом получать годами негативные оценки – норма.
У второй группы есть существенный минус - посредственное качество продукта. Складывается ощущение, что цель подобных приложений состоит в том, чтобы показывать рекламу, а новости – дело вторичное. Тяжело обнаружить какую-либо изюминку, которая бы оправдывала такое отношение к пользователю.
Для того, чтобы выделиться на фоне конкурентных проектов LifeLines выработал несколько ключевых идей:
Прислушиваться к обратной связи. Приложение должно соответствовать актуальным потребностям пользователей. Для этого, в «Настройках», есть пункт «Предложения по улучшению»; также мы проводим опросы, какие улучшения пользователи хотели бы увидеть в первую очередь.
Оригинальные идеи в функционале приложения, которых еще ни у кого не реализовано. Например, в новостной ленте мы используем не только обычные новостные источники, но и новости из Telegram-каналов.
Избегание агрессивной монетизации.
Стремление к прозрачности работы своих алгоритмов.
![Сбор обратной связи в приложении LifeLines Сбор обратной связи в приложении LifeLines](https://habrastorage.org/getpro/habr/upload_files/e1d/dfa/bba/e1ddfabba336d4abcc6d5acc902548a3.png)
Дизайн-концепция
Перед дизайнерами стояла важная задача: необходимо было создать визуальную концепцию приложения, когда маркетинговая и бренд-стратегии продукта были ещё в проработке.
При создании дизайн-концепции приложения был сделан упор на минимализм, чтобы максимально облегчить взаимодействие пользователя с новостями. Очень многие новостные сервисы визуально перегружены и нам хотелось этого избежать. Была выбрана нестандартная цветовая гамма в фиолетовых тонах, приятная глазу и не раздражающая пользователя. Также было уделено большое внимание шрифтам, поскольку это важная часть новостных приложений.
Очень большое внимание было уделено UX в приложении.
![Внимание к UX в LifeLines Внимание к UX в LifeLines](https://habrastorage.org/getpro/habr/upload_files/467/1f2/a81/4671f2a81ce49a7e1038bce59ddf8f46.png)
В силу того, что у LifeLines мощная база в плане фичей и их развития, мы проектировали интерфейс таким образом, чтобы функционал можно было без проблем масштабировать. На старте проектирования был выбран минимальный набор функций для максимальной простоты взаимодействия с новостями. Развивая приложение проблем не возникло, все за счёт грамотной приоритизации пространства и построения иерархий на начальном этапе. При этом интерфейс остался не нагруженный и минималистичный.
Виктор, дизайнер LifeLines
Как всё устроено внутри
![Бэкенд сервиса LifeLines Бэкенд сервиса LifeLines](https://habrastorage.org/getpro/habr/upload_files/701/066/d70/701066d70f83590c947051bc66c4e82e.png)
Вся работа в бэкенде LifeLines протекает в 4 этапа:
Периодический обход новостных источников (веб-сайты, Telegram-каналы) из внутренней базы в несколько тысяч источников. Сбор текста, дат и заголовков в первичный документ.
Обработка текстовой информации с помощью моделей машинного обучения. На выходе получается нормализованная форма текста, в которой можно выделить теги, именные сущности (персоны, объекты, события), географию, а также вероятную категорию (тему).
Агрегирование обработанных статей в события. 10 статей из 10 разных источников могут освещать разные события, а могут и одно и то же. На этом этапе все статьи раскладываются по своим “полочкам” и ранжируются по значимости.
События проходят индексацию и ожидают показа конечному пользователю в зависимости от настроек ленты.
Это общий принцип работы новостного агрегатора. Однако во время работы над его ядром были сложности и вот как они были решены.
Челлендж #1
Сотни новостных источников обязательно будут генерировать дубликаты одних и тех же событий, если все их совместить в одну ленту. Поэтому система должна уметь определять, где статьи об одном и том же, но в разных источниках. То есть, она должна понимать, о чем идет речь. А также из множества “склеенных” статей необходимо определить ту, которую мы покажем, как “заглавную” в блоке.
Решение #1
Перебрав различные варианты выбор пал на использование модели машинного обучения на основе BERT, которая способна преобразовывать текст в векторное представление. И уже работая с векторами, а не с текстом, появляется возможность определить насколько статьи семантически схожи друг с другом.
Стало ясно, что при таком алгоритме в качестве “заглавной” выбирается самая большая статья с некоторой поправкой на дату публикации, что является довольно удачным решением. Пользователь получает самый информативный текст из всех о произошедшем событии на момент времени.
Хоть текущий алгоритм и не идеален, свои задачи он выполняет. Его усовершенствование – наша задача на самое ближайшее будущее.
Челлендж #2
Одной из фич приложения LifeLines стала хронология или “развитие события”, возможность посмотреть, как развивалось событие во времени. Из любой новости, если она имела какое-то развитие во времени, можно перейти в прошлое и узнать, как развивались события.
![Развития события в приложении LifeLines Развития события в приложении LifeLines](https://habrastorage.org/getpro/habr/upload_files/544/855/b22/544855b22e277c9042a4aa10556bde05.png)
Решение #2
Самый рабочий способ организации такой хронологии — по тегам с поправкой на географию. Но метод эффективен не на 100%, потому что, часто в хронологию событий попадает вариант исходной новости из другого источника, который не был правильно сгруппирован изначально при помощи нейросети.
Челлендж #3
На этапе после получения нормализованного текста статьи встает вопрос распознавания в тексте определенных сущностей, такие как персоны, бренды, география и т.п. Это необходимо для определения географии события и определения тегов.
Решение #3
Для решения этой проблемы была использована модель машинного обучения, способная выделять в тексте именные сущности, определяя, что это: География, Персона или Организация.
Далее, имена географических сущностей используются для поиска в базе топонимов. Также эта база давала узнать об иерархии географических объектов, что дополнительно помогает определить конечную географию события.
Имена Персон и Организаций используются для поиска в базе WikiData, которая содержит огромный объем справочной информации в удобном для машины формате. В статьях с такими сущностями автоматически прикрепляются ссылки на Википедию сразу под текстом новости для уточнения информации.
Мобильная часть LifeLines
После того, как внутреннее ядро LifeLines и дизайн были готовы, можно было приступить к разработке мобильного приложения.
Для быстрого старта был создан прототип. Поскольку основа приложения — это сложная лента с новостями, большинство интересных моментов в финальной версии приложения во время разработки были связаны с ней и с различными оптимизациями. Так, были реализованы:
Асинхронная загрузка картинок в ленте новостей — т.е. сначала показывается текстовая часть ленты, а потом в нее грузим картинки.
Кэширование контента при переходе от ленты к детальным новостям картинки берутся из кэша для ускорения загрузки.
Адаптация верстки новостей под одну стилистику. Поскольку все новости автоматически парсятся бэкендом с новостных сайтов, в ленту может попасть разное. Ведь картинки бывают разной высоты, стили тоже у всех сайтов отличаются. Поэтому нам пришлось научить приложение обрабатывать и красиво показывать картинки в приложении, и заменять стили на релевантные.
От старта разработки до релиза прошло около 3-4 месяцев.
Релиз
Релиз приложения под обе мобильные платформы состоялся в конце 2021 года. В 2022 году приложение было выбрано Google Play в качестве рекомендуемых.
![Развитие LifeLines в 2022 году Развитие LifeLines в 2022 году](https://habrastorage.org/getpro/habr/upload_files/929/c41/b34/929c41b34da75d7375af8a845591e423.png)
Количество установок в день увеличилось более чем в два раза в 2022 году. С начала 2022 года к его концу количество активных пользователей выросло в 8 раз. Был даже пик установок в 17 раз превышающий цифры на старте.
Проект небольшой и изящный, предсказуемый в плане разработки. От старта до релиза прошло около 4 месяцев. Был промежуточный билд и финальный. На первоначальном этапе мы использовали подход без авторизации в приложении, настройки хранятся на сервере через привязку к устройству.
Самохин Денис, менеджер проекта мобильной разработки
Планы на развитие
У проекта множество планов. Сервис регулярно улучшается, ведется работа над новыми фичами, которые были запрошены пользователями - такие как виджет для мобильного приложения, добавление Telegram-каналов в закладке «Персональное», работа с историческими источниками, возможность оставлять комментарии под новостями. Но также есть и более амбициозные планы.
Мы сделали возможность читать не только традиционные веб СМИ, но и Telegram-каналы. Конкурентные приложения обходят их стороной. А зная, что сейчас Telegram куёт половину новостного контента, нам не хочется, чтобы наш пользователь это упускал.
Никита, Ведущий разработчик LifeLines
Архивы
Планируется расширение архивной части — скрапинг данных с большего числа иностранных и исторических источников и их подгрузка в систему.
Зарубежные источники
Проект можно было бы дополнить большой частью иностранных источников, но пока что это не представляется возможным из-за политической обстановки и новой законодательной базы. Однако, для этого всё готово.
Мы хотим, чтобы у пользователя была возможность сравнивать различные точки зрения, но поскольку мы — бизнес, зарегистрированный в России, нам необходимо соблюдать законы. В будущем, мы готовы к тому, чтобы дать пользователям доступ к зарубежным источникам, если законодательство поменяется.
Вадим Питерский, управляющий проекта LifeLines
Сам себе репортер
Одна из историй, в которую хочет погрузиться LifeLines — это социальная составляющая. Дать пользователям возможность делать собственные публикации о событиях в мире под своим профилем - будь то сообщения очевидцев с места происшествия, или же просто мнение насчет той или иной ситуации.
Также в планах проработать локальный масштаб новостей. Ведь у каждого города имеется множество различных сообществ, которые тоже являются агрегаторами, принимая от очевидцев материалы и публикуя их у себя в группах и каналах.
Задачей LifeLines будет предоставить наиболее удобную и комфортную среду для такого рода контента, чтобы пользователям хотелось делиться событийной информацией именно здесь.
Трансляция события
Один из важных новостных форматов в наше бурное время – текстовые новостные трансляции.
![](https://habrastorage.org/getpro/habr/upload_files/4ef/62a/14f/4ef62a14f0b6e16f57d6a9a49036b48f.png)
Бывает, что в реальном времени разворачиваются особо важные события, и новые факты всплывают каждые несколько минут. А значит, нужен такой же оперативный формат показа информации.
В планах дать возможность LifeLines чувствовать подобные новостные турбулентности и создавать для них текстовую трансляцию, в которую будут оперативно помещаться поминутно информация из множества СМИ.
![Мобильное и веб-приложение LifeLines Мобильное и веб-приложение LifeLines](https://habrastorage.org/getpro/habr/upload_files/8f4/511/054/8f451105441f22516adad48cc5520952.png)
Спасибо за внимание! Оставайтесь на связи, впереди еще много интересных кейсов.