Skip to content

Latest commit

 

History

History
207 lines (184 loc) · 21.4 KB

tv-specs.md

File metadata and controls

207 lines (184 loc) · 21.4 KB

Экран конфигурации / Сплешскрин

  • Добавить анимацию какую-нибудь, шобы +- как в ютубе было. Типа "А" такая по середине и после инициализации всего говна уплывала влево и появлялся текст "анилибрия".
  • Взять готовую логику из мобилки и вынести в че-то типа интерактора, к которому смогут цепляться и все нужные модули.

Авторизация

  • Должны быть доступны все способы авторизации + новый способ по коду.
  • Подумать на счет целесообразности авторизации через вк, т.к. на телеке это будет ебучий ад. Да и с обычными формами тоже, но в вебвью это рили пиздец будет зашквар.
  • Приоритетным сделать вход по коду. Нужно будет на сайте, в апи и в мобилке добавить раздел "устройства".
    • Для телевизора нужно генерить 6-ти значный код.
    • На сайте или мобилке авторизованный пользователь должен ввести этот код.
    • ТВ автоматически логинится, мб постоянно опрашивая сервер или по вебсокету, но скорее всего постоянный опрос.
  • Экран авторизации несчадно скомуниздить из других аппок, скорее всего это будет херня с правым меню/дровером с пунктами авторизации, а слева будет хз че-то типа какой-то иллюстрации или че там по гайдлайнам. Мб написать что-то о плюсах авторизации.
  • Рассмотреть возможность заюзать фрагмент, вместо активити. Посмотреть как реализовано в других приложениях в кейсах, когда ты уже пользуешься аппкой и решил зарегаться.

Главный экран

Пункты меню

  • Попробовать гугловскую рекомендацию - связать пункты меню и строки с релизами.
  • Собсна пукты
    • Общая лента
    • Обновления в избранном (если авторизован)
    • Продолжить просмотр
    • Расписание
    • Каталог
    • Ютубчик
    • История
    • Авторизация (если не авторизован)
    • Настройки
  • Вроде как меню должно быть без иконок

Концепции дизайна

  • Фон ебануть градиентом, по типу как сделано в гуглплее. Скорее всего градиент придётся делать каким-то хитровыебанным
    • Цвета брать из палитры постера. Вычисленные цвета кешировать.
    • Возможно угл градиента влияет на видимые косячные переходы цветов. А возможно нужно просто поиграться с параметрами затенения.
    • Градиент должен меняться плавно при переключении карточки. Сделать дебаунс, чтобы пользователи не словили приход.
  • Карточки сделать чуть больше, чем обычно. Так-же нужно увеличить расстояние между ними, по типу как сделано в кинопоиске. Иначе скейл выглядит косячным.
  • Внутри карточки никакой текстовой информации. Вместо этого вынести весь текст под список карточек как статичный row. Так сделано в megogo и это пиздато.
  • Transition shared-view не в приоритете, т.к. как обычно может сожрать дохера времени и не дать никакого выхлопа.

Концепции функционала

  • Навигация происходит в соответствии с типом карточки. Релиз - значит херачим в релиз, ютуб - открываем ютабчик, еще че-то - открываем еще че-то.

Общая лента

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

Обновления в избранном

  • Список избранных релизов
  • Можно выбрать сортировку по дате релиза или по дате добавления в избранное
  • Тогл переключения сортировки скорее всего должен находиться справа вконце экрана от тайтла.

Продолжить просмотр

  • Идея в том, что пользователь мог прервать просмотр серии и в таком случае можно будет запустить серию с прерванного момента. Либо если какой-то релиз обновился то высветится предложение просмотреть новую серию.
  • Список релизов, в которых пользователь запускал плеер
  • В случае если происходит обновление релиза, то для просмотра должна быть предложена следующая серия.
  • Сортировка двойная, но в общем логика такая сортируется по дате обновления релиза и по дате просмотра серии, самые свежие вначале.
  • Релизы должны быть уникальны, т.е. 1 серия = 1 релиз, без хуйни, в принципе и так понятно должно быть.
  • !!! Синхронизация с сервером, если возможно

Расписание

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

Каталог

  • Список релизов отсоритировано согласно фильтру.
  • !!! РАЗДЕЛ ОБШИРНЫЙ, НУЖНО БУДЕТ ДОПОЛНЯТЬ !!!

Ютубчик

  • Список ютуб роликов.
  • Сортировка по дате, без выебонов.
  • Рассмотреть вариант отображения стримов. Запланированных или актуальных.
  • Так-же рассмотреть вариант отображения премьер.
  • Добавление несколько ютуб каналов (пушо например если основной либрийски заблочат, то резервный будет функционировать)

История

  • Список открытых релизов.
  • Сортируется по дате открытия.
  • Релизы уникальны.
  • !!! Синхронизация с сервером, если возможно

Авторизация

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

Настройки

  • Пока неизвестно че может понадобиться настраивать на телеке.

Детальная релиза

Требования/концепции дизайна

  • Отказаться от стандратного вида Detail LeanBack, заюзать концепт дизайна. Так-же постер большой, возможно только с левой стороны.
  • Градиент на фоне возможно из двух цветов. В общем поиграться, чтобы выглядело четко.
  • Основные действия должны быть доступны в первую очередь, без лишних кликов.
  • Если делать по концепту, то нужно будет устанавливать фокус на кнопке "Play".
  • Список кнопок и их назначение
    • Продолжить
    • Смотреть
    • Веб-плеер
    • "Счетчик избранного" - отображает цифру избранного и иконочку. Если выбрано, то подсвечивает красным, если нет, то обычным цветом текста.
  • Русское и английское название должно быть в две строки. Русское большим шрифтом, английское меньшим.
  • Если описание будет слишком длинное, то его нужно обрезать.
  • Параметры релиза, каждый параметр с новой строки. Обыграть название и значение разными стилями текста
    • Год
    • Голоса - список ников через запятую.
    • Тип
    • Состояние
    • Жанр - список жанров в через запятую, либо горизонтальным списком элементов
  • Расписание - скорее всего будет удобнее/практичнее выводить текст "Релиз выходит каждую пятницу".
    • И нужно выводить дополнительное пояснение, скорее всего чуть меньшим текстом.
    • Так-же нужно добавить возможность перехода к расписанию релизов.
  • Нужно отображать "связанные релизы", сезоны, овы, оны и т.д.
    • Сейчас этого нет в апи.
    • Лучше это сделать на стороне апи, чтобы приходил именно список связанных релизов.
  • Возможно можно было бы добавить отображение "похожих" релизов, но пока этого ни в каком видео нигде не существует и не ясен алгоритм подбора таких релизов. Можно по классике, а можно как нетфликс))0

Функциональные требования

  • Комментариев не будет, по крайней мере в первое время. Т.к. комменты вк как-то сильно уж по уебански лягут под концепцию дизайна андроид тв.
  • Список кнопок
    • Продолжить - открывает плеер с последнего просмотренного момента. Появляется только если пользователь уже смотрел серию.
    • Смотреть - открывает плеер с первой серии.
    • Веб-плеер - открывает вебплеер. Нужно еще посмотреть как оно работает, если как кусок говна, то не добавлять.
    • Счетчик избранного - добавляет/убирает релиз из избранного.
    • Если нет серий в онлайн плеере, то не отображать кнопки "Смотреть" и "Продолжить"
    • Если нет вебплеера, то не отображать кнопку "веб плеер"
  • Параметры релиза
    • Жанр - посмотреть как оно будет работать на телевизоре, если дать возможность перейти по выбранному жанру. Мб будет проблема с навигацией.
  • Описание
    • Если обрезано, то можно его можно выбрать.
    • При клике по выбранному описанию открывается экран с детальным описанием релиза.
  • Торренты и скачивание серий
    • Нужно рассмотреть варианты, где и как можно разместить. Если ниче в голову не придёт, то придётся отказаться от этой затеи.
  • Расписание
    • Зависит от выбранной реализации, пока-что не очень понятно че каво.
    • Если можно будет выбрать день недели, то по клику на него, должно открыться расписание со скроллом до выбранного дня недели.
    • Если будет кнопка перехода в расписание, то при клике должно просто переходить в расписание.

Плеер

Концепции дизайна

  • Юзеру всегда должен быть доступен интерфейс, вне зависимости от состояния загрузки или еще чего.
  • Во время воспроизведения интерфейс должен быть скрыт.
  • Не должно быть режима PIP - это пиздец как не удобно на android tv. Вот внатуре говняк, там целая головоломка как закрыть воспроизводящийся видос. А прикиньте там че-то кринжовое, уфф...
  • Доступные кнопки
    • Плей/Пауза
    • Следующая серия
    • Предыдущая серия
    • Перемотка вперёд +10сек
    • Перемотка назад -10сек
    • Качество
    • Скорость
    • Соотношение сторон
    • Список серий
  • Должно отображаться только русское название и какая-нибудь информация о том, какая серия воспроизводится.
  • Основные кнопки управления должны располагаться горизонтально по середине экрана, их порядок от левого края
    • Предыдущая серия
    • Перемотка назад
    • Плей/Пауза
    • Перемотка вперёд
    • Следующая серия
  • Второстепенные кнопки управления должны располагаться горизонтально по середине под бегунком прогрессбара, их порядок от левого края:
    • Список серий
    • Скорость воспроизведения
    • Качество
    • Соотношение сторон
  • Временной прогресс должен быть где-то присран, чтобы выглядел не слишком паршиво. Скорее всего тоже под прогрессбаром.
    • При форматировании времени учесть, что бывают видео длиной больше одного часа

Функциональные требования

  • При переключении серии, если она уже была просмотрена, то предложить юзеру либо продолжить с последнего момента, либо с самого начала.
  • Сделать возможность открыть релиз из плеера, т.к. плеер можно октрыть из "продолжить просмотр" и т.д. и юзерую было бы удобно жать возможность октрыть релиз, а не искать его через хз какие ебеня.
  • Как можно скрыть интерфейс
    • Автоматически скрывается после 3-5сек бездействия. Но тут нужно подумать, может и не надо.
    • Вручную убрать фокус со всех кнопок, как сделано в ютубе
    • При нажатии на кнопку "назад"
  • При открытом меню, интерфейс не должен скрываться
  • Работа меню
    • При открыти должно быть выбрано текущее значение, если это возможно
    • При выборе значния, оно должно примениться.
    • После выбора значения или по клику назад, меню должно закрыться.
  • При появлении интерфейса, фокус должен быть установлен на кнопке Плей/Пауза
  • Работа кнопок
    • Плей/Пауза - очевидно. Если серия (закончена и автопереключение серии выключено) или (это последняя серия), то на кнопке должен отображаться значок "начать заново".
    • Предыдущая/Следующая серия - переключает серию назад/вперёд. Не активна, если серия первая или последняя.
    • Перемотка назад/вперёд - перематывает назад/вперёд на 10 сек. Время пеермотки можно настроить.
    • Список серий - открывает боковое меню со списком серий.
    • Скорость воспроизведения - открывает боковое меню скорости вопроизвдения.
    • Качество - открывает боковое меню качества серии.
    • Соотношение сторон - при клике меняется соотношение сторон, без дополнительного меню.
      • Оптимально - впихнуть видео без обрезки
      • Обрезать - впихнуть видео во весь экран, обрезав края
      • Растянуть - растянуть во весь экран, никогда не понимал этого дерьма
  • При выходе с плеере или при переключении серии, должен запоминаться последний момент.
    • Нужно быть аккуратным с тем, что запоминается конец серии при повторном открытии серии автоматически перейдёт к последней метки времени и получится факап.
    • Как вариант при запуске серии делать проверку, что серия закончена и автоматически воспроизводить с начала или показывать кнопку "начать заново" (выше в требованиях это упоминалось)

Меню выбора серии

  • У каждой серии должна быть информация о том, на каком моменте она остановлена

Меню скорости воспроизведения

  • Варианты скорости: 0.25, 0.5, 0.75, Обычная (1.0), 1.25, 1.5, 1.75, 2.0

Меню качества

  • Если у серии какого-то качества, то оно не должно отображаться в меню.
  • Варианты: 480p, 720p, 1080p