Как стать автором
Обновить
73.26
Онлайн-кинотеатр Иви
Мы открываем для людей многообразие мира кино
Сначала показывать

Интерактивные виджет-подборки в Иви (iOS)

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров870

И снова здравствуйте! В 2022 году у нас появились первые HomeScreen виджеты, это был первый опыт работы с библиотекой WidgetKit. Затем появились LockScreen виджеты и мы их тоже добавили. А выход iOS 17 и поддержка библиотеки AppIntents в виджетах, знаменовал новый этап в эволюции виджетов.

В этой статье поговорим о том, как мы зарелизили интерактивные виджеты и из чего они состоят: разделение логических слоёв на SPM пакеты, обеспечение качества (unit, snapshot тесты), accessibility и с каким нюансами столкнулись, о которых Apple не рассказывала на WWDC23.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Пишем интерактивный виджет

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.8K

Виджеты в новом обличии появились в 2020 году вместе с выходом iOS 14 (HomeScreen widgets). За это время Apple выпустила больше семейств виджетов, а также добавила их на LockScreen в iPhone и iPad. Но интерактивность появилась впервые в iOS 17.

В этой статье разберёмся из чего состоит интерактивный виджет: формирование Timeline, как работает интерактивность через библиотеку AppIntents, а затем напишем свой первый интерактивный виджет.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии6

Внедрение процесса тестирования Google Tag Manager: увлекательная история Даши-путешественницы

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2K

Март принес с собой проблему: у некоторых клиентов начали подвисать страницы, на которых монолитный js был разделен на чанки. На таких страницах в основном бандле содержится минимум для отрисовки первого экрана, а остальные чанки мы загружаем отложено. Однако из-за неправильной приоритизации скриптов пользователи лишились некоторых функций нашего сайта. Поток жалоб множился, саппорт разрывался, маркетинг страдал больше обычного.

А сейчас немного остановимся и познакомимся: меня зовут Даша, я инженер по тестированию на платформе web в Иви. И я расскажу вам, как мы внедряли тестирование GTM в пайплайн разработки команды.

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии6

Эмоциональное восприятие шрифтов. Метод семантического дифференциала

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.8K

Я занимаюсь в Иви UX-исследованиями. Однажды ко мне пришел директор по дизайну с запросом: “Разрабатываем новый шрифт для внешних коммуникаций. Хотим, чтобы вызывал у людей эмоции, соответствующие новой платформе бренда. Сделали несколько вариантов. Помоги понять, действительно ли люди будут испытывать больше эмоций по сравнению с нашим нейтральным шрифтом для интерфейсов, и выбрать наиболее подходящий”. 

С подобной задачей я никогда раньше не сталкивалась, поэтому первая моя мысль была: “Да ладно, эмоции и шрифты? Люди вообще не заметят разницу”. Вторая — про семантический дифференциал. 

В этой статье я поделюсь методикой и результатами исследования шрифтов с точки зрения эмоций методом семантического дифференциала.

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии4

Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.3K

В компании ИВИ, ведущем онлайн-кинотеатре, наша команда разработчиков занимается созданием приложения для платформы Android. Недавно мы успешно выпустили версию для Android TV, используя инновационный инструмент — Jetpack Compose. Несмотря на то, что библиотека Compose для ТВ еще находится в альфа-версии, мы хотим поделиться своим опытом, рассказать о трудностях, с которыми столкнулись, и обратиться к вопросу: стоит ли использовать Jetpack Compose, особенно для ТВ-приложений?

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии6

Объяснение рекомендаций

Время на прочтение4 мин
Количество просмотров2.7K


Рекомендательные системы уже давно неотъемлемая часть большинства современных веб-сервисов. Скорее всего, заходя на какой-либо развлекательный (и не только) сайт, вы не раз задавались вопросом, почему именно этот контент или этот товар предлагается вам.

В Иви давно заметили, что недостаточно просто рекомендовать что-то пользователю, важно объяснять свои действия. Если пользователю покажут незнакомый контент, то он будет воспринимать это как нечто неинтересное.

Поэтому хочется, чтобы пользователь понимал:
  1. Насколько ему могут быть интересны наши рекомендации.
  2. Зачем мы ему это показываем.

Меня зовут Андрей Макаров, я разработчик рекомендательной системы онлайн-кинотеатра Иви. В этой статье я расскажу, зачем мы объясняем рекомендации на нашем сервисе, что для этого уже сделали и что только планируем.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии4

В следующей серии… Как устроены UX-исследования в Иви

Время на прочтение10 мин
Количество просмотров2.2K

Привет, Хабр! Меня зовут Евгения Савельева, я руковожу отделом UX-исследований в Иви. С коллегами мы шутим: исследования как сериал - всегда есть что-то, что узнаешь только в следующей серии. А еще, по результатам исследований у нас самые интересные встречи! Решили рассказать, как устроены UX-исследования* в Иви: благодаря им растут не просто метрики, а нечто более важное – любовь пользователей. 

Во многих компаниях UX-исследователи работают либо как агентства внутри компании, либо исследователь прикреплен к продуктовой команде. У нас получился гибридный подход: с одной стороны, наш UX-отдел универсален и делает исследования для всех. С другой, исследователи довольно сильно интегрированы в процесс разработки продукта.

В этой статье я расскажу о наших процессах, их влиянии на эффективность работы, а также о лайфхаках, как небольшая команда исследователей из двух человек может успевать делать все необходимое.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии1

Плоская сеть для Kubernetes

Время на прочтение8 мин
Количество просмотров6.1K

Приветствую тебя, %username%! Меня зовут Владимир Жуков, и я не хочу впаривать тебе очередную историю успешного успеха про Kubernetes. Я хочу рассказать о наших кластерах Kubernetes с необычной архитектурой. «Что же там необычного?» спросишь ты. Это самая сложная и непонятная часть кластера, это сеть. Я знаю, что идея плоской сети не новая и применяется много у кого, но кажется об этом еще не кто тут не писал.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Как растить людей: диктатура здравого смысла

Время на прочтение9 мин
Количество просмотров5K

На днях студент нашей совместной с МАИ магистратуры дал очень интересный комментарий. Это было по мотивам лекции, на которой я рассказывал о целях по SMART, тайм-менеджменте и способах планировать рабочее и личное время. 


"Меня удивил лектор. Человек уже давно не подросток, имеется отличный статус в компании, многого добился, но не останавливается на своём развитии.

Раньше мне казалось, что учиться нужно в школе и универе, а потом устроиться на работу и отдыхать, ведь ты всё уже знаешь.

Но оказывается в развитии личности нет предела, можно стараться стать лучше сколько захочешь. Главное найти правильный вектор, "правильно ставить правильные цели" и окружаться себя такими же, желающими развиваться, людьми."

И, несмотря на сохраненную авторскую пунктуацию, на этом можно  было бы закончить эту статью. 

Но в этом случае наш HR-департамент меня не похвалит :-)

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии0

Как персонализация постеров помогла IVI повысить CTR и конверсию в просмотры

Время на прочтение3 мин
Количество просмотров5.6K
Мы в IVI столкнулись с проблемой низкого доверия к контенту, который пользователи встречают впервые. Одна из причин — неинформативные и непривлекательные постеры. Чтобы исправить эту ситуацию, мы научились персонализировать постеры, выбирая для пользователя более понятные и привлекательные изображения. Мы провели эксперимент, который показал, как на самом деле важна для зрителя визуальная составляющая при выборе контента.

Непривлекательные постеры


Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии63

Синтетические постеры для кино: как обрезать логотип телеканала, хардсабы и чёрные грани

Время на прочтение5 мин
Количество просмотров5.2K

На IVI пользователи выбирают кино для просмотра, ориентируясь в первую очередь на постер и название фильма. Обычно правообладатель предоставляет один постер для каждого фильма и сериала, но бывают ситуации, когда могут понадобиться дополнительные/альтернативные изображения. Их создание — трудоемкая задача, потому что с помощью этих изображений нужно передать содержимое контента. Чтобы упростить её, мы прибегаем к генерации синтетических постеров. В этой статье я немного приоткрою занавес и расскажу о том, как мы удаляем визуальный мусор в процессе создания постеров.

Читать далее
Всего голосов 35: ↑35 и ↓0+35
Комментарии4

Дизайн-система IVI. Взгляд изнутри. Часть 2

Время на прочтение8 мин
Количество просмотров2.8K

Это вторая часть статьи про нашу дизайн-систему. Первая часть выходила раньше.

В этот раз речь пойдёт о философии нашей работы, взаимодействии с дизайнерами и клиентскими разработчиками; о трудностях, с которыми сталкиваемся, и как их преодолеваем; о том, как мы развиваем нашу ДС.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Дизайн-система IVI. Взгляд изнутри. Часть 1

Время на прочтение8 мин
Количество просмотров6.5K

Дизайн-система в нашей компании существует с 2018 года. По поводу неё уже была статья от дизайнеров и выступление от техдиректора. Самое время рассказать, как ситуация выглядит изнутри самой дизайн-системы.

По мере написания стало понятно: материала слишком много, чтобы уложить его в одну статью. Поэтому чуть позже мы опубликуем вторую часть.

В первой же части статьи речь пойдёт о том, как и почему у нас появилась дизайн-система; как она устроена и что в ней хранится; как клиентские приложения IVI получают и обрабатывают данные из дизайн-системы; как мы добавляем в ДС новые сущности и как избавляемся от устаревших.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Как лояльные пользователи помогают тестировать любимый сервис. Бета-тест IVI — грани невозможного

Время на прочтение10 мин
Количество просмотров3.3K

Меня зовут Святослав, в онлайн кинотеатре IVI я отвечаю за бета-тестирование. Хочу рассказать вам про то, как пользователи сервиса могут принимать активное участие в его тестировании, получать от этого удовольствие и вносить неоценимый вклад в его качество.

Познакомиться с бета-тестированием IVI
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Пользовательский опыт в IVI: как измеряем и как улучшаем

Время на прочтение7 мин
Количество просмотров3.5K

Как можно измерить успех бизнеса? Конечно, бизнес-метрики типа выручки и количества транзакций, продуктовые метрики и доля рынка помогают оценить, насколько востребован сервис, но этого не всегда достаточно. Очень полезно понимать впечатления и эмоции, которые получает клиент от использования продукта  — это дает возможность понять, что нужно улучшать. Именно поэтому у нас в IVI действует целая система измерений пользовательского опыта, которая позволяет всей компании узнать альтернативную точку зрения на то, как клиенты оценивают наш сервис.

При этом впечатления и эмоции измерить очень сложно, потому что у нас есть много точек контакта и огромное количество часто противоречивой обратной связи от пользователей. Кроме того, у менеджеров и разработчиков есть личные ощущения от продукта — мы сами внутри очень часто обмениваемся мнениями, что нам в нашем сервисе нравится, а что нет.  

Как же преобразовать все это восприятие в цифры и количественные показатели?

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии6

Подсказки по написанию тестов в приложениях на Go

Время на прочтение8 мин
Количество просмотров12K

В нашей компании в стеке разработки есть язык Go. И иногда, при написании unit-тестов к приложениям написанным на Go, у нас появляются сложности. В этой статье мы расскажем о некоторых моментах, которые мы учитываем при написании тестов. На примерах разберём как их можно использовать.

Читать далее
Всего голосов 31: ↑28 и ↓3+25
Комментарии12

Путь IVI от монолита к микросервисам

Время на прочтение7 мин
Количество просмотров7.8K

В этой статье мы не откроем ничего нового об устройстве монолита и микросервисной архитектуры. Про это сказано немало слов, написано ещё больше. Мы расскажем о том, как через это прошла наша компания и какие преимущества и недостатки микросервисной архитектуры мы для себя обнаружили.

Читать далее
Всего голосов 60: ↑54 и ↓6+48
Комментарии18

Как мы в IVI используем массивы в ClickHouse для подсчета продуктовых метрик

Время на прочтение6 мин
Количество просмотров4.2K

 IVI – кросс-платформенный сервис, а значит, мы должны анализировать метрики всюду: на вебе, телевизорах и мобильных приложениях. Продукт непрерывно развивается, чтобы стать максимально эффективным, удобным и повысить ценность и привлекательность подписки. Перед тем, как внедрить какую-то новую фичу, мы проводим a/b-тесты и исследуем, на сколько востребованным окажется нововведение и как оно повлияет на конверсию или смотрение. Одновременно у нас может проверяться до 70-ти гипотез, от которых непосредственно зависят планы по развитию продукта.

Для того, чтобы правильно оценить успешность или неуспешность теста, требовалось технологичное решение. Новая схема ETL позволила нам иметь хранилище, толерантное к дубликатам. При ошибке в коде мы всегда можем откатить consumer offset в kafka и обработать часть данных снова, не прилагая лишних усилий для движения данных. Хотим рассказать о том, как мы в IVI используем ClickHouse, чтобы посчитать метрики для решения разных продуктовых задач и понять, что мы действительно делаем продукт лучше, а не придумываем фичи, которыми никто не будет пользоваться.

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии2

Автоматическая документация для Flask с использованием OpenAPI

Время на прочтение5 мин
Количество просмотров18K
image alt


Техническая документация, как известно, крайне важная часть любого проекта. До недавнего времени мы прекрасно жили с таким генератором документаций как Sphinx. Но наступил момент переходить на технологии с бОльшим набором возможностей, поэтому мы приняли решение переписать нашу документацию на более современный стандарт: OpenAPI Specification. Эта статья является скромным гайдом по такому переезду. Она будет интересна Python-разработчикам, особенно тем, которые используют Flask. После ее прочтения вы узнаете, как создать статическую OpenAPI документацию для Flask приложения и развернуть ее в GitLab Pages.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии11

Профессия СТО, часть 2

Время на прочтение7 мин
Количество просмотров6.6K

Недавно наш СТО Евгений Россинский @eross пообщался с ведущими подкаста  “Подлодка” про роль СТО. По мотивам этого общения мы подготовили две статьи с основными вопросами о СТО - как им стать и каково им быть, как его найти и сколько это стоит. Сегодня мы публикуем вторую часть этого интервью (первую часть можно прочитать тут).

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии8

Информация

Сайт
www.ivi.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек