Привет! Мы в онлайн-кинотеатре Иви любим писать клиентские автотесты. В основном все они интеграционные. Используем почти полные копии бэка, автоматически разворачиваемые в k8s. Особенность состоит в том, что мы максимально стремимся к использованию нативных фреймворков или к использованию того стэка, который лучше всего подойдет для поддержки проекта. Это заставляет агрессивно выделять общий функционал, избавляться от копипасты и держать архитектуру и подходы как можно более похожими от проекта к проекту. И одна из основных проблем, с которой столкнулись - это работа с сетевым стэком. А как мы ее решали расскажем в статье...
Оптимизация метрик веба через аудит в Google Tag Manager: реальность или вымысел?
После внедрения процесса тестирования рекламных тегов на сайте из инструмента аналитики, GTM (предыдущая статья). Мы задумались каких ресурсов он нам стоит, как уменьшить влияние GTM и сформулировали гипотезу что посредством аудита тегов можно улучшить метрики веба. Помимо этого мы хотели бы узнать:
- Правда ли то, что ассинхронные сценарии настолько легкие для веба?
- Правда ли то, что приостановленные теги == удаленным?
Этапы эксперимента и наши выводы читайте ниже. Будем рады, если в комментариях вы поделитесь своими мнениями, идеями или опытом. Давайте обсудим вместе!
Интерактивные виджет-подборки в Иви (iOS)
И снова здравствуйте! В 2022 году у нас появились первые HomeScreen виджеты, это был первый опыт работы с библиотекой WidgetKit. Затем появились LockScreen виджеты и мы их тоже добавили. А выход iOS 17 и поддержка библиотеки AppIntents в виджетах, знаменовал новый этап в эволюции виджетов.
В этой статье поговорим о том, как мы зарелизили интерактивные виджеты и из чего они состоят: разделение логических слоёв на SPM пакеты, обеспечение качества (unit, snapshot тесты), accessibility и с каким нюансами столкнулись, о которых Apple не рассказывала на WWDC23.
Пишем интерактивный виджет
Виджеты в новом обличии появились в 2020 году вместе с выходом iOS 14 (HomeScreen widgets). За это время Apple выпустила больше семейств виджетов, а также добавила их на LockScreen в iPhone и iPad. Но интерактивность появилась впервые в iOS 17.
В этой статье разберёмся из чего состоит интерактивный виджет: формирование Timeline, как работает интерактивность через библиотеку AppIntents, а затем напишем свой первый интерактивный виджет.
Внедрение процесса тестирования Google Tag Manager: увлекательная история Даши-путешественницы
Март принес с собой проблему: у некоторых клиентов начали подвисать страницы, на которых монолитный js был разделен на чанки. На таких страницах в основном бандле содержится минимум для отрисовки первого экрана, а остальные чанки мы загружаем отложено. Однако из-за неправильной приоритизации скриптов пользователи лишились некоторых функций нашего сайта. Поток жалоб множился, саппорт разрывался, маркетинг страдал больше обычного.
А сейчас немного остановимся и познакомимся: меня зовут Даша, я инженер по тестированию на платформе web в Иви. И я расскажу вам, как мы внедряли тестирование GTM в пайплайн разработки команды.
Эмоциональное восприятие шрифтов. Метод семантического дифференциала
Я занимаюсь в Иви UX-исследованиями. Однажды ко мне пришел директор по дизайну с запросом: “Разрабатываем новый шрифт для внешних коммуникаций. Хотим, чтобы вызывал у людей эмоции, соответствующие новой платформе бренда. Сделали несколько вариантов. Помоги понять, действительно ли люди будут испытывать больше эмоций по сравнению с нашим нейтральным шрифтом для интерфейсов, и выбрать наиболее подходящий”.
С подобной задачей я никогда раньше не сталкивалась, поэтому первая моя мысль была: “Да ладно, эмоции и шрифты? Люди вообще не заметят разницу”. Вторая — про семантический дифференциал.
В этой статье я поделюсь методикой и результатами исследования шрифтов с точки зрения эмоций методом семантического дифференциала.
Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
В компании ИВИ, ведущем онлайн-кинотеатре, наша команда разработчиков занимается созданием приложения для платформы Android. Недавно мы успешно выпустили версию для Android TV, используя инновационный инструмент — Jetpack Compose. Несмотря на то, что библиотека Compose для ТВ еще находится в альфа-версии, мы хотим поделиться своим опытом, рассказать о трудностях, с которыми столкнулись, и обратиться к вопросу: стоит ли использовать Jetpack Compose, особенно для ТВ-приложений?
Объяснение рекомендаций
Рекомендательные системы уже давно неотъемлемая часть большинства современных веб-сервисов. Скорее всего, заходя на какой-либо развлекательный (и не только) сайт, вы не раз задавались вопросом, почему именно этот контент или этот товар предлагается вам.
В Иви давно заметили, что недостаточно просто рекомендовать что-то пользователю, важно объяснять свои действия. Если пользователю покажут незнакомый контент, то он будет воспринимать это как нечто неинтересное.
Поэтому хочется, чтобы пользователь понимал:
- Насколько ему могут быть интересны наши рекомендации.
- Зачем мы ему это показываем.
Меня зовут Андрей Макаров, я разработчик рекомендательной системы онлайн-кинотеатра Иви. В этой статье я расскажу, зачем мы объясняем рекомендации на нашем сервисе, что для этого уже сделали и что только планируем.
В следующей серии… Как устроены UX-исследования в Иви
Привет, Хабр! Меня зовут Евгения Савельева, я руковожу отделом UX-исследований в Иви. С коллегами мы шутим: исследования как сериал - всегда есть что-то, что узнаешь только в следующей серии. А еще, по результатам исследований у нас самые интересные встречи! Решили рассказать, как устроены UX-исследования* в Иви: благодаря им растут не просто метрики, а нечто более важное – любовь пользователей.
Во многих компаниях UX-исследователи работают либо как агентства внутри компании, либо исследователь прикреплен к продуктовой команде. У нас получился гибридный подход: с одной стороны, наш UX-отдел универсален и делает исследования для всех. С другой, исследователи довольно сильно интегрированы в процесс разработки продукта.
В этой статье я расскажу о наших процессах, их влиянии на эффективность работы, а также о лайфхаках, как небольшая команда исследователей из двух человек может успевать делать все необходимое.
Плоская сеть для Kubernetes
Приветствую тебя, %username%! Меня зовут Владимир Жуков, и я не хочу впаривать тебе очередную историю успешного успеха про Kubernetes. Я хочу рассказать о наших кластерах Kubernetes с необычной архитектурой. «Что же там необычного?» спросишь ты. Это самая сложная и непонятная часть кластера, это сеть. Я знаю, что идея плоской сети не новая и применяется много у кого, но кажется об этом еще не кто тут не писал.
Как растить людей: диктатура здравого смысла
На днях студент нашей совместной с МАИ магистратуры дал очень интересный комментарий. Это было по мотивам лекции, на которой я рассказывал о целях по SMART, тайм-менеджменте и способах планировать рабочее и личное время.
"Меня удивил лектор. Человек уже давно не подросток, имеется отличный статус в компании, многого добился, но не останавливается на своём развитии.
Раньше мне казалось, что учиться нужно в школе и универе, а потом устроиться на работу и отдыхать, ведь ты всё уже знаешь.
Но оказывается в развитии личности нет предела, можно стараться стать лучше сколько захочешь. Главное найти правильный вектор, "правильно ставить правильные цели" и окружаться себя такими же, желающими развиваться, людьми."
И, несмотря на сохраненную авторскую пунктуацию, на этом можно было бы закончить эту статью.
Но в этом случае наш HR-департамент меня не похвалит :-)
Как персонализация постеров помогла IVI повысить CTR и конверсию в просмотры
Синтетические постеры для кино: как обрезать логотип телеканала, хардсабы и чёрные грани
На IVI пользователи выбирают кино для просмотра, ориентируясь в первую очередь на постер и название фильма. Обычно правообладатель предоставляет один постер для каждого фильма и сериала, но бывают ситуации, когда могут понадобиться дополнительные/альтернативные изображения. Их создание — трудоемкая задача, потому что с помощью этих изображений нужно передать содержимое контента. Чтобы упростить её, мы прибегаем к генерации синтетических постеров. В этой статье я немного приоткрою занавес и расскажу о том, как мы удаляем визуальный мусор в процессе создания постеров.
Дизайн-система IVI. Взгляд изнутри. Часть 2
Это вторая часть статьи про нашу дизайн-систему. Первая часть выходила раньше.
В этот раз речь пойдёт о философии нашей работы, взаимодействии с дизайнерами и клиентскими разработчиками; о трудностях, с которыми сталкиваемся, и как их преодолеваем; о том, как мы развиваем нашу ДС.
Дизайн-система IVI. Взгляд изнутри. Часть 1
Дизайн-система в нашей компании существует с 2018 года. По поводу неё уже была статья от дизайнеров и выступление от техдиректора. Самое время рассказать, как ситуация выглядит изнутри самой дизайн-системы.
По мере написания стало понятно: материала слишком много, чтобы уложить его в одну статью. Поэтому чуть позже мы опубликуем вторую часть.
В первой же части статьи речь пойдёт о том, как и почему у нас появилась дизайн-система; как она устроена и что в ней хранится; как клиентские приложения IVI получают и обрабатывают данные из дизайн-системы; как мы добавляем в ДС новые сущности и как избавляемся от устаревших.
Как лояльные пользователи помогают тестировать любимый сервис. Бета-тест IVI — грани невозможного
Меня зовут Святослав, в онлайн кинотеатре IVI я отвечаю за бета-тестирование. Хочу рассказать вам про то, как пользователи сервиса могут принимать активное участие в его тестировании, получать от этого удовольствие и вносить неоценимый вклад в его качество.
Пользовательский опыт в IVI: как измеряем и как улучшаем
Как можно измерить успех бизнеса? Конечно, бизнес-метрики типа выручки и количества транзакций, продуктовые метрики и доля рынка помогают оценить, насколько востребован сервис, но этого не всегда достаточно. Очень полезно понимать впечатления и эмоции, которые получает клиент от использования продукта — это дает возможность понять, что нужно улучшать. Именно поэтому у нас в IVI действует целая система измерений пользовательского опыта, которая позволяет всей компании узнать альтернативную точку зрения на то, как клиенты оценивают наш сервис.
При этом впечатления и эмоции измерить очень сложно, потому что у нас есть много точек контакта и огромное количество часто противоречивой обратной связи от пользователей. Кроме того, у менеджеров и разработчиков есть личные ощущения от продукта — мы сами внутри очень часто обмениваемся мнениями, что нам в нашем сервисе нравится, а что нет.
Как же преобразовать все это восприятие в цифры и количественные показатели?
Подсказки по написанию тестов в приложениях на Go
В нашей компании в стеке разработки есть язык Go. И иногда, при написании unit-тестов к приложениям написанным на Go, у нас появляются сложности. В этой статье мы расскажем о некоторых моментах, которые мы учитываем при написании тестов. На примерах разберём как их можно использовать.
Путь IVI от монолита к микросервисам
В этой статье мы не откроем ничего нового об устройстве монолита и микросервисной архитектуры. Про это сказано немало слов, написано ещё больше. Мы расскажем о том, как через это прошла наша компания и какие преимущества и недостатки микросервисной архитектуры мы для себя обнаружили.
Как мы в IVI используем массивы в ClickHouse для подсчета продуктовых метрик
IVI – кросс-платформенный сервис, а значит, мы должны анализировать метрики всюду: на вебе, телевизорах и мобильных приложениях. Продукт непрерывно развивается, чтобы стать максимально эффективным, удобным и повысить ценность и привлекательность подписки. Перед тем, как внедрить какую-то новую фичу, мы проводим a/b-тесты и исследуем, на сколько востребованным окажется нововведение и как оно повлияет на конверсию или смотрение. Одновременно у нас может проверяться до 70-ти гипотез, от которых непосредственно зависят планы по развитию продукта.
Для того, чтобы правильно оценить успешность или неуспешность теста, требовалось технологичное решение. Новая схема ETL позволила нам иметь хранилище, толерантное к дубликатам. При ошибке в коде мы всегда можем откатить consumer offset в kafka и обработать часть данных снова, не прилагая лишних усилий для движения данных. Хотим рассказать о том, как мы в IVI используем ClickHouse, чтобы посчитать метрики для решения разных продуктовых задач и понять, что мы действительно делаем продукт лучше, а не придумываем фичи, которыми никто не будет пользоваться.